Maintainance & Constantine Integration to the Nim Verkle Tree Library
So this week was all about maintainance & integration of the of Constantine library into nim-eth-verkle
. Now this led to a long discussion with the Nimbus team, and we have decided to go with the following approach:
- Start with a PoC as Constantine as a git submodule. You can check the on-going work of integration in this Issue
- Then later we will collaborate with the Codex team to make a nimble install for the Constantine repository. For the maintaince the following had been done :
- Made another PR for adding the Batch Serialization along with solving some errors in the previous PR with Batch Inversion added.
- Helping @agnish with the implementation of the IPA+Multipoint implementation, in this PR
- During the IPA implementation @agnish had a doubt if my implementation of the Batch Inversion was working correctly with Scalar Field $\mathbb{F_r}$ or not. So I wrote a test for that, and it turns out that it was working correctly. ( The test is not added to the repository as that test is insignificant, and was just for the sake of testing )
Maintainance
A significant step in maintaining the library involved the addition of Batch Serialization functionality. This implementation not only enhances the library’s efficiency but also addressed some errors identified in a previous Pull Request that included Batch Inversion. The combined effect of these changes is expected to improve the overall performance and stability of the library.
Our maintenance efforts extended to providing support for the IPA+Multipoint implementation. This work was done in collaboration with a team member, @agnish. The changes made in Pull Request reflect our commitment to facilitating the development of features that rely on the Constantine library.
During the implementation of IPA, a concern was raised regarding the compatibility of the Batch Inversion feature with Scalar Field $\mathbb{F_r}$. To address this concern, a comprehensive test was designed and executed. The results of this test confirmed the correctness of the Batch Inversion implementation, providing assurance that it functions as intended within the library.
While the test itself has not been added to the repository, it served its purpose of validating the feature’s accuracy.
Constantine Integration
Our primary goal was to seamlessly integrate the Constantine library into the nim-eth-verkle
project. To achieve this, we have adopted a phased approach to ensure smooth integration and future maintainability:
- Proof of Concept (PoC):
We initiated the process by setting up Constantine as a git submodule within the nim-eth-verkle repository. This PoC serves as the foundation for the ongoing integration work. Interested parties can track the progress through Issue #13 on the GitHub repository, which is regularly updated to reflect our current status and the challenges we encounter. You can view the ongoing work and discussions related to this integration in Issue #13. - Collaboration with Codex Team:
We recognize the importance of providing an easily accessible installation method for the Constantine repository. In the future, we plan to collaborate with the Codex team to create a nimble install option for the Constantine library. This will significantly simplify the process of incorporating Constantine into other projects, enhancing the library’s usability and accessibility.
Next Steps
The maintenance and integration of the Constantine library into the nim-eth-verkle project have made significant progress during this week. The phased approach adopted, along with collaboration with the Codex team for future nimble install support, ensures a robust and user-friendly library integration process. The maintenance activities, including Batch Serialization and Batch Inversion testing, contribute to the overall quality and reliability of the library, making it a valuable component of the nim-eth-verkle project and other related endeavors. The team remains committed to continuous improvement and ongoing development.
The maintenance work will continue, with a focus on ensuring the smooth integration of the Constantine library into nim-eth-verkle. Further updates will be provided as the project progresses.