eqlabs / polkadot-light-client-spec Goto Github PK
View Code? Open in Web Editor NEWC++ Light Client implementation spec
C++ Light Client implementation spec
A global review of the document
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.
Components like Runtime/execution environments, ... for the light client have not been addressed
Fix:
Mentions three initial RPC methods to be implemented. Would this suffice? Justification would be appreciated.
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.
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?
Fix:
No mention of chains to be supported (e.g. Polkadot, Kusama, Parachains)
Feedback text from Polkadot regarding grant submission, specific to JSON-RPC methods:
Components like ... local host storage ... for the light client have not been addressed
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 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.
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
It would also be interesting to gain insights into the disadvantages of implementing in C++ and the major pain points the team expects
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.