What problem are you solving?
Describe the pain point. What are the shortcomings of current solutions?
The current Incognito blockchain has been developed to integrate with a network of highway nodes. After the initial application of this new network topology, we felt many improvements could be made to improve scalability. Here is a new version of Incognito and Highway that solves the following issues:
- Data synchronization by nodes with poor network performance is very slow and sometimes interrupted.
- Requests for data as well as response packets are frequent and redundant. This consumes a great deal of node resources.
What is the solution?
Why is it a good idea? What’s new about what you’re doing? The more details, the better. Sketches, mockups, demos, prototypes, videos, pictures - it all helps community members get excited as you are.
We have isolated the most appropriate techniques to tackle each problem. The following have been reviewed and tested:
- Streaming, based on gRPC. This helps reduce synchronization latency and saves bandwidth by skipping redundant HTTP request headers.
- Caching highway’s data in memory. Since Highway must serve many clients, the cache must support concurrent operations with minimal latency. Ristretto satisfies these requirements with an added bonus of memory-bounding.
Which solutions do people resort to because this doesn’t exist yet?
Who are the direct and indirect competitors? Why is your solution better?
None that we know of. Node owners with unstable network connections are facing many issues regarding synchronization speed.
Who are you?
Introduce the project team members (schools, jobs, projects, github, twitter, blogs, etc.) and any similar work you’ve done.
We are part of the Incognito Core team (@hyng, @duybao ), and also the creators of the current Highway version. Our research interests lie in distributed systems, cryptography and everything related to blockchain. Our advisors are @0xkumi and researcher @dungtran, they provide valuable support in the design of Highway’s architecture.
Why do you care?
Tell people why you’re passionate about your privacy project and committed to making it happen.
We want anyone to be able to join the Incognito network, with the lowest hardware and bandwidth requirements possible. Also, we want to transfer packets in the network faster and in an optimal manner. This will support the scaling of node numbers in the committee, which is essential for achieving decentralization and byzantine fault tolerance.
What’s your plan? What’s your schedule?
Layout a clear, specific timeline for what community members can expect.
There are 2 parts to this plan:
- Update syncing logic to support gRPC streaming and caching
- Implement streaming and caching features on highway
Schedule (total 2 months), starting from Jan 15:
- Research and experiment: 2 weeks
- Update syncing logic: 1 week
- Implement streaming and caching: 3 weeks
- Unit test and integration test: 1 week
- Deploy on testnet: 1 week
- Deploy on mainnet: March 15
What’s your budget?
A simple breakdown lets community members know you’ve thought things through and have a workable plan, so they can trust you to use funds wisely.
The project will be undertaken by 2 engineers:
|Blockchain engineer @duybao(3/4 resource)||2,000 PRV||1||1,500 PRV|
|Research engineer @hyng(3/4 resource)||1,000 PRV||1||750 PRV|
|Sub total||2,250 PRV|
|Total (x 2 months)||4,500 PRV|
Is there an existing conversation around this idea?
Not yet on this forum.
Is there anything else you would like the community to know?
Let us know what you think. Feedback on our design is welcome!