-
Notifications
You must be signed in to change notification settings - Fork 7
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
feat: add the merge blog #32
Conversation
src/_blog/libp2p-and-Ethereum.md
Outdated
|
||
At this time, the Ethereum 2.0 community began evaluating the networking requirements for the Beacon Chain. Designing a libp2p integration became a formal effort. Focus moved towards adding libp2p to the Beacon Chain instead of extending/replacing devp2p on the Ethereum mainnet. | ||
|
||
[Raul Kripalani](https://twitter.com/raulvk), then the libp2p team lead at Protocol Labs, joined in on many of the [early Eth 2.0 implementers calls](https://github.com/ethereum/eth2.0-pm/issues?q=is%3Aissue+libp2p+is%3Aclosed) and advocated for libp2p. |
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.
A few missing story details worth highlighting:
- The Eth 2.0 client ecosystem involved 7-8 clients written in different languages.
- Several of those languages had no libp2p implementations and this was a hard blocker for libp2p adoption.
- This motivated the birth of several new libp2p implementations, e.g. nim-libp2p, py-libp2p, jvm-libp2p, etc.
- (Out of curiosity, one implementation was literally started by me to overcome the cold start problem :D)
- EF and PL cofunded those implementations.
- libp2p became the focus of EthBerlinZwei, awarding up to 20k? USD in bounties cofunded by PL, EF, ICF. (Can't remember).
- EthBerlinZwei was a phenomenal opportunity to conduct knowledge transfer and onboard Eth Core Devs onto libp2p, see: https://twitter.com/protolambda/status/1599438035594014720
- libp2p was invited to give several talks at Devcon4 (Prague) and Devcon5 (Osaka), as well as in follow-up events like Crosslink Taipei.
- There's a very cool tweet you can link to about the Eth 2.0 networking spec: https://twitter.com/jcksie/status/1156969492607590401 These were mad 2 weeks.
I can give you more links and help you capture more colour about this gradual marriage between communities throughout this week!
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.
Awesome, definitely want to highlight these. Thank you Raul! Added them in this commit: 1ecec05 if that makes it easier to review. preview here
Co-authored-by: raulk <raul.kripalani@gmail.com>
What are folks thoughts on the article length? It runs a bit long given that there's a lot to cover, I think I will try to make it more concise. Raul suggested that we might split this apart into multiple posts, my preference is to keep it as one but trim it a bit. Wdyt? Do people like the screenshots of GitHub issues and pull requests? They're a bit large right now, but I can scale them down. The article ends a bit abruptly so I'll work on the conclusion and add a section with links to resources as well |
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.
Thank you for the extensive write-up! I learned a lot.
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.
Super @p-shahi! Added suggestions and comments.
src/_blog/libp2p-and-Ethereum.md
Outdated
Let's begin with a brief reflection on libp2p's history. | ||
|
||
[Protocol Labs](https://protocol.ai/) first developed [libp2p](https://libp2p.io/) as a networking library inside of [IPFS](https://ipfs.tech/). | ||
At the outset, their code and repositories were coupled. However, libp2p's potential and utility beyond IPFS was soon realized, and project maintainers split the two codebases apart. This enabled libp2p to truly become a product agnostic, reusable, general purpose networking library. |
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.
At the outset, their code and repositories were coupled. However, libp2p's potential and utility beyond IPFS was soon realized, and project maintainers split the two codebases apart. This enabled libp2p to truly become a product agnostic, reusable, general purpose networking library. | |
At the outset, their code and repositories were coupled. However, libp2p's potential and utility beyond IPFS was soon realized, and project maintainers split the two codebases apart. This enabled libp2p to become a product-agnostic, reusable, general-purpose networking library. |
|
||
Meaning devp2p was designed specifically to fulfill requirements for Ethereum (more on how devp2p adopted parts of libp2p [in the next section](#Coverging-devp2p-and-libp2p-)). | ||
In particular, devp2p specifies: | ||
|
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.
Would you be in favor of adding a table in this section that compares the key components of both stacks? This blog post could be a good place for this resource to exist.
Examples: "identity", "message encoding", etc.
I can help generate it.
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.
Yes if you can help generate it, I'm all for it. Please feel free to push directly to this branch
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.
I like the table idea if it isn't much work.
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.
I see we added a devp2p page, thanks! We can add the table to that.
We had created a comparison page for IPFS and can do the same for libp2p.
src/_blog/libp2p-and-Ethereum.md
Outdated
Together these specifications define devp2p as an ***integrated** networking **system*** for Ethereum. | ||
Each component is a requirement of devp2p. | ||
|
||
By contrast, libp2p is a ***modular** networking **framework***. |
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.
By contrast, libp2p is a ***modular** networking **framework***. | |
By contrast, libp2p is a ***modular** networking **framework***, meaning that many different sorts of libp2p networking stacks can be composed by assembling a wide variety general-purpose modules. |
Splitting into multiple posts is a good option. Also, this could very well be a series (or turn into a series), calling it something simple like "Ethereum and libp2p". One of many ways to split:
|
Co-authored-by: Danny Salman <salman.danny03@hotmail.com> Co-authored-by: Max Inden <mail@max-inden.de>
Co-authored-by: Danny Salman <salman.danny03@hotmail.com>
Co-authored-by: Danny Salman <salman.danny03@hotmail.com>
So my main concern about splitting it into multiple articles is that we'll lose traffic. |
Images automagically compressed by Calibre's image-actions ✨ Compression reduced images by 31.7%, saving 238.09 KB.
36 images did not require optimisation. |
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.
Thanks for all the work here.
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.
Awesome work capturing the full tale here!
Given the long history and many folks involved, lets also surface in FIL Slack #libp2p-nexus.
|
||
Meaning devp2p was designed specifically to fulfill requirements for Ethereum (more on how devp2p adopted parts of libp2p [in the next section](#Coverging-devp2p-and-libp2p-)). | ||
In particular, devp2p specifies: | ||
|
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.
I like the table idea if it isn't much work.
Co-authored-by: Steve Loeppky <stvn@loeppky.com>
Images automagically compressed by Calibre's image-actions ✨ Compression reduced images by 14.5%, saving 8.43 KB.
42 images did not require optimisation. |
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.
Awesome @p-shahi:) I added some additional spelling and grammar edits and formatted the blog + centered the images.
Blog post about the libp2p efforts to integrate with Ethereum