Skip to content

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

Merged
merged 7 commits into from
Aug 30, 2022

Conversation

ConorOkus
Copy link
Contributor

@ConorOkus ConorOkus commented Aug 30, 2022

@netlify
Copy link

netlify bot commented Aug 30, 2022

Deploy Preview for lightningdevkit ready!

Name Link
🔨 Latest commit b506ecf
🔍 Latest deploy log https://app.netlify.com/sites/lightningdevkit/deploys/630e53d2dd108d0008e643c2
😎 Deploy Preview https://deploy-preview-160--lightningdevkit.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

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.
Copy link
Contributor

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.

Copy link
Contributor

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.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
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.

Conor Okus and others added 4 commits August 30, 2022 18:57
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>
Conor Okus and others added 2 commits August 30, 2022 19:15
Co-authored-by: Haley Berkoe <94868372+haleyberkoe@users.noreply.github.com>
Co-authored-by: Haley Berkoe <94868372+haleyberkoe@users.noreply.github.com>
@ConorOkus ConorOkus merged commit 95f30a2 into lightningdevkit:main Aug 30, 2022
@ConorOkus ConorOkus deleted the rapid-gossip-sync-blog-post branch August 30, 2022 18:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants