eqlabs / polkadot-light-client-spec Goto Github PK
View Code? Open in Web Editor NEWC++ Light Client implementation spec
C++ Light Client implementation spec
Overall, the spec seems to be sparse and lacks details on several key components of the light-client. Components like ... light-weight interactions with GRANDPA and BABE (and Sassafras in future) for the light client have not been addressed
Components like ... local host storage ... for the light client have not been addressed
Fix:
No discussion of embedding runtime environments to run on-chain wasm blobs. How would the compiled targets (for different platforms) interface with the embedded runtime environments.
Furthermore, the document could be improved by adding justification to the design choices. For example,
"We will use hash_map with serialization/deserialization to hold the blockchain state." in Implementation.md
Missing details, especially on the limits of using a hashmap. What were the other options considered? would there not be any non-persistence issues? AFAIK, other node implementations use a Database for similar tasks.
A global review of the document
Components like Runtime/execution environments, ... for the light client have not been addressed
It would also be interesting to gain insights into the disadvantages of implementing in C++ and the major pain points the team expects
Fix concern:
Missing a clear comparison of required components between Light-Client and Full Node. Ideally describe a spectrum of functionalities that a light-client can support.
Feedback text from Polkadot regarding grant submission, specific to JSON-RPC methods:
Fix:
Mentions three initial RPC methods to be implemented. Would this suffice? Justification would be appreciated.
Fix:
Details of the required crypto libs missing; nice to have: assessment of using the heavy crypto libs in a resource constrained light-client.
Fix:
No mention of chains to be supported (e.g. Polkadot, Kusama, Parachains)
Similarly, it is mentioned:
“Boost::asio used as the main event loop” - Diagram
Why does ASIO satisfy the requirements at hand? What would the Callback Graph of the event-driven system look like? What are the event triggers?
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.