shresthagrawal / learnp2p Goto Github PK
View Code? Open in Web Editor NEWhttps://learnp2p.org
Home Page: https://jslibp2p-chat-tutorial.vercel.app
License: MIT License
https://learnp2p.org
Home Page: https://jslibp2p-chat-tutorial.vercel.app
License: MIT License
There seems to be some confusion between the original "vanilla" design of Kademlia
and S/Kademlia
, which are iterative in their node lookup process and the version coined R/Kademlia
which utilises a recursive lookup design.
Currently in section 4, chapter 1 (DHTs), this section is incorrect. Secondly in chapter 3 (Kademlia) this section also hints towards the use of recursive node lookups.
The libp2p implementations xx-libp2p-kad-dht
currently follow the original iterative lookup algorithm and extend it in parallel following from S/Kademlia
, whereas the documentation indicates something recursive, similar to R/Kademlia
.
I'm in the process of updating these parts with information that I see as correct according to the iterative lookup algorithm used in xx-libp2p-kad-dht
and will happily accept feedback!
Edit: Some further clarification from a core dev which confirms this.
Edit 2: My (maybe COVID infested) brain made a git mess, so I made a clean PR. Ignore the reference to 33 and instead look to PR #34. Apologies.
There are a few additional contents that I wish to add to the Js-Libp2p-Chat-Tutorial Literature.
lets expand the tutorial to not just support js-libp2p but also rust, and go implementations of libp2p.
In #11 we discovered that the support for Plaintext as an default encryption was removed. And running the bootstrap code 2.2-finished-code.js
and then running the code 2.3-finished-code.js
which just dials to the bootstrap throws the following error:
(node:67986) UnhandledPromiseRejectionWarning: AggregateError:
Error: protocol selection failed
at module.exports (/Users/shresthagrawal/Desktop/study/libp2p/jslibp2p-chat-tutorial/assets/node_modules/multistream-select/src/select.js:50:17)
at async Upgrader._encryptOutbound (/Users/shresthagrawal/Desktop/study/libp2p/jslibp2p-chat-tutorial/assets/node_modules/libp2p/src/upgrader.js:361:36)
at async Upgrader.upgradeOutbound (/Users/shresthagrawal/Desktop/study/libp2p/jslibp2p-chat-tutorial/assets/node_modules/libp2p/src/upgrader.js:168:11)
at async ClassIsWrapper.dial (/Users/shresthagrawal/Desktop/study/libp2p/jslibp2p-chat-tutorial/assets/node_modules/libp2p-tcp/src/index.js:42:18)
at async TransportManager.dial (/Users/shresthagrawal/Desktop/study/libp2p/jslibp2p-chat-tutorial/assets/node_modules/libp2p/src/transport-manager.js:87:14)
at async /Users/shresthagrawal/Desktop/study/libp2p/jslibp2p-chat-tutorial/assets/node_modules/libp2p/src/dialer/dial-request.js:58:18
at async /Users/shresthagrawal/Desktop/study/libp2p/jslibp2p-chat-tutorial/assets/node_modules/p-some/index.js:53:19
at maybeSettle (/Users/shresthagrawal/Desktop/study/libp2p/jslibp2p-chat-tutorial/assets/node_modules/p-some/index.js:31:11)
at /Users/shresthagrawal/Desktop/study/libp2p/jslibp2p-chat-tutorial/assets/node_modules/p-some/index.js:69:23
(node:67986) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)
(node:67986) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
It is hard for the user to sparely update two codes which are almost the same. Can we merge both the code and to choose take --botstrap
as an input in the shell.
Currently all the logo and visuals are from substrate kitties tutorial, add appropriate appearance changes.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.