PoC Polkadot Conformance Tests#1956
Conversation
|
CLA Assistant Lite bot All contributors have signed the CLA ✍️ ✅ |
|
I have read and hereby sign the Contributor License Agreement. |
removed URL to PR from previous grant
Correct level format
Noc2
left a comment
There was a problem hiding this comment.
Thanks a lot for the application. Are you aware of the following grant application: #1950? Potentially both teams could work together on the project or at least on separate tasks initially. Do you also want to use Zombienet for the PoC Tests? We could potentially put you in touch with the Zombienet team.
| | 0e. | Article | We will publish an article explaining the research, design decisions and proof of concept | | ||
| | 1. | PoC code| General structure | | ||
| | 2a. | Code| PoC Tests: Host API: cryptography primitives | | ||
| | 2b. | Code| PoC Tests: Trie proof verification | |
There was a problem hiding this comment.
Could you please elaborate on the test fixtures and how you decide the abstraction level for the interfaces so that the tests can be integrated with multiple hosts implementations?
| | 1. | PoC code| General structure | | ||
| | 2a. | Code| PoC Tests: Host API: cryptography primitives | | ||
| | 2b. | Code| PoC Tests: Trie proof verification | | ||
| | 2c. | Code| PoC Tests: Scale encoding and decoding | |
There was a problem hiding this comment.
there is already comprehensive tests available for SCALE codec here, which could be integrated in your testing framework to convince the feasibility of the architecture.
Given that our primary objective is that of aligning with specifications, our initial focus is on Conformance Testing at the individual node level. Additionally, Integration testing plays a pivotal role, ensuring that interactions and compatibility within system components are seamless. Zombienet is more adequate system tests or detailed network simulations that involve multiple nodes, and its introduction at this point results in some problems/challenges:
Zombienet will undoubtedly be of great value in subsequent testing phases. However, our immediate priority is targeted and meticulous testing, ensuring the resilience of each node independently and laying a firm foundation for broader evaluations later on. We definitely want to use Zombienet but we don't find it adequate in this early phase. With respect to @bhargavbh questions:
Each node implementation consists of distinct components, each specified individually. Beyond just exposing interfaces, it's crucial to have adequate introspection and instrumentation for these components. Our focus on elements such as Host API, trie proof, and scale codes is due to their varied levels of exposure. While it's essential to verify each group of specs, we aim to do so without exposing bare all implementation specifics. Therefore, we plan to prepare adapters tailored for each subset of components. These adapters will adhere to a future SpecVerificationAPI, ensuring each component is instrumented tested appropriately.
While we plan to use these tests as a reference, they are unit tests that are being much tied to the code itself. In many cases, they depend on implementation details that are not part of the specs that we intend to confirm. We initially don't think that this specific source code can be directly repurposed to test other implementations. |
Noc2
left a comment
There was a problem hiding this comment.
Thanks for the quick reply. I'm happy to go ahead with it and share it with the rest of the team. Also based on my previous experience with your team. Apart from this, you might want to take a look polkafuzz which could be useful here. And it would be nice if you also contribute to the spec, in case you discover any issues.
keeganquigley
left a comment
There was a problem hiding this comment.
Thanks @ainhoa-a it sounds like you have a firm vision for this, and based on your team's reputation I'm also happy to go ahead with it.
SBalaguer
left a comment
There was a problem hiding this comment.
I'm happy to proceed with this as well. Having a comprehensive set of different host implementations tested across to ensure same functionality makes sense. Looking forward to see how this PoC develops.
|
Congratulations and welcome to the Web3 Foundation Grants Program! Please refer to our Milestone Delivery repository for instructions on how to submit milestones and invoices, our FAQ for frequently asked questions and the support section of our README for more ways to find answers to your questions. |
Project Abstract
Our objective is to develop a proof of concept for a test suite that can be executed across various host implementations and executors.
Grant level
Application Checklist
project_name.md).@ainhoa_a:matrix.org(change the homeserver if you use a different one)