-
Notifications
You must be signed in to change notification settings - Fork 44
Create rapid gossip sync blog post #160
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Create rapid gossip sync blog post #160
Conversation
✅ Deploy Preview for lightningdevkit ready!
To edit notification comments on pull requests, go to your Netlify site settings. |
|
||
Before we delve too deeply into the optimizations that Rapid Gossip Sync relies on, first a primer on how gossip works today. It involves three main message types: channel announcements, channel updates, and node announcements. (The last of which isn’t really relevant to this post.) | ||
|
||
As their names imply, channel announcements are sent when a public channel opens, and updates when changes are made to a channel. One peculiar characteristic of channels is that they aren't symmetrical: depending on the direction, some of their properties may vary. For instance, if Alice and Bob have a channel, Alice may charge higher fees for forwarding payments to Bob than vice versa, thus requiring that different channel updates be broadcast to the network for each direction. Just as balances may concentrate on one side, routing fees for forwarding payments through the channel are set by different parties depending on the direction. Unlike channel updates, channel announcements do not carry directional information, meaning opening a new channel requires sending at least two channel updates for direction-specific data. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
thus requiring that different channel updates be broadcast to the network for each direction, because channel announcements cannot contain directional data.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
let me edit that on Google. I am just now noticing that this information is conveyed a bit late in that paragraph.
|
||
One of the noteworthy properties of gossip is that a lot of data is duplicated across messages. For example, each channel announcement and update contains the genesis block hash. Similarly, each channel announcement contains both nodes’ public keys, exacerbating data redundancy for well-connected nodes. So, to reduce bandwidth requirements, we decided to see if we could strip data to create a more efficient way of conveying the same information. | ||
|
||
In the next few paragraphs, we'll outline a selection of the various improvements/optimizations we came up with. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In the next few paragraphs, we'll outline a selection of the various improvements/optimizations we came up with. | |
In the next few paragraphs, we'll outline a selection of the various optimizations we came up with. |
Co-authored-by: Haley Berkoe <94868372+haleyberkoe@users.noreply.github.com>
Co-authored-by: Haley Berkoe <94868372+haleyberkoe@users.noreply.github.com>
Co-authored-by: Haley Berkoe <94868372+haleyberkoe@users.noreply.github.com>
Co-authored-by: Haley Berkoe <94868372+haleyberkoe@users.noreply.github.com>
Co-authored-by: Haley Berkoe <94868372+haleyberkoe@users.noreply.github.com>
Preview