Make all peer messages constant message size#8893
Open
rustyrussell wants to merge 13 commits intoElementsProject:masterfrom
Open
Make all peer messages constant message size#8893rustyrussell wants to merge 13 commits intoElementsProject:masterfrom
rustyrussell wants to merge 13 commits intoElementsProject:masterfrom
Conversation
5132083 to
efbcb8f
Compare
l3 doesn't just need to know about l2 (which it can get from the
channel_announcement), but needs to see the node_announcement.
Otherwise:
```
l1, l2 = node_factory.line_graph(2, wait_for_announce=True,
# No onion_message support in l1
opts=[{'dev-force-features': -39},
{'dev-allow-localhost': None}])
l3 = node_factory.get_node()
l3.rpc.connect(l1.info['id'], 'localhost', l1.port)
wait_for(lambda: l3.rpc.listnodes(l2.info['id'])['nodes'] != [])
offer = l2.rpc.call('offer', {'amount': '2msat',
'description': 'simple test'})
> l3.rpc.call('fetchinvoice', {'offer': offer['bolt12']})
tests/test_pay.py:4804:
...
> raise RpcError(method, payload, resp['error'])
E pyln.client.lightning.RpcError: RPC call failed: method: fetchinvoice, payload: {'offer': 'lno1qgsqvgnwgcg35z6ee2h3yczraddm72xrfua9uve2rlrm9deu7xyfzrcgqypq5zmnd9khqmr9yp6x2um5zcssxwz9sqkjtd8qwnx06lxckvu6g8w8t0ue0zsrfqqygj636s4sw7v6'}, error: {'code': 1003, 'message': 'Failed: could not route or connect directly to 033845802d25b4e074ccfd7cd8b339a41dc75bf9978a034800444b51d42b07799a: {"code":400,"message":"Unable to connect, no address known for peer"}'}
```
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Commit 888745b (dev_disconnect: remove @ marker.) in v0.11 in April 2022) removed the '@' marker from our dev_disconnect code, but one test still uses it. Refactoring this code made it crash on invalid input. The test triggered a db issue which has been long fixed, so I'm simply removing it. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
This requires access to dumpcap. On Ubuntu, at least, this means you need to be in the "wireshark" group. We may also need: sudo ethtool -K lo gro off gso off tso off Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Give us a single "next message" function to call. This will be useful when we want to write more than one at a time. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Do all the special treatment of the message type first. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
This gives us finer control over write sizes: for now we just cap the write size. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
We're doing our own buffering now. We leave the is_urgent() function for two commits in the future though. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
… count. We are about to use them to make our packet size constant, and this will upset the tests. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Messages are now constant. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> Changelog-Added: Protocol: we now pad all peer messages to make them the same length.
efbcb8f to
ab251ba
Compare
This replaces our previous nagle-based toggling. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
…ges. Since we delay the others quite a lot (up to 1 second), it's better to consider most messages "urgent" and worth immediately transmitting. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
This is exactly what membuf is for: it handles expansion much more neatly. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
ab251ba to
d20c18a
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Not sufficient, but definitely necessary for avoiding trivial observation.