diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 982478ace6..302f30d834 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -3,7 +3,7 @@ - [x] The [milestone-delivery-template.md](https://github.com/w3f/Grant-Milestone-Delivery/blob/master/deliveries/milestone-delivery-template.md) has been copied and updated. - [ ] This pull request is being made by the same account as the accepted application. - [ ] I have disclosed any and all sources of reused code in the submitted repositories and have done my due diligence to meet its license requirements. -- [ ] In case of acceptance, an invoice must be submitted and the payment will be transferred to the BTC/ETH/fiat account provided in the application. +- [ ] In case of acceptance, an invoice must be submitted and the payment will be transferred to the Polkadot/fiat account provided in the application. - [ ] The delivery is according to the [Guidelines for Milestone Deliverables](https://grants.web3.foundation/docs/Support%20Docs/milestone-deliverables-guidelines). Link to the application pull request: https://github.com/w3f/Grants-Program/pull/XXX < please fill this in with the PR number of your application. diff --git a/README.md b/README.md index d86e0a44b2..aed18f4630 100644 --- a/README.md +++ b/README.md @@ -30,7 +30,7 @@ The milestone delivery process is part of the [W3F Grants Program](https://githu 3. **Milestone Payment:** 1. After the milestone is approved and the pull request merged, fill out the [invoice form](https://forms.gle/LSRr7PCjBpEbKGh89). 1. The [operations team](https://grants.web3.foundation/docs/Introduction/team#w3f-operations-team) receives a notification once the invoice is submitted. Payments are usually processed within 14 days. - 2. Payment is made to the bank account or Bitcoin, Polkadot, Kusama or Ethereum address specified in the initial application. The exchange rate for BTC depends on the time of payment. + 2. Payment is made to the bank account or Polkadot address specified in the initial application. Grant applications can be [amended](https://grants.web3.foundation/docs/Process/changes) at any time. However, this _necessitates a reevaluation by the committee_. If your application has been accepted and, during development, you find that your project significantly deviates from the original specification, please open a new pull request that modifies the existing application. diff --git a/deliveries/cryptex_milestone_3.md b/deliveries/cryptex_milestone_3.md new file mode 100644 index 0000000000..1f2430e797 --- /dev/null +++ b/deliveries/cryptex_milestone_3.md @@ -0,0 +1,30 @@ +# Milestone Delivery :mailbox: + +**The [invoice form :pencil:](https://docs.google.com/forms/d/e/1FAIpQLSfmNYaoCgrxyhzgoKQ0ynQvnNRoTmgApz9NrMp-hd8mhIiO0A/viewform) has been filled out correctly for this milestone and the delivery is according to the official [milestone delivery guidelines](https://github.com/w3f/Grants-Program/blob/master/docs/Support%20Docs/milestone-deliverables-guidelines.md).** + +* **Application Document:** https://github.com/w3f/Grants-Program/blob/master/applications/cryptex.md +* **Milestone Number:** 3 + +**Context** + +The Etf Network is a Substrate-based blockchain that utilizes identity-based encryption and zero knowledge proofs to enable "encryption to the future", or timelock encryption. It uses a slot-based consensus system as a reference clock to which messages can be encrypted. The initial implementation uses a fork of Aura to implement a proof-of-authority version of ETF, where authorities are IBE master key custodians. Valid blocks authored in future slots contain the corresponding secret keys. To put it another way, each slot has a unique, publicly calculable identity, and whenever a block is authored in that slot, the identity owners leaks their secret key. + +In the third milestone we deliver an initial use case on the etf network, a second-price sealed-bid auction NFT platform. The auction takes advantage of the timelock encryption implemented in the previous milestone to seal bids for auction participants. + +**Deliverables** + +| Number | Deliverable | Link | Notes | +| ------: | -------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ | +| **0a.** | License | https://github.com/ideal-lab5/substrate/blob/etf/LICENSE-GPL3 | GPLv3 | +| **0b.** | Documentation | https://ideal-lab5.github.io | also see inline documentation and readmes | +| **0c.** | Testing and Testing Guide | https://docs.google.com/document/d/1SJ9bf2ALFf-UBG-W4gF63aQS1_9FywDQgBry1oxRv64/edit?usp=sharing | | +| **0d.** | Docker | [etf node](https://hub.docker.com/repository/docker/ideallabs/etf/general), [etf-auction-ui](https://hub.docker.com/repository/docker/ideallabs/etf-auction-ui/general) | | +| **0e.** | Article | [milestone 3 substack draft](https://ideallabs.substack.com/p/509e34d1-3d7e-43f0-a7d5-54e8215dae1e) | unpublished, pending milestone 3 acceptance. | +| 1. | Smart Contract: Auction Platform | [contracts repo](https://github.com/ideal-lab5/contracts) | see the docs [here](https://ideal-lab5.github.io/timelock_auction.html) and the substack article above for a deep dive on this piece | +| 2. | UI/SDK: Auction Interface | [etf-auction-ui repo](https://github.com/ideal-lab5/etf-auction-ui) hosted at [(infura IPFS)](http://auction.idealabs.network) and [vercel](https://etf-auction.vercel.app/), [etf-sdk](https://github.com/ideal-lab5/etf-sdk), [typescript lib](https://github.com/ideal-lab5/etf.js) | npm packages are published [here](https://www.npmjs.com/search?q=ideallabs) | +| 3. | UI + Testnet Deployment | nodes hosted at [etf0.idealabs.network, etf1.idealabs.network], [Grafana](http://etf0.idealabs.network:3000/d/PUYzGbwWz/substrate-node-template-metrics?orgId=1), [prometheus](http://etf0.idealabs.network:9090/) [ipfs-hosted UI - http://auction.idealabs.network](http://auction.idealabs.network) | | + + +**Additional Information** + +- in the [previous milestone delivery](https://github.com/w3f/Grant-Milestone-Delivery/pull/985), we discussed some potential optimizations of the encryption scheme. Rather than expand the scope of this grant to include this optimization (likely requiring an ammendment and re-approval), we opted to include it in the next phase of the project. \ No newline at end of file diff --git a/deliveries/eiger-PNS-milestone-1.md b/deliveries/eiger-PNS-milestone-1.md new file mode 100644 index 0000000000..e4b8b5532c --- /dev/null +++ b/deliveries/eiger-PNS-milestone-1.md @@ -0,0 +1,33 @@ +# Milestone Delivery :mailbox: + + +**The delivery is according to the official [milestone delivery guidelines](https://github.com/w3f/Grants-Program/blob/master/docs/Support%20Docs/milestone-deliverables-guidelines.md).** + +* **Application Document:** https://github.com/w3f/Grants-Program/blob/master/applications/Eiger_Storage_on_Polkadot_1.md +* **Milestone Number:** 1 + +**Context** + +Our main goal is to describe how to implement and maintain a Filecoin-like system parachain -- a parachain that uses DOT as the native token and is easily usable for all kinds of parachain projects in the ecosystem via XCM. + +We also update [research done previously](https://github.com/common-good-storage) to reflect the latest technical changes in Polkadot and Substrate. We wanted to figure out what it would take to implement a whole storage solution as a parachain without depending on 3rd party chains and evaluate what components need to be written from scratch and what can be reused. + + +**Deliverables** + +| Number | Deliverable | Link | Notes | +| ------------- | ------------- | ------------- |------------- | +| **0a.** | Copyright and Licenses |https://github.com/eigerco/polkadot-native-storage/blob/main/LICENSE| MIT| +| **0b.** | Documentation/Tutorial |https://github.com/eigerco/polkadot-native-storage/blob/main/README.md| inline documentation inside the code| +| **0c.** | Methodology |https://github.com/eigerco/polkadot-native-storage/blob/main/doc/report/src/new-overview.md#2-methodology| ...| +| **0d.** | Infrastructure |https://github.com/eigerco/polkadot-native-storage/blob/main/doc/testing_guide.md#infrastructure--testing-environment| ...| +| **0e.** | Article |https://github.com/eigerco/polkadot-native-storage/blob/main/doc/report/src/new-overview.md| ...| +| **0f.** | Testing and Testing Guide |https://github.com/eigerco/polkadot-native-storage/blob/main/doc/testing_guide.md| ...| +| **0g.** | Docker |https://github.com/eigerco/polkadot-native-storage/blob/main/README.md#docker , https://github.com/eigerco/polkadot-native-storage/blob/main/Dockerfile| ...| +| **1.** | Updated CGS code |https://github.com/eigerco/polkadot-native-storage| ...| + + + +**Additional Information** + +In our conclusion, we outlined [28 work milestones](https://github.com/eigerco/polkadot-native-storage/blob/main/doc/report/src/new-conclusion.md#31-implementation) that would deliver immutable native storage for Polkadot. diff --git a/deliveries/hybrid2-2.md b/deliveries/hybrid2-2.md new file mode 100644 index 0000000000..ab40b4c269 --- /dev/null +++ b/deliveries/hybrid2-2.md @@ -0,0 +1,27 @@ +# Milestone Delivery :mailbox: + +**The delivery is according to the official [milestone delivery guidelines](https://github.com/w3f/Grants-Program/blob/master/docs/Support%20Docs/milestone-deliverables-guidelines.md).** + +* **Application Document:** https://github.com/w3f/Grants-Program/blob/master/applications/hybrid2.md +* **Milestone Number:** 2 + +**Deliverables** + +| Number | Deliverable | Link | Notes | +| -------| ----------- | ---- | ----- | +| 0a. | License | [LICENSE](https://github.com/hybrid-explorer/hybrid-indexer/blob/main/LICENSE) | Apache 2.0 | +| 0b. | Documentation | [tutorial.md](https://github.com/hybrid-explorer/hybrid-indexer/blob/main/doc/tutorial.md) | | +| 0c. | Testing and Testing Guide | [testing-guide.md](https://github.com/hybrid-explorer/hybrid-indexer/blob/main/doc/testing-guide.md) | This guide explains how to verify the deliverables in this milestone. | +| 0d. | Docker | [Dockerfile](https://github.com/hybrid-explorer/polkadot-indexer/blob/main/Dockerfile) | | +| 1. | Index backwards | [substrate.rs](https://github.com/hybrid-explorer/hybrid-indexer/blob/main/src/substrate.rs#L684) | | +| 2. | Store indexed spans | [substrate.rs](https://github.com/hybrid-explorer/hybrid-indexer/blob/main/src/substrate.rs#L784) | | +| 3. | Declare indexer start blocks | [substrate.rs](https://github.com/hybrid-explorer/hybrid-indexer/blob/main/src/substrate.rs#L594) | [Indexers declare an array of block numbers where new indexer versions have been deployed](https://github.com/hybrid-explorer/polkadot-indexer/blob/main/indexer/src/polkadot.rs#L58) | + +**Additional Information** + +Additional tests have been written for the complex logic: [tests.rs](https://github.com/hybrid-explorer/hybrid-indexer/blob/main/src/tests.rs#L989) + +In addition to the deliverables, the following features have been implemented: +* [key count statistics are logged](https://github.com/hybrid-explorer/hybrid-indexer/commit/a15b1ce1a4e40546e22e818d034880ca37187a60) +* [zerocopy is used when reading and writing the database to reduce CPU usage and remove boilerplate code](https://github.com/hybrid-explorer/hybrid-indexer/commit/229d3e237dcf79984ccc627faf19f4a2daf964e3) +* [subxt has been upgraded to 0.32](https://github.com/hybrid-explorer/hybrid-indexer/commit/a984aa92203ef35578940f8f3dadd7d123c97db2) diff --git a/deliveries/lastic-milestone_1.md b/deliveries/lastic-milestone_1.md new file mode 100644 index 0000000000..7fd2c5740a --- /dev/null +++ b/deliveries/lastic-milestone_1.md @@ -0,0 +1,77 @@ +# Milestone Delivery :mailbox: + +> ⚡ Only the GitHub account that submitted the application is allowed to submit milestones. +> +> Don't remove any of the mandatory parts presented in bold letters or as headlines! Lines starting with `>`, such as this one, can be removed. + +**The delivery is according to the official [milestone delivery guidelines](https://github.com/w3f/Grants-Program/blob/master/docs/Support%20Docs/milestone-deliverables-guidelines.md).** + +* **Application Document:** [lastic.md](https://github.com/w3f/Grants-Program/blob/master/applications/Lastic.md) +* **Milestone Number:** 1 + +**Context** (optional) +Lastic's first milestone focuses on laying the foundational elements for the project. This includes the creation of essential documentation, designs, and frontend components. The deliverables in this milestone serve as the building blocks for the Lastic platform, ensuring that it aligns with the vision presented in the initial application. The articles, whitepaper, and designs provide insights into Lastic's objectives, while the frontend components showcase the practical implementation of these ideas. + +**Deliverables** +Below is a list of all deliverables for this milestone, extracted from the initial application. Each deliverable is accompanied by a link to its location. If there are any specific details or notes about a deliverable, they are mentioned in the respective Notes column. + + +| Number | Deliverable | Link | Notes | +| ----- | ----------- | ------ | ------- | +| **0a.** | License | [LICENSE](https://github.com/LasticXYZ/LasticUI/blob/main/LICENSE) | Licensed under GPLv3 | +| **0b.** | Documentation | [README.md](https://github.com/LasticXYZ/LasticUI/blob/main/README.md) and [docs.lastic.xyz](https://docs.lastic.xyz/) | All documentation is in the READMEs of the coresponding folders. | +| **0c.** | Testing and Testing Guide | [lastic.xyz](https://www.lastic.xyz/) | See section [Testing guide]() | +| **0d.** | Error logging | [Lastic UI/issues](https://github.com/LasticXYZ/LasticUI/issues) | All possible errors will be exposed as issues and fixed over time. | +| **0e.** | Article Publishing | [Unlocking the Future of Blockspace](https://medium.com/lastic-marketplace/unlocking-the-future-of-blockspace-introducing-lastic-9036b9d6637) | | +| **0e.** | Article Publishing | [The Genesis of Lastic](https://medium.com/lastic-marketplace/the-genesis-of-lastic-a-coretime-marketplace-for-polkadot-75130e40306c) | | +| **0e.** | Article Publishing | [Simplifying RFC-1: Understanding Agile Coretime for the Polkadot Network](https://medium.com/lastic-marketplace/the-genesis-of-lastic-a-coretime-marketplace-for-polkadot-75130e40306c) | | +| **0e.** | Article Publishing | [Polkadot 2.0: A New Era of Decentralization](https://medium.com/lastic-marketplace/polkadot-2-0-a-new-era-of-decentralization-d5626a6e63e5) | This article is currently marked as unlisted and will be officially published shortly. | +| **0e.** | Article Publishing | [Unraveling Agile Coretime: Polkadot’s Innovative Resource Allocation](https://medium.com/lastic-marketplace/unraveling-agile-coretime-polkadots-innovative-resource-allocation-2c025d0daa59) | | +| 1. | Whitepaper creation | [Lastic Whitepaper v1](https://github.com/LasticXYZ/LasticUI/blob/main/W3FGrant_Lastic_Whitepaper.pdf) | Lastic whitepaper version 1. | +| 2a. | User Flow Diagram Design | [Link to Flow Chart](https://www.figma.com/file/aFn15lyvti5hqLJBNUDZlU/Lastic-Flow-Chart-%231?type=whiteboard&node-id=0%3A1&t=ZiWNv9gRsH68D5Km-1) | Extended version of Figma available in lasticUI/README.md | +| 2b. | UI Figma Design | [Link to Figma UI](https://www.figma.com/proto/druTS8m2bCDNgovAjb0sbH/Lastic-milestone?page-id=0%3A1&type=design&node-id=203-897&viewport=191%2C-177%2C0.06&t=OHMXONHfLogXX1M4-1&scaling=min-zoom&starting-point-node-id=203%3A897&mode=design) | Link also available in lasticUI/README.md | +| 3a. | Frontend Development - Broker Pallet Integration | [Substrate Interact Github Link](https://github.com/LasticXYZ/LasticUI/tree/main/substrate-interact) | Links for detailed instructions on [how to get started with the substrate interact](https://docs.lastic.xyz/substrate-interact/) and [interaction instructions](https://docs.lastic.xyz/substrate-interact/interact.html) | +| 3b. | Mockup-based Frontend Development | [deployment - test.lastic.xyz](https://test.lastic.xyz/) [Link to Frontend](https://github.com/LasticXYZ/LasticUI/tree/main/substrate_interact) | The deployed version of the `main` branch can be accessed on [test.lastic.xyz](https://test.lastic.xyz/). However you can also check out the `stable` branch that is the official Lastic website at [lastc.xyz](https://lastic.xyz/) | + + +#### Testing Guide + +This section outlines the testing procedures and environments used for the Lastic platform, focusing on the deployment and responsiveness across various devices and browsers. + +**Testing Environments:** +- The `main` branch deployment, visible at [test.lastic.xyz](https://test.lastic.xyz/), has not been extensively tested for responsiveness. +- The official [Lastic website](https://www.lastic.xyz/), deployed from the `stable` branch, has undergone comprehensive testing across multiple platforms. + +**Testing Tools and Platforms:** +- The testing process utilized [BrowserStack Live](https://live.browserstack.com/) for cross-browser and cross-platform verification. +- A range of devices and operating systems were included in the testing to ensure broad compatibility. + +**Tested Platforms and Browsers:** +- **MacOS:** Tested with Chrome, Firefox, Safari, Edge, and Brave (all latest versions). +- **iPad:** Tested with Safari and Chrome (all latest versions). +- **Android Phone:** Tested with Chrome and Firefox (all latest versions). +- **iPhone:** Tested with Safari and Chrome (all latest versions). + +**Testing Focus:** +- Primary emphasis was on assessing mobile responsiveness and ensuring consistent user experience across different devices. +- Checks included verifying the absence of unintended behaviors or display issues. + +**Current Priorities:** +- While mobile responsiveness is important, the current focus is on enhancing interactivity with the Coretime chain. +- Future updates will aim to improve responsiveness and overall user experience. + +--- + +## Additional Information + +Complementary instructions on how to run everything can be found in the [lasticUI/README.md](https://github.com/LasticXYZ/LasticUI). + +**About the Milestone Deliverables:** +- All deliverables listed in this milestone are foundational components of the Lastic platform. +- These components will receive continuous enhancements based on feedback and evolving requirements. + +**Key Components in LasticUI Repository:** +- `./static_frontend`: Contains the static front-end elements of the platform. +- `./substrate_interact`: Houses the functionalities for interacting with the Substrate-based Coretime chain. + +For detailed insights and usage instructions for each component, please refer to the `README.md` files within the respective directories of the [LasticUI repository](https://github.com/LasticXYZ/LasticUI). diff --git a/deliveries/zeeve_larch_milestone_2.md b/deliveries/zeeve_larch_milestone_2.md new file mode 100644 index 0000000000..8beb5df542 --- /dev/null +++ b/deliveries/zeeve_larch_milestone_2.md @@ -0,0 +1,24 @@ +# Milestone Delivery :mailbox: + +**The [invoice form :pencil:](https://docs.google.com/forms/d/e/1FAIpQLSfmNYaoCgrxyhzgoKQ0ynQvnNRoTmgApz9NrMp-hd8mhIiO0A/viewform) has been filled out correctly for this milestone and the delivery is according to the official [milestone delivery guidelines](https://github.com/w3f/Grants-Program/blob/master/docs/Support%20Docs/milestone-deliverables-guidelines.md).** + +* **Application Document:** [larch - Zombie-net Automation](https://github.com/w3f/Grants-Program/blob/master/applications/Zeeve_Parachain_deployment_zoombienet_testing_automation.md). +* **Milestone Number:** 2 + +**Deliverables** + + +| Number | Deliverable | Link | Notes | +| ------------- | ------------- | ------------- |------------- | +| 0a. | License (GPLv3) |[larch/license](https://github.com/Zeeve-App/larch/blob/84da44beea04a399d91b1eb88d586e5e7e5c0058/license)| ...| +| 0b. | Documentation | [larch/readme.md at main · Zeeve-App/larch](https://github.com/Zeeve-App/larch/blob/84da44beea04a399d91b1eb88d586e5e7e5c0058/readme.md) [larch/docs at main · Zeeve-App/larch](https://github.com/Zeeve-App/larch/tree/main/docs) | Additionally docs are provided in the Larch application for users to understand usage and features | +| 0c. | Testing Guide | [larch/docs/development/test_coverage.md at main · Zeeve-App/larch · GitHub](https://github.com/Zeeve-App/larch/blob/main/docs/development/test_coverage.md) | ... | +| 0d. | Standalone Executable | [Release v1.4.0 · Zeeve-App/larch](https://github.com/Zeeve-App/larch/releases/tag/v1.4.0) | ... | +| 0e. | Article | [Zeeve's Larch: Polkadot/Substrate Zombienet Automation and Monitoring with an Intuitive GUI Tool](https://www.zeeve.io/blog/zeeves-larch-polkadot-substrate-zombienet-automation-and-monitoring-with-an-intuitive-gui-tool/) | ... | +| 1. | Design monitoring strategy | [Zeeve-App/larch at 30aa28681493d92cbdb5d1f56c11063790bc518f](https://github.com/Zeeve-App/larch/tree/30aa28681493d92cbdb5d1f56c11063790bc518f) | The Zombie-net doesn't provide any embedded monitoring tool, we will with the zombie-net setup automation, automatically setup prometheus and Grafana while configuring the zombie-net. | +| 2. | Setup Dashboard | [Zeeve-App/larch at 30aa28681493d92cbdb5d1f56c11063790bc518f](https://github.com/Zeeve-App/larch/tree/30aa28681493d92cbdb5d1f56c11063790bc518f) | The deployment done for Prometheus and Grafana will show standard Dashboard having system resource and zombie-net specific details shown on the aforementioned Grafana GUI Dashboard. | +| 3. | Activity | [Zeeve-App/larch at 30aa28681493d92cbdb5d1f56c11063790bc518f](https://github.com/Zeeve-App/larch/tree/30aa28681493d92cbdb5d1f56c11063790bc518f) | The system will log all the activities and operations performed by user | + +**Additional Information** + +- [Zeeve-App/larch at 30aa28681493d92cbdb5d1f56c11063790bc518f](https://github.com/Zeeve-App/larch/tree/30aa28681493d92cbdb5d1f56c11063790bc518f) \ No newline at end of file diff --git a/evaluations/Eiger_Storage_on_Polkadot_1_dsm-w3f.md b/evaluations/Eiger_Storage_on_Polkadot_1_dsm-w3f.md index c9852a9a9c..189e038201 100644 --- a/evaluations/Eiger_Storage_on_Polkadot_1_dsm-w3f.md +++ b/evaluations/Eiger_Storage_on_Polkadot_1_dsm-w3f.md @@ -1,21 +1,261 @@ # Evaluation -- **Status:** In Progress +- **Status:** Accepted - **Application Document:** https://github.com/w3f/Grants-Program/blob/master/applications/Eiger_Storage_on_Polkadot_1.md - **Milestone:** 1 -- **Kusama Identity:** Address -- **Previously successfully merged evaluation:** N/A +- **Previously successfully merged evaluation:** dsmw3f, keeganquigley | Number | Deliverable | Accepted | Link | Evaluation Notes | | ------ | ----------- | -------- | ---- |----------------- | | **0a.** | Copyright and Licenses ||https://github.com/eigerco/polkadot-native-storage/blob/main/LICENSE| | -| **0b.** | Documentation/Tutorial ||https://github.com/eigerco/polkadot-native-storage/blob/main/README.md| Not fully evaluated yet.| -| **0c.** | Methodology ||https://github.com/eigerco/polkadot-native-storage/blob/main/doc/report/src/new-overview.md#2-methodology| Not fully evaluated yet.| -| **0d.** | Infrastructure ||https://github.com/eigerco/polkadot-native-storage/blob/main/doc/testing_guide.md#infrastructure--testing-environment| Not fully evaluated yet.| -| **0e.** | Article ||https://github.com/eigerco/polkadot-native-storage/blob/main/doc/report/src/new-overview.md| Not fully evaluated yet.| -| **0f.** | Testing and Testing Guide ||https://github.com/eigerco/polkadot-native-storage/blob/main/doc/testing_guide.md| Not fully evaluated yet.| -| **0g.** | Docker ||https://github.com/eigerco/polkadot-native-storage/blob/main/README.md#docker , https://github.com/eigerco/polkadot-native-storage/blob/main/Dockerfile| Not fully evaluated yet.| -| **1.** | Updated CGS code ||https://github.com/eigerco/polkadot-native-storage| Not fully evaluated yet.| +| **0b.** | Documentation/Tutorial ||https://github.com/eigerco/polkadot-native-storage/blob/main/README.md| Looks good.| +| **0c.** | Methodology ||https://github.com/eigerco/polkadot-native-storage/blob/main/doc/report/src/new-overview.md#2-methodology| Looks good.| +| **0d.** | Infrastructure ||https://github.com/eigerco/polkadot-native-storage/blob/main/doc/testing_guide.md#infrastructure--testing-environment| Looks good.| +| **0e.** | Article ||https://github.com/eigerco/polkadot-native-storage/blob/main/doc/report/src/new-overview.md| Looks good.| +| **0f.** | Testing and Testing Guide ||https://github.com/eigerco/polkadot-native-storage/blob/main/doc/testing_guide.md| Looks good.| +| **0g.** | Docker ||https://github.com/eigerco/polkadot-native-storage/blob/main/README.md#docker , https://github.com/eigerco/polkadot-native-storage/blob/main/Dockerfile| Looks good.| +| **1.** | Updated CGS code ||https://github.com/eigerco/polkadot-native-storage| Looks good.| + +## Evaluation V2 (by Keegan Quigley) + +All issues have been resolved. Nice work so far! I was able to spin up both the relay chain and collator node and complete the entire guide. Looking forward to seeing the next iteration. + +### Tests + +
+ Node unit tests successful now + +```rust +running 25 tests +test mock::__construct_runtime_integrity_test::runtime_integrity_tests ... ok +test tests::cannot_register_as_candidate_if_keys_not_registered ... ok +test tests::basic_setup_works ... ok +test tests::cannot_register_as_candidate_if_invulnerable ... ok +test tests::cannot_register_as_candidate_if_poor ... ok +test tests::cannot_set_genesis_value_twice - should panic ... ok +test tests::candidate_to_invulnerable_works ... ok +test tests::authorship_event_handler ... ok +test tests::add_invulnerable_works ... ok +test tests::fees_edgecases ... ok +test tests::cannot_register_candidate_if_too_many ... ok +test tests::cannot_register_dupe_candidate ... ok +test tests::it_should_set_invulnerables_even_with_some_invalid ... ok +test tests::cannot_unregister_candidate_if_too_few ... ok +test tests::it_should_set_invulnerables ... ok +test tests::register_as_candidate_works ... ok +test tests::set_desired_candidates_works ... ok +test tests::set_candidacy_bond ... ok +test tests::leave_intent ... ok +test tests::remove_invulnerable_works ... ok +test tests::session_management_works ... ok +test tests::kick_mechanism ... ok +test tests::should_kick_invulnerables_from_candidates_on_session_change ... ok +test tests::should_not_kick_mechanism_too_few ... ok +test tests::invulnerable_limit_works ... ok + +test result: ok. 25 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s + + Running unittests src/lib.rs (target/debug/deps/pallet_miner-0a1e751b36e9cc47) + +running 18 tests +test mock::__construct_runtime_integrity_test::runtime_integrity_tests ... ok +test tests::change_owner_address_creates_proposal_with_valid_signer ... ok +test tests::change_owner_address_revokes_existing_proposal_with_valid_signer ... ok +test tests::change_peer_id_works_with_valid_controller ... ok +test tests::change_owner_address_rejects_invalid_signer ... ok +test tests::change_owner_address_confirms_new_owner_with_valid_signer_and_proposal ... ok +test tests::change_owner_address_rejects_proposal_with_owner_account ... ok +test tests::change_peer_id_rejects_invalid_signer ... ok +test tests::change_peer_id_works_with_valid_owner ... ok +test tests::change_worker_address_keeps_old_controller_without_override ... ok +test tests::change_worker_address_clears_pending_worker_with_valid_signer_and_old_worker ... ok +test tests::change_worker_address_rejects_trigger_without_request ... ok +test tests::change_worker_address_rejects_invalid_signer ... ok +test tests::change_worker_address_works_with_valid_signer_and_new_worker ... ok +test tests::confirm_update_worker_accepts_effective_request_with_valid_signature ... ok +test tests::create_miner_first_miner_addr_is_correct ... ok +test tests::create_miner ... ok +test tests::confirm_update_worker_key_rejects_trigger_before_effective_at ... ok + +test result: ok. 18 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s + + Running unittests src/lib.rs (target/debug/deps/pallet_pns-11a35ffd63cf24c8) + +running 1 test +test mock::__construct_runtime_integrity_test::runtime_integrity_tests ... ok + +test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s + + Running unittests src/lib.rs (target/debug/deps/pallet_pns_common-43dbc4ae8a8e7bce) + +running 4 tests +test address::network::tests::set_network ... ok +test address::tests::test_from_leb_bytes_extra_bytes ... ok +test address::tests::test_from_leb_bytes_minimal_encoding ... ok +test address::tests::test_from_leb_bytes_passing ... ok + +test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Running unittests src/lib.rs (target/debug/deps/pallet_pns_rpc-ab6e38b65331449b) + +running 2 tests +test tests::runtime_error_into_rpc_err_empty_str ... ok +test tests::runtime_error_into_rpc_err_test_str ... ok + +test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Running unittests src/lib.rs (target/debug/deps/pallet_pns_runtime_api-b9691a8eb295e5cf) + +running 0 tests + +test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Running unittests src/lib.rs (target/debug/deps/pallet_power-81a501436788fad8) + +running 1 test +test mock::__construct_runtime_integrity_test::runtime_integrity_tests ... ok + +test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Running unittests src/main.rs (target/debug/deps/polka_storage_node-54c0c07e629e9c5e) + +running 0 tests + +test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Running unittests src/lib.rs (target/debug/deps/polka_storage_runtime-690c78982765953f) + +running 5 tests +test weights::paritydb_weights::constants::test_db_weights::sane ... ok +test weights::block_weights::constants::test_weights::sane ... ok +test weights::extrinsic_weights::constants::test_weights::sane ... ok +test weights::rocksdb_weights::constants::test_db_weights::sane ... ok +test __construct_runtime_integrity_test::runtime_integrity_tests ... ok + +test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Doc-tests pallet-collator-selection-power + +running 0 tests + +test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Doc-tests pallet-miner + +running 0 tests + +test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Doc-tests pallet-pns + +running 0 tests + +test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Doc-tests pallet-pns-common + +running 0 tests + +test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Doc-tests pallet-pns-rpc + +running 0 tests + +test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Doc-tests pallet-pns-runtime-api + +running 0 tests + +test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Doc-tests pallet-power + +running 0 tests + +test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Doc-tests polka-storage-runtime + +running 0 tests + +test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s +``` +
+ +
+ Integration tests passing + +```rust +running 18 tests +test mock::__construct_runtime_integrity_test::runtime_integrity_tests ... ok +test tests::change_owner_address_creates_proposal_with_valid_signer ... ok +test tests::change_peer_id_works_with_valid_controller ... ok +test tests::change_owner_address_confirms_new_owner_with_valid_signer_and_proposal ... ok +test tests::change_owner_address_revokes_existing_proposal_with_valid_signer ... ok +test tests::change_peer_id_works_with_valid_owner ... ok +test tests::change_peer_id_rejects_invalid_signer ... ok +test tests::change_owner_address_rejects_proposal_with_owner_account ... ok +test tests::change_owner_address_rejects_invalid_signer ... ok +test tests::change_worker_address_keeps_old_controller_without_override ... ok +test tests::change_worker_address_clears_pending_worker_with_valid_signer_and_old_worker ... ok +test tests::change_worker_address_rejects_trigger_without_request ... ok +test tests::create_miner ... ok +test tests::create_miner_first_miner_addr_is_correct ... ok +test tests::change_worker_address_works_with_valid_signer_and_new_worker ... ok +test tests::confirm_update_worker_accepts_effective_request_with_valid_signature ... ok +test tests::change_worker_address_rejects_invalid_signer ... ok +test tests::confirm_update_worker_key_rejects_trigger_before_effective_at ... ok + +test result: ok. 18 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s + + Doc-tests pallet-miner + +running 0 tests + +test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s +``` + +
+ +
+ Benchmarking build works now + +```rust + Compiling pallet-power v0.1.0 (/Users/keeganquigley/polka-storage/pallets/power) + Compiling pallet-miner v0.1.0 (/Users/keeganquigley/polka-storage/pallets/miner) + Compiling pallet-pns v0.1.0 (/Users/keeganquigley/polka-storage/pallets/pns) + Compiling cumulus-primitives-utility v0.1.0 (https://github.com/paritytech/cumulus.git?branch=polkadot-v1.0.0#0d17cf6b) + Compiling cumulus-pallet-xcmp-queue v0.1.0 (https://github.com/paritytech/cumulus.git?branch=polkadot-v1.0.0#0d17cf6b) + Compiling cumulus-primitives-aura v0.1.0 (https://github.com/paritytech/cumulus.git?branch=polkadot-v1.0.0#0d17cf6b) + Compiling sc-consensus-aura v0.10.0-dev (https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2f) + Compiling pallet-collator-selection-power v0.1.0 (/Users/keeganquigley/polka-storage/pallets/collator-selection-power) + Compiling cumulus-pallet-session-benchmarking v3.0.0 (https://github.com/paritytech/cumulus.git?branch=polkadot-v1.0.0#0d17cf6b) + Compiling cumulus-pallet-dmp-queue v0.1.0 (https://github.com/paritytech/cumulus.git?branch=polkadot-v1.0.0#0d17cf6b) + Compiling cumulus-primitives-timestamp v0.1.0 (https://github.com/paritytech/cumulus.git?branch=polkadot-v1.0.0#0d17cf6b) + Compiling parachain-info v0.1.0 (https://github.com/paritytech/cumulus.git?branch=polkadot-v1.0.0#0d17cf6b) + Compiling cumulus-client-cli v0.1.0 (https://github.com/paritytech/cumulus.git?branch=polkadot-v1.0.0#0d17cf6b) + Compiling cumulus-client-consensus-aura v0.1.0 (https://github.com/paritytech/cumulus.git?branch=polkadot-v1.0.0#0d17cf6b) + Compiling pallet-pns-rpc v0.1.0 (/Users/keeganquigley/polka-storage/pallets/pns/rpc) + Compiling polkadot-service v1.0.0 (https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a) + Compiling cumulus-relay-chain-inprocess-interface v0.1.0 (https://github.com/paritytech/cumulus.git?branch=polkadot-v1.0.0#0d17cf6b) + Compiling cumulus-client-service v0.1.0 (https://github.com/paritytech/cumulus.git?branch=polkadot-v1.0.0#0d17cf6b) + Finished release [optimized] target(s) in 6m 08s +``` +
+ +### RPC Testing + +cURL command is successful now: +```sh +curl -H "Content-Type: application/json" -d '{"id":1, "jsonrpc":"2.0", "method": "pns_chainGetBlock", "params": ["123"]}' http://localhost:9944/ +{"jsonrpc":"2.0","result":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"id":1}% +``` + +### XCM Testing + +Was able to reproduce the same results of non-zero values. ## Evaluation V1 diff --git a/evaluations/cryptex_3_dsm-w3f.md b/evaluations/cryptex_3_dsm-w3f.md index 33e5b04f2f..186fe24225 100644 --- a/evaluations/cryptex_3_dsm-w3f.md +++ b/evaluations/cryptex_3_dsm-w3f.md @@ -1,6 +1,6 @@ # Evaluation -- **Status:** In Progress +- **Status:** Accepted - **Application Document:** https://github.com/w3f/Grants-Program/blob/master/applications/cryptex.md - **Milestone:** 3 - **Previously successfully merged evaluation:** dsmw3f, keeganquigley @@ -8,16 +8,1183 @@ | Number | Deliverable | Accepted | Link | Evaluation Notes | | ------ | ----------- | -------- | ---- |----------------- | | **0a.** | License || https://github.com/ideal-lab5/substrate/blob/etf/LICENSE-GPL3 | | -| **0b.** | Documentation || https://ideal-lab5.github.io | Not fully evaluated yet. | -| **0c.** | Testing and Testing Guide || https://docs.google.com/document/d/1SJ9bf2ALFf-UBG-W4gF63aQS1_9FywDQgBry1oxRv64/edit?usp=sharing | Not fully evaluated yet. | -| **0d.** | Docker || [etf node](https://hub.docker.com/repository/docker/ideallabs/etf/general), [etf-auction-ui](https://hub.docker.com/repository/docker/ideallabs/etf-auction-ui/general) | Not fully evaluated yet. | -| **0e.** | Article || [milestone 3 substack draft](https://ideallabs.substack.com/p/509e34d1-3d7e-43f0-a7d5-54e8215dae1e) | | -| 1. | Smart Contract: Auction Platform || [contracts repo](https://github.com/ideal-lab5/contracts) | Have some problems. | -| 2. | UI/SDK: Auction Interface || [etf-auction-ui repo](https://github.com/ideal-lab5/etf-auction-ui) hosted at [(infura IPFS)](http://auction.idealabs.network) and [vercel](https://etf-auction.vercel.app/), [etf-sdk](https://github.com/ideal-lab5/etf-sdk), [typescript lib](https://github.com/ideal-lab5/etf.js) | Have some problems. | -| 3. | UI + Testnet Deployment || nodes hosted at [etf0.idealabs.network, etf1.idealabs.network], [Grafana](http://etf0.idealabs.network:3000/d/PUYzGbwWz/substrate-node-template-metrics?orgId=1), [prometheus](http://etf0.idealabs.network:9090/) [ipfs-hosted UI - http://auction.idealabs.network](http://auction.idealabs.network) | I need some balance to test this. | +| **0b.** | Documentation || https://ideal-lab5.github.io | Better docs this time, thanks!| +| **0c.** | Testing and Testing Guide || https://docs.google.com/document/d/1SJ9bf2ALFf-UBG-W4gF63aQS1_9FywDQgBry1oxRv64/edit?usp=sharing | Ok. | +| **0d.** | Docker || [etf node](https://hub.docker.com/repository/docker/ideallabs/etf/general), [etf-auction-ui](https://hub.docker.com/repository/docker/ideallabs/etf-auction-ui/general) | Ok. | +| **0e.** | Article || [milestone 3 substack draft](https://ideallabs.substack.com/p/509e34d1-3d7e-43f0-a7d5-54e8215dae1e) | Ok. | +| 1. | Smart Contract: Auction Platform || [contracts repo](https://github.com/ideal-lab5/contracts) | Issues resolved. | +| 2. | UI/SDK: Auction Interface || [etf-auction-ui repo](https://github.com/ideal-lab5/etf-auction-ui) hosted at [(infura IPFS)](http://auction.idealabs.network) and [vercel](https://etf-auction.vercel.app/), [etf-sdk](https://github.com/ideal-lab5/etf-sdk), [typescript lib](https://github.com/ideal-lab5/etf.js) | Issues resolved. | +| 3. | UI + Testnet Deployment || nodes hosted at [etf0.idealabs.network, etf1.idealabs.network], [Grafana](http://etf0.idealabs.network:3000/d/PUYzGbwWz/substrate-node-template-metrics?orgId=1), [prometheus](http://etf0.idealabs.network:9090/) [ipfs-hosted UI - http://auction.idealabs.network](http://auction.idealabs.network) | Was able to receive balance and test out all functions. | + +## Evaluation V3 (Keegan Quigley) + +
+ + Docker commands are successful + + ```sh +docker run -p 9944:9944 -it --rm --name etf-node-0 ideallabs/etf --unsafe-rpc-external --validator --dev --tmp +WARNING: The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested +2023-11-02 04:19:38 EtF Node +2023-11-02 04:19:38 ✌️ version 4.0.0-dev-cf02da969fa +2023-11-02 04:19:38 ❤️ by Substrate DevHub , 2017-2023 +2023-11-02 04:19:38 📋 Chain specification: Development +2023-11-02 04:19:38 🏷 Node name: probable-lunch-5771 +2023-11-02 04:19:38 👤 Role: AUTHORITY +2023-11-02 04:19:38 💾 Database: RocksDb at /tmp/substratedFcloG/chains/dev/db/full +2023-11-02 04:19:38 ⛓ Native runtime: node-template-100 (node-template-1.tx1.au1) +2023-11-02 04:19:39 You're running on a system with a broken `madvise(MADV_DONTNEED)` implementation. This will result in lower performance. +2023-11-02 04:19:45 🔨 Initializing Genesis block/state (state: 0x4184…f840, header-hash: 0xc090…3722) +2023-11-02 04:19:45 👴 Loading GRANDPA authority set from genesis on what appears to be first startup. +2023-11-02 04:19:51 Using default protocol ID "sup" because none is configured in the chain specs +2023-11-02 04:19:51 🏷 Local node identity is: 12D3KooWLKW8DeC2kJs1P4nFS3CQSG5W3qdbGk7FCahPemiUjnHE +2023-11-02 04:19:51 💻 Operating system: linux +2023-11-02 04:19:51 💻 CPU architecture: x86_64 +2023-11-02 04:19:51 💻 Target environment: gnu +2023-11-02 04:19:51 💻 Memory: 7844MB +2023-11-02 04:19:51 💻 Kernel: 6.4.16-linuxkit +2023-11-02 04:19:51 💻 Linux distribution: Ubuntu 20.04.6 LTS +2023-11-02 04:19:51 💻 Virtual machine: no +2023-11-02 04:19:51 📦 Highest known block at #0 +2023-11-02 04:19:51 〽️ Prometheus exporter started at 127.0.0.1:9615 +2023-11-02 04:19:51 Running JSON-RPC server: addr=0.0.0.0:9944, allowed origins=["*"] +2023-11-02 04:19:56 💤 Idle (0 peers), best: #0 (0xc090…3722), finalized #0 (0xc090…3722), ⬇ 0 ⬆ 0 +2023-11-02 04:20:00 🙌 Starting consensus session on top of parent 0xc090a537eeb4251e352cf672192462f76e4341901210666d2b58251041723722 +2023-11-02 04:20:00 🎁 Prepared block for proposing at 1 (9 ms) [hash: 0x8c05471233841c2f6f80eaaac42f9e0f4224d668c71433c02665dccd967284c7; parent_hash: 0xc090…3722; extrinsics (1): [0xa9c9…2951]] +2023-11-02 04:20:00 🔖 Pre-sealed block for proposal at 1. Hash now 0x0b6a84b14c3b5e5f7ccce426f09552dc33e06578cd0b18955796ea3aa354888d, previously 0x8c05471233841c2f6f80eaaac42f9e0f4224d668c71433c02665dccd967284c7. +2023-11-02 04:20:00 ✨ Imported #1 (0x0b6a…888d) +2023-11-02 04:20:02 💤 Idle (0 peers), best: #1 (0x0b6a…888d), finalized #0 (0xc090…3722), ⬇ 0 ⬆ 0 +``` +
+ +
+ + Benchmarking tests are successful + + ```rust +running 5 tests +test mock::__construct_runtime_integrity_test::runtime_integrity_tests ... ok +test benchmarking::benchmarks::benchmark_tests::test_benchmarks ... ok +test tests::it_fails_to_update_generator_when_not_decodable ... ok +test tests::it_sets_the_genesis_state ... ok +test tests::it_allows_root_to_update_generator ... ok + +test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.10s + + Doc-tests pallet-etf + +running 0 tests + +test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s +``` +
+ +Minor note: node-template builds successfully and runs benchmarks, but I had to go back into the root folder to run it. Could add this to the instructions. + +
+ +All benchmarks + + ```rust +2023-11-02 13:27:17 Starting benchmark: frame_benchmarking::addition +2023-11-02 13:27:17 Starting benchmark: frame_benchmarking::subtraction +2023-11-02 13:27:17 Starting benchmark: frame_benchmarking::multiplication +2023-11-02 13:27:17 Starting benchmark: frame_benchmarking::division +2023-11-02 13:27:17 Starting benchmark: frame_benchmarking::hashing +2023-11-02 13:27:17 Starting benchmark: frame_benchmarking::sr25519_verification +2023-11-02 13:27:18 Starting benchmark: frame_system::remark +2023-11-02 13:27:18 Starting benchmark: frame_system::remark_with_event +2023-11-02 13:27:18 Starting benchmark: frame_system::set_heap_pages +2023-11-02 13:27:18 Starting benchmark: frame_system::set_code +2023-11-02 13:27:18 Starting benchmark: frame_system::set_storage +2023-11-02 13:27:18 Starting benchmark: frame_system::kill_storage +2023-11-02 13:27:18 Starting benchmark: frame_system::kill_prefix +2023-11-02 13:27:18 Starting benchmark: pallet_balances::transfer_allow_death +2023-11-02 13:27:18 Starting benchmark: pallet_balances::transfer_keep_alive +2023-11-02 13:27:18 Starting benchmark: pallet_balances::force_set_balance_creating +2023-11-02 13:27:18 Starting benchmark: pallet_balances::force_set_balance_killing +2023-11-02 13:27:18 Starting benchmark: pallet_balances::force_transfer +2023-11-02 13:27:18 Starting benchmark: pallet_balances::transfer_all +2023-11-02 13:27:18 Starting benchmark: pallet_balances::force_unreserve +2023-11-02 13:27:18 Starting benchmark: pallet_balances::upgrade_accounts +2023-11-02 13:27:18 Starting benchmark: pallet_timestamp::set +2023-11-02 13:27:18 Starting benchmark: pallet_timestamp::on_finalize +2023-11-02 13:27:18 Starting benchmark: pallet_sudo::set_key +2023-11-02 13:27:18 Starting benchmark: pallet_sudo::sudo +2023-11-02 13:27:18 Starting benchmark: pallet_sudo::sudo_as +2023-11-02 13:27:18 Starting benchmark: pallet_etf::update_ibe_params +Pallet: "frame_benchmarking", Extrinsic: "addition", Lowest values: [], Highest values: [], Steps: 2, Repeat: 0 +Raw Storage Info +======== + +-- Proof Sizes -- + +0 bytes +0 bytes + +Median Slopes Analysis +======== +-- Extrinsic Time -- + +Model: +Time ~= 0 + + i 0 + µs + +Reads = 0 + (0 * i) +Writes = 0 + (0 * i) +Recorded proof Size = 0 + (0 * i) + +Min Squares Analysis +======== +-- Extrinsic Time -- + +Model: +Time ~= 0 + µs + +Reads = 0 +Writes = 0 +Recorded proof Size = 0 + +Pallet: "frame_benchmarking", Extrinsic: "subtraction", Lowest values: [], Highest values: [], Steps: 2, Repeat: 0 +Raw Storage Info +======== + +-- Proof Sizes -- + +0 bytes +0 bytes + +Median Slopes Analysis +======== +-- Extrinsic Time -- + +Model: +Time ~= 0 + + i 0 + µs + +Reads = 0 + (0 * i) +Writes = 0 + (0 * i) +Recorded proof Size = 0 + (0 * i) + +Min Squares Analysis +======== +-- Extrinsic Time -- + +Model: +Time ~= 0 + µs + +Reads = 0 +Writes = 0 +Recorded proof Size = 0 + +Pallet: "frame_benchmarking", Extrinsic: "multiplication", Lowest values: [], Highest values: [], Steps: 2, Repeat: 0 +Raw Storage Info +======== + +-- Proof Sizes -- + +0 bytes +0 bytes + +Median Slopes Analysis +======== +-- Extrinsic Time -- + +Model: +Time ~= 0 + + i 0 + µs + +Reads = 0 + (0 * i) +Writes = 0 + (0 * i) +Recorded proof Size = 0 + (0 * i) + +Min Squares Analysis +======== +-- Extrinsic Time -- + +Model: +Time ~= 0 + µs + +Reads = 0 +Writes = 0 +Recorded proof Size = 0 + +Pallet: "frame_benchmarking", Extrinsic: "division", Lowest values: [], Highest values: [], Steps: 2, Repeat: 0 +Raw Storage Info +======== + +-- Proof Sizes -- + +0 bytes +0 bytes + +Median Slopes Analysis +======== +-- Extrinsic Time -- + +Model: +Time ~= 0 + + i 0 + µs + +Reads = 0 + (0 * i) +Writes = 0 + (0 * i) +Recorded proof Size = 0 + (0 * i) + +Min Squares Analysis +======== +-- Extrinsic Time -- + +Model: +Time ~= 0 + µs + +Reads = 0 +Writes = 0 +Recorded proof Size = 0 + +Pallet: "frame_benchmarking", Extrinsic: "hashing", Lowest values: [], Highest values: [], Steps: 2, Repeat: 0 +Raw Storage Info +======== + +-- Proof Sizes -- + +0 bytes + +Median Slopes Analysis +======== +-- Extrinsic Time -- + +Model: +Time ~= 13310 + µs + +Reads = 0 +Writes = 0 +Recorded proof Size = 0 + +Min Squares Analysis +======== +-- Extrinsic Time -- + +Model: +Time ~= 13310 + µs + +Reads = 0 +Writes = 0 +Recorded proof Size = 0 + +Pallet: "frame_benchmarking", Extrinsic: "sr25519_verification", Lowest values: [], Highest values: [], Steps: 2, Repeat: 0 +Raw Storage Info +======== + +-- Proof Sizes -- + +0 bytes +0 bytes + +Median Slopes Analysis +======== +-- Extrinsic Time -- + +Model: +Time ~= 0 + + i 37.23 + µs + +Reads = 0 + (0 * i) +Writes = 0 + (0 * i) +Recorded proof Size = 0 + (0 * i) + +Min Squares Analysis +======== +-- Extrinsic Time -- + +Model: +Time ~= 3723 + µs + +Reads = 0 +Writes = 0 +Recorded proof Size = 0 + +Pallet: "frame_system", Extrinsic: "remark", Lowest values: [], Highest values: [], Steps: 2, Repeat: 0 +Raw Storage Info +======== + +-- Proof Sizes -- + +0 bytes +0 bytes + +Median Slopes Analysis +======== +-- Extrinsic Time -- + +Model: +Time ~= 1 + + b 0 + µs + +Reads = 0 + (0 * b) +Writes = 0 + (0 * b) +Recorded proof Size = 0 + (0 * b) + +Min Squares Analysis +======== +-- Extrinsic Time -- + +Model: +Time ~= 376 + µs + +Reads = 0 +Writes = 0 +Recorded proof Size = 0 + +Pallet: "frame_system", Extrinsic: "remark_with_event", Lowest values: [], Highest values: [], Steps: 2, Repeat: 0 +Raw Storage Info +======== + +-- Proof Sizes -- + +0 bytes +0 bytes + +Median Slopes Analysis +======== +-- Extrinsic Time -- + +Model: +Time ~= 2 + + b 0.001 + µs + +Reads = 0 + (0 * b) +Writes = 0 + (0 * b) +Recorded proof Size = 0 + (0 * b) + +Min Squares Analysis +======== +-- Extrinsic Time -- + +Model: +Time ~= 4056 + µs + +Reads = 0 +Writes = 0 +Recorded proof Size = 0 + +Pallet: "frame_system", Extrinsic: "set_heap_pages", Lowest values: [], Highest values: [], Steps: 2, Repeat: 0 +Raw Storage Info +======== +Storage: System Digest (r:1 w:1) +Proof Skipped: System Digest (max_values: Some(1), max_size: None, mode: Measured) +Storage: unknown `0x3a686561707061676573` (r:0 w:1) +Proof Skipped: unknown `0x3a686561707061676573` (r:0 w:1) + +-- Proof Sizes -- + +0 bytes + +Median Slopes Analysis +======== +-- Extrinsic Time -- + +Model: +Time ~= 2 + µs + +Reads = 1 +Writes = 2 +Recorded proof Size = 0 + +Min Squares Analysis +======== +-- Extrinsic Time -- + +Model: +Time ~= 2 + µs + +Reads = 1 +Writes = 2 +Recorded proof Size = 0 + +Pallet: "frame_system", Extrinsic: "set_code", Lowest values: [], Highest values: [], Steps: 2, Repeat: 0 +Raw Storage Info +======== +Storage: System Digest (r:1 w:1) +Proof Skipped: System Digest (max_values: Some(1), max_size: None, mode: Measured) +Storage: unknown `0x3a636f6465` (r:0 w:1) +Proof Skipped: unknown `0x3a636f6465` (r:0 w:1) + +-- Proof Sizes -- + +0 bytes + +Median Slopes Analysis +======== +-- Extrinsic Time -- + +Model: +Time ~= 50460 + µs + +Reads = 1 +Writes = 2 +Recorded proof Size = 0 + +Min Squares Analysis +======== +-- Extrinsic Time -- + +Model: +Time ~= 50460 + µs + +Reads = 1 +Writes = 2 +Recorded proof Size = 0 + +Pallet: "frame_system", Extrinsic: "set_storage", Lowest values: [], Highest values: [], Steps: 2, Repeat: 0 +Raw Storage Info +======== +Storage: Skipped Metadata (r:0 w:0) +Proof Skipped: Skipped Metadata (max_values: None, max_size: None, mode: Measured) + +-- Proof Sizes -- + +0 bytes +0 bytes + +Median Slopes Analysis +======== +-- Extrinsic Time -- + +Model: +Time ~= 0 + + i 0.4 + µs + +Reads = 0 + (0 * i) +Writes = 0 + (1 * i) +Recorded proof Size = 0 + (0 * i) + +Min Squares Analysis +======== +-- Extrinsic Time -- + +Model: +Time ~= 400 + µs + +Reads = 0 +Writes = 1000 +Recorded proof Size = 0 + +Pallet: "frame_system", Extrinsic: "kill_storage", Lowest values: [], Highest values: [], Steps: 2, Repeat: 0 +Raw Storage Info +======== +Storage: Skipped Metadata (r:0 w:0) +Proof Skipped: Skipped Metadata (max_values: None, max_size: None, mode: Measured) + +-- Proof Sizes -- + +0 bytes +0 bytes + +Median Slopes Analysis +======== +-- Extrinsic Time -- + +Model: +Time ~= 1 + + i 0.374 + µs + +Reads = 0 + (0 * i) +Writes = 0 + (1 * i) +Recorded proof Size = 0 + (0 * i) + +Min Squares Analysis +======== +-- Extrinsic Time -- + +Model: +Time ~= 375 + µs + +Reads = 0 +Writes = 1000 +Recorded proof Size = 0 + +Pallet: "frame_system", Extrinsic: "kill_prefix", Lowest values: [], Highest values: [], Steps: 2, Repeat: 0 +Raw Storage Info +======== +Storage: Skipped Metadata (r:0 w:0) +Proof Skipped: Skipped Metadata (max_values: None, max_size: None, mode: Measured) + +-- Proof Sizes -- + +0 bytes +69676 bytes + +Median Slopes Analysis +======== +-- Extrinsic Time -- + +Model: +Time ~= 2 + + p 0.92 + µs + +Reads = 0 + (1 * p) +Writes = 0 + (1 * p) +Recorded proof Size = 0 + (69 * p) + +Min Squares Analysis +======== +-- Extrinsic Time -- + +Model: +Time ~= 922 + µs + +Reads = 1000 +Writes = 1000 +Recorded proof Size = 69676 + +Pallet: "pallet_balances", Extrinsic: "transfer_allow_death", Lowest values: [], Highest values: [], Steps: 2, Repeat: 0 +Raw Storage Info +======== +Storage: System Account (r:1 w:1) +Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + +-- Proof Sizes -- + +0 bytes + +Median Slopes Analysis +======== +-- Extrinsic Time -- + +Model: +Time ~= 16 + µs + +Reads = 1 +Writes = 1 +Recorded proof Size = 0 + +Min Squares Analysis +======== +-- Extrinsic Time -- + +Model: +Time ~= 16 + µs + +Reads = 1 +Writes = 1 +Recorded proof Size = 0 + +Pallet: "pallet_balances", Extrinsic: "transfer_keep_alive", Lowest values: [], Highest values: [], Steps: 2, Repeat: 0 +Raw Storage Info +======== +Storage: System Account (r:1 w:1) +Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + +-- Proof Sizes -- + +0 bytes + +Median Slopes Analysis +======== +-- Extrinsic Time -- + +Model: +Time ~= 12 + µs + +Reads = 1 +Writes = 1 +Recorded proof Size = 0 + +Min Squares Analysis +======== +-- Extrinsic Time -- + +Model: +Time ~= 12 + µs + +Reads = 1 +Writes = 1 +Recorded proof Size = 0 + +Pallet: "pallet_balances", Extrinsic: "force_set_balance_creating", Lowest values: [], Highest values: [], Steps: 2, Repeat: 0 +Raw Storage Info +======== +Storage: System Account (r:1 w:1) +Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + +-- Proof Sizes -- + +103 bytes + +Median Slopes Analysis +======== +-- Extrinsic Time -- + +Model: +Time ~= 5 + µs + +Reads = 1 +Writes = 1 +Recorded proof Size = 103 + +Min Squares Analysis +======== +-- Extrinsic Time -- + +Model: +Time ~= 5 + µs + +Reads = 1 +Writes = 1 +Recorded proof Size = 103 + +Pallet: "pallet_balances", Extrinsic: "force_set_balance_killing", Lowest values: [], Highest values: [], Steps: 2, Repeat: 0 +Raw Storage Info +======== +Storage: System Account (r:1 w:1) +Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + +-- Proof Sizes -- + +103 bytes + +Median Slopes Analysis +======== +-- Extrinsic Time -- + +Model: +Time ~= 7 + µs + +Reads = 1 +Writes = 1 +Recorded proof Size = 103 + +Min Squares Analysis +======== +-- Extrinsic Time -- + +Model: +Time ~= 7 + µs + +Reads = 1 +Writes = 1 +Recorded proof Size = 103 + +Pallet: "pallet_balances", Extrinsic: "force_transfer", Lowest values: [], Highest values: [], Steps: 2, Repeat: 0 +Raw Storage Info +======== +Storage: System Account (r:2 w:2) +Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + +-- Proof Sizes -- + +103 bytes + +Median Slopes Analysis +======== +-- Extrinsic Time -- + +Model: +Time ~= 17 + µs + +Reads = 2 +Writes = 2 +Recorded proof Size = 103 + +Min Squares Analysis +======== +-- Extrinsic Time -- + +Model: +Time ~= 17 + µs + +Reads = 2 +Writes = 2 +Recorded proof Size = 103 + +Pallet: "pallet_balances", Extrinsic: "transfer_all", Lowest values: [], Highest values: [], Steps: 2, Repeat: 0 +Raw Storage Info +======== +Storage: System Account (r:1 w:1) +Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + +-- Proof Sizes -- + +0 bytes + +Median Slopes Analysis +======== +-- Extrinsic Time -- + +Model: +Time ~= 15 + µs + +Reads = 1 +Writes = 1 +Recorded proof Size = 0 + +Min Squares Analysis +======== +-- Extrinsic Time -- + +Model: +Time ~= 15 + µs + +Reads = 1 +Writes = 1 +Recorded proof Size = 0 + +Pallet: "pallet_balances", Extrinsic: "force_unreserve", Lowest values: [], Highest values: [], Steps: 2, Repeat: 0 +Raw Storage Info +======== +Storage: System Account (r:1 w:1) +Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + +-- Proof Sizes -- + +103 bytes + +Median Slopes Analysis +======== +-- Extrinsic Time -- + +Model: +Time ~= 6 + µs + +Reads = 1 +Writes = 1 +Recorded proof Size = 103 + +Min Squares Analysis +======== +-- Extrinsic Time -- + +Model: +Time ~= 6 + µs + +Reads = 1 +Writes = 1 +Recorded proof Size = 103 + +Pallet: "pallet_balances", Extrinsic: "upgrade_accounts", Lowest values: [], Highest values: [], Steps: 2, Repeat: 0 +Raw Storage Info +======== +Storage: System Account (r:1000 w:1000) +Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + +-- Proof Sizes -- + +103 bytes +135507 bytes + +Median Slopes Analysis +======== +-- Extrinsic Time -- + +Model: +Time ~= 0 + + u 6.056 + µs + +Reads = 0 + (1 * u) +Writes = 0 + (1 * u) +Recorded proof Size = 0 + (135 * u) + +Min Squares Analysis +======== +-- Extrinsic Time -- + +Model: +Time ~= 6056 + µs + +Reads = 1000 +Writes = 1000 +Recorded proof Size = 135507 + +Pallet: "pallet_timestamp", Extrinsic: "set", Lowest values: [], Highest values: [], Steps: 2, Repeat: 0 +Raw Storage Info +======== +Storage: Timestamp Now (r:1 w:1) +Proof: Timestamp Now (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) + +-- Proof Sizes -- + +6 bytes + +Median Slopes Analysis +======== +-- Extrinsic Time -- + +Model: +Time ~= 3 + µs + +Reads = 1 +Writes = 1 +Recorded proof Size = 6 + +Min Squares Analysis +======== +-- Extrinsic Time -- + +Model: +Time ~= 3 + µs + +Reads = 1 +Writes = 1 +Recorded proof Size = 6 + +Pallet: "pallet_timestamp", Extrinsic: "on_finalize", Lowest values: [], Highest values: [], Steps: 2, Repeat: 0 +Raw Storage Info +======== + +-- Proof Sizes -- + +57 bytes + +Median Slopes Analysis +======== +-- Extrinsic Time -- + +Model: +Time ~= 2 + µs + +Reads = 0 +Writes = 0 +Recorded proof Size = 57 + +Min Squares Analysis +======== +-- Extrinsic Time -- + +Model: +Time ~= 2 + µs + +Reads = 0 +Writes = 0 +Recorded proof Size = 57 + +Pallet: "pallet_sudo", Extrinsic: "set_key", Lowest values: [], Highest values: [], Steps: 2, Repeat: 0 +Raw Storage Info +======== +Storage: Sudo Key (r:1 w:1) +Proof: Sudo Key (max_values: Some(1), max_size: Some(32), added: 527, mode: MaxEncodedLen) + +-- Proof Sizes -- + +132 bytes + +Median Slopes Analysis +======== +-- Extrinsic Time -- + +Model: +Time ~= 5 + µs + +Reads = 1 +Writes = 1 +Recorded proof Size = 132 + +Min Squares Analysis +======== +-- Extrinsic Time -- + +Model: +Time ~= 5 + µs + +Reads = 1 +Writes = 1 +Recorded proof Size = 132 + +Pallet: "pallet_sudo", Extrinsic: "sudo", Lowest values: [], Highest values: [], Steps: 2, Repeat: 0 +Raw Storage Info +======== +Storage: Sudo Key (r:1 w:0) +Proof: Sudo Key (max_values: Some(1), max_size: Some(32), added: 527, mode: MaxEncodedLen) + +-- Proof Sizes -- + +132 bytes + +Median Slopes Analysis +======== +-- Extrinsic Time -- + +Model: +Time ~= 5 + µs + +Reads = 1 +Writes = 0 +Recorded proof Size = 132 + +Min Squares Analysis +======== +-- Extrinsic Time -- + +Model: +Time ~= 5 + µs + +Reads = 1 +Writes = 0 +Recorded proof Size = 132 + +Pallet: "pallet_sudo", Extrinsic: "sudo_as", Lowest values: [], Highest values: [], Steps: 2, Repeat: 0 +Raw Storage Info +======== +Storage: Sudo Key (r:1 w:0) +Proof: Sudo Key (max_values: Some(1), max_size: Some(32), added: 527, mode: MaxEncodedLen) + +-- Proof Sizes -- + +132 bytes + +Median Slopes Analysis +======== +-- Extrinsic Time -- + +Model: +Time ~= 5 + µs + +Reads = 1 +Writes = 0 +Recorded proof Size = 132 + +Min Squares Analysis +======== +-- Extrinsic Time -- + +Model: +Time ~= 5 + µs + +Reads = 1 +Writes = 0 +Recorded proof Size = 132 + +Pallet: "pallet_etf", Extrinsic: "update_ibe_params", Lowest values: [], Highest values: [], Steps: 2, Repeat: 0 +Raw Storage Info +======== +Storage: Etf IBEParams (r:0 w:1) +Proof Skipped: Etf IBEParams (max_values: Some(1), max_size: None, mode: Measured) + +-- Proof Sizes -- + +0 bytes + +Median Slopes Analysis +======== +-- Extrinsic Time -- + +Model: +Time ~= 322 + µs + +Reads = 0 +Writes = 1 +Recorded proof Size = 0 + +Min Squares Analysis +======== +-- Extrinsic Time -- + +Model: +Time ~= 322 + µs + +Reads = 0 +Writes = 1 +Recorded proof Size = 0 +``` +
+ +
+ +ETF benchmarks + + ```rust +Pallet: "pallet_etf", Extrinsic: "update_ibe_params", Lowest values: [], Highest values: [], Steps: 50, Repeat: 20 +Raw Storage Info +======== +Storage: Etf IBEParams (r:0 w:1) +Proof Skipped: Etf IBEParams (max_values: Some(1), max_size: None, mode: Measured) + +-- Proof Sizes -- + +0 bytes +0 bytes +0 bytes +0 bytes +0 bytes +0 bytes +0 bytes +0 bytes +0 bytes +0 bytes +0 bytes +0 bytes +0 bytes +0 bytes +0 bytes +0 bytes +0 bytes +0 bytes +0 bytes +0 bytes + +Median Slopes Analysis +======== +-- Extrinsic Time -- + +Model: +Time ~= 297 + µs + +Reads = 0 +Writes = 1 +Recorded proof Size = 0 + +Min Squares Analysis +======== +-- Extrinsic Time -- + +Model: +Time ~= 297 + µs + +Reads = 0 +Writes = 1 +Recorded proof Size = 0 + +Created file: "bin/node-template/pallets/etf/src/weight.rs" +2023-11-02 13:29:23 Starting benchmark: pallet_etf::update_ibe_params +``` +
+ +## UI + +I was able to successfully set up an NFT auction and place test bids: + +nft auction + +test bids + +One minor issue I noticed was that I can't seem to see past bids: + +past bids + +
+ +Docker build works + + ```sh + docker run -p 3000:3000 --rm ideallabs/etf-auction-ui +WARNING: The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested + +> start +> next start + + ▲ Next.js 13.5.4 + - Local: http://localhost:3000 + + ✓ Ready in 2.3s + ``` +
+ +
+ Docker Compose works + + ```sh +docker-compose build + +[+] Building 51.0s (19/19) FINISHED docker:desktop-linux + => [web internal] load build definition from Dockerfile 0.0s + => => transferring dockerfile: 750B 0.0s + => [web internal] load .dockerignore 0.0s + => => transferring context: 2B 0.0s + => [web internal] load metadata for docker.io/library/node:18-alpine 1.3s + => [web runner 1/7] FROM docker.io/library/node:18-alpine@sha256:435dcad253bb5b7f347ebc69c8cc52de7c912eb7241098b92 5.7s + => => resolve docker.io/library/node:18-alpine@sha256:435dcad253bb5b7f347ebc69c8cc52de7c912eb7241098b920f2fc2d7843 0.0s + => => sha256:435dcad253bb5b7f347ebc69c8cc52de7c912eb7241098b920f2fc2d7843183d 1.43kB / 1.43kB 0.0s + => => sha256:f439e9091207d478bf7cf8ce3967ea08f3ef357f08eb264dd14eac7f4dacfcb8 1.16kB / 1.16kB 0.0s + => => sha256:f5a5f92010157c0e38d5611b97eb473f6f95fd583c8bf45a2fca5cddd987bdb5 6.79kB / 6.79kB 0.0s + => => sha256:579b34f0a95bb83b3acd6b3249ddc52c3d80f5c84b13c944e9e324feb86dd329 3.33MB / 3.33MB 0.5s + => => sha256:193dce5f4a0cf83f577b68c70b4e91199f39f88aac032b21359a13314f7dc6f5 48.02MB / 48.02MB 3.0s + => => sha256:78d1fe6b9b44fc9c132c16332d54041ac771dc5e65e8fee11bba0ee306c9b04e 2.34MB / 2.34MB 0.6s + => => extracting sha256:579b34f0a95bb83b3acd6b3249ddc52c3d80f5c84b13c944e9e324feb86dd329 0.2s + => => sha256:18c854bc80eaceb8b8e4e799cc9955831ea8355d0b61a08b80b3a5226ea1da55 450B / 450B 0.6s + => => extracting sha256:193dce5f4a0cf83f577b68c70b4e91199f39f88aac032b21359a13314f7dc6f5 2.5s + => => extracting sha256:78d1fe6b9b44fc9c132c16332d54041ac771dc5e65e8fee11bba0ee306c9b04e 0.0s + => => extracting sha256:18c854bc80eaceb8b8e4e799cc9955831ea8355d0b61a08b80b3a5226ea1da55 0.0s + => [web internal] load build context 5.1s + => => transferring context: 470.30MB 4.9s + => [web deps 2/5] RUN apk add --no-cache libc6-compat 1.7s + => [web runner 2/7] WORKDIR /app 0.4s + => [web runner 3/7] RUN addgroup --system --gid 1001 nodejs 0.1s + => [web runner 4/7] RUN adduser --system --uid 1001 nextjs 0.2s + => [web deps 3/5] WORKDIR /app 0.0s + => [web deps 4/5] COPY package.json package-lock.json ./ 0.0s + => [web deps 5/5] RUN npm install --production 10.2s + => [web builder 3/5] COPY --from=deps /app/node_modules ./node_modules 2.1s + => [web builder 4/5] COPY . . 2.7s + => [web builder 5/5] RUN npm run build 20.4s + => [web runner 5/7] COPY --from=builder --chown=nextjs:nodejs /app/.next ./.next 0.2s + => [web runner 6/7] COPY --from=builder /app/node_modules ./node_modules 2.6s + => [web runner 7/7] COPY --from=builder /app/package.json ./package.json 0.0s + => [web] exporting to image 1.9s + => => exporting layers 1.9s + => => writing image sha256:e60f8c5b84f130e07b4335482cda7a3ae7f352ead1b1d1b625492928948d4ded 0.0s + => => naming to docker.io/library/etf-auction-ui-web +``` +
## Evaluation V2 +All past issues have been resolved. + ### Smart Contract All tests passed. diff --git a/evaluations/hybrid2_2_semuelle.md b/evaluations/hybrid2_2_semuelle.md new file mode 100755 index 0000000000..a0a26e443f --- /dev/null +++ b/evaluations/hybrid2_2_semuelle.md @@ -0,0 +1,22 @@ +# Evaluation + +- **Status:** Accepted +- **Application Document:** https://github.com/w3f/Grants-Program/blob/master/applications/hybrid2.md +- **Milestone:** 2 +- **Kusama Identity:** [ESxS4A7GHMLzve4Mbc9t27RpXtVTnV3LtcMTtcnD26jcUHA](https://polkascan.io/pre/kusama/account/ESxS4A7GHMLzve4Mbc9t27RpXtVTnV3LtcMTtcnD26jcUHA) +- **Previously successfully merged evaluation:** All by semuelle + +| Number | Deliverable | Accepted | Link | Evaluation Notes | +| ------ | ----------- | :------: | ---- |----------------- | +| **0a.** | License | | [LICENSE](https://github.com/hybrid-explorer/hybrid-indexer/blob/2ecb03c5a6114131a8d0f7aff2b5b9b6854b2d69/LICENSE) | Apache 2.0 | +| **0b.** | Documentation | | [README](https://github.com/hybrid-explorer/hybrid-indexer/blob/2ecb03c5a6114131a8d0f7aff2b5b9b6854b2d69/README.md), [doc/tutorial.md](https://github.com/hybrid-explorer/hybrid-indexer/blob/2ecb03c5a6114131a8d0f7aff2b5b9b6854b2d69/doc/tutorial.md) | Inline docs sparse. | +| **0c.** | Testing and Testing Guide | | [doc/testing-guide.md](https://github.com/hybrid-explorer/hybrid-indexer/blob/2ecb03c5a6114131a8d0f7aff2b5b9b6854b2d69/doc/testing-guide.md) | — | +| **0d.** | Docker | | [Dockerfile](https://github.com/hybrid-explorer/polkadot-indexer/blob/dd104de26c5d625210ff33e0167cf2a7b3d4f71e/Dockerfile) | — | +| 1. | Index backwards | | [src/substrate.rs](https://github.com/hybrid-explorer/hybrid-indexer/blob/2ecb03c5a6114131a8d0f7aff2b5b9b6854b2d69/src/substrate.rs#L684) | — | +| 2. | Store indexed spans | | [src/substrate.rs](https://github.com/hybrid-explorer/hybrid-indexer/blob/2ecb03c5a6114131a8d0f7aff2b5b9b6854b2d69/src/substrate.rs#L784) | — | +| 3. | Declare indexer start blocks | | [src/substrate.rs](https://github.com/hybrid-explorer/hybrid-indexer/blob/2ecb03c5a6114131a8d0f7aff2b5b9b6854b2d69/src/substrate.rs#L594) | — | + + +## General Notes + +- — diff --git a/evaluations/ink-analyzer_5_takahser.md b/evaluations/ink-analyzer_5_takahser.md new file mode 100644 index 0000000000..228568d87d --- /dev/null +++ b/evaluations/ink-analyzer_5_takahser.md @@ -0,0 +1,745 @@ +# Evaluation + +- **Status:** In Progress +- **Application Document:** https://github.com/w3f/Grants-Program/blob/master/applications/ink-analyzer-phase-2.md +- **Milestone:** 1 +- **Kusama Identity:** Address +- **Previously successfully merged evaluation:** All by takahser + +| Number | Deliverable | Accepted | Link | Evaluation Notes | +| ------ | ----------- | -------- | ---- |----------------- | +| **0a.** | License | | [MIT License](https://github.com/ink-analyzer/ink-analyzer/blob/700e7eb8218fa16c8076cea3e5e26a327aa3e1d0/LICENSE-MIT), [Apache License](https://github.com/ink-analyzer/ink-analyzer/blob/700e7eb8218fa16c8076cea3e5e26a327aa3e1d0/LICENSE-APACHE) | - | +| **0b.** | Documentation | | [README](https://github.com/ink-analyzer/ink-analyzer/tree/700e7eb8218fa16c8076cea3e5e26a327aa3e1d0#readme), [language server docs](https://github.com/ink-analyzer/ink-analyzer/tree/700e7eb8218fa16c8076cea3e5e26a327aa3e1d0/crates/lsp-server#readme) and (identical) [crate docs](https://crates.io/crates/ink-lsp-server), [`ink_lsp_server` crate docs](https://docs.rs/ink-lsp-server/latest/ink_lsp_server/) | - | +| **0c.** | Testing and Testing Guide | | [Testing Guide](https://github.com/ink-analyzer/ink-analyzer/tree/700e7eb8218fa16c8076cea3e5e26a327aa3e1d0#testing) | See [Testing Guide Feedback](#testing-guide-feedback) | +| **0d.** | Docker | | [Dockerfile](https://github.com/ink-analyzer/ink-analyzer/blob/700e7eb8218fa16c8076cea3e5e26a327aa3e1d0/Dockerfile) | See [Docker Feedback](#docker-feedback) | +| 1. | Rust binary crate update: ink! Language Server updates | | [`ink_lsp_server` crate](https://github.com/ink-analyzer/ink-analyzer/tree/700e7eb8218fa16c8076cea3e5e26a327aa3e1d0/crates/lsp-server), [diagnostics](https://github.com/ink-analyzer/ink-analyzer/blob/700e7eb8218fa16c8076cea3e5e26a327aa3e1d0/crates/lsp-server/src/dispatch/actions.rs), [request handlers](https://github.com/ink-analyzer/ink-analyzer/blob/700e7eb8218fa16c8076cea3e5e26a327aa3e1d0/crates/lsp-server/src/dispatch/handlers/request.rs) | See [Language Server Feedback](#language-server-feedback) | + + +Ideally all links inside the above table should include the commit hash, +which was used for testing the delivery. It should also be checked if the software is published under the correct open-source license. + +## General Notes + +Summarizes the overall performance plus additional feedback/comments + +### Testing Guide Feedback + +- [x] `rustdoc`s can be built and run: + ```zsh + % cargo doc --open + Compiling proc-macro2 v1.0.67 + Checking cfg-if v1.0.0 + Compiling unicode-ident v1.0.12 + Compiling autocfg v1.1.0 + Compiling libc v0.2.148 + Compiling typenum v1.17.0 + Compiling parking_lot_core v0.9.8 + Checking scopeguard v1.2.0 + Checking smallvec v1.11.1 + Compiling version_check v0.9.4 + Documenting unicode-ident v1.0.12 + Checking hashbrown v0.14.0 + Compiling crossbeam-utils v0.8.16 + Checking once_cell v1.18.0 + Checking log v0.4.20 + Documenting cfg-if v1.0.0 + Compiling serde v1.0.188 + Compiling generic-array v0.14.7 + Compiling lock_api v0.4.10 + Checking text-size v1.1.1 + Checking rustc-hash v1.1.0 + Compiling memoffset v0.8.0 + Checking tinyvec_macros v0.1.1 + Checking either v1.9.0 + Checking unicode-xid v0.2.4 + Checking unicode-properties v0.1.0 + Checking tinyvec v1.6.0 + Checking ra-ap-rustc_lexer v0.10.0 + Checking itertools v0.10.5 + Checking always-assert v0.1.3 + Checking ra_ap_limit v0.0.173 + Checking hashbrown v0.12.3 + Checking utf8parse v0.2.1 + Documenting hashbrown v0.14.0 + Documenting proc-macro2 v1.0.67 + Compiling quote v1.0.33 + Checking subtle v2.5.0 + Checking crossbeam-channel v0.5.8 + Compiling syn v2.0.37 + Documenting libc v0.2.148 + Checking jod-thread v0.1.2 + Documenting quote v1.0.33 + Compiling serde_json v1.0.107 + Documenting smallvec v1.11.1 + Checking equivalent v1.0.1 + Checking la-arena v0.3.1 + Checking drop_bomb v0.1.5 + Documenting scopeguard v1.2.0 + Checking memchr v2.6.3 + Checking unicode-normalization v0.1.22 + Documenting syn v2.0.37 + Documenting crossbeam-utils v0.8.16 + Documenting lock_api v0.4.10 + Documenting typenum v1.17.0 + Checking dashmap v5.5.3 + Documenting parking_lot_core v0.9.8 + Checking unicode-bidi v0.3.13 + Documenting log v0.4.20 + Checking itoa v1.0.9 + Checking ryu v1.0.15 + Documenting once_cell v1.18.0 + Checking percent-encoding v2.3.0 + Documenting crossbeam-channel v0.5.8 + Checking aho-corasick v1.1.1 + Checking ra_ap_parser v0.0.173 + Checking countme v3.0.1 + Checking indexmap v2.0.0 + Checking ra_ap_stdx v0.0.173 + Checking ra_ap_profile v0.0.173 + Documenting dashmap v5.5.3 + Checking rowan v0.15.11 + Checking ra_ap_text_edit v0.0.173 + Checking anstyle-parse v0.2.1 + Checking smol_str v0.2.0 + Checking triomphe v0.1.9 + Documenting rustc-hash v1.1.0 + Checking anstyle-query v1.0.0 + Checking colorchoice v1.0.0 + Documenting tinyvec_macros v0.1.1 + Documenting text-size v1.1.1 + Checking crypto-common v0.1.6 + Checking block-buffer v0.10.4 + Checking regex-syntax v0.7.5 + Checking anstyle v1.0.3 + Checking cov-mark v2.0.0-pre.1 + Checking idna v0.4.0 + Checking digest v0.10.7 + Documenting countme v3.0.1 + Checking form_urlencoded v1.2.0 + Documenting tinyvec v1.6.0 + Documenting unicode-xid v0.2.4 + Documenting unicode-properties v0.1.0 + Checking blake2 v0.10.6 + Checking anstream v0.5.0 + Checking ra_ap_syntax v0.0.173 + Documenting always-assert v0.1.3 + Documenting memoffset v0.8.0 + Documenting generic-array v0.14.7 + Checking itertools v0.11.0 + Documenting ra-ap-rustc_lexer v0.10.0 + Documenting utf8parse v0.2.1 + Documenting jod-thread v0.1.2 + Documenting percent-encoding v2.3.0 + Documenting unicode-normalization v0.1.22 + Documenting ryu v1.0.15 + Documenting unicode-bidi v0.3.13 + Checking clap_lex v0.5.1 + Documenting crypto-common v0.1.6 + Documenting block-buffer v0.10.4 + Documenting equivalent v1.0.1 + Documenting itoa v1.0.9 + Documenting drop_bomb v0.1.5 + Documenting either v1.9.0 + Documenting subtle v2.5.0 + Checking strsim v0.10.0 + Documenting ra_ap_limit v0.0.173 + Documenting memchr v2.6.3 + Documenting la-arena v0.3.1 + Documenting indexmap v2.0.0 + Documenting idna v0.4.0 + Documenting digest v0.10.7 + Documenting form_urlencoded v1.2.0 + Documenting ra_ap_parser v0.0.173 + Documenting ra_ap_stdx v0.0.173 + Documenting ra_ap_profile v0.0.173 + Documenting aho-corasick v1.1.1 + Documenting anstyle-parse v0.2.1 + Documenting rowan v0.15.11 + Documenting serde_derive v1.0.188 + Documenting ra_ap_text_edit v0.0.173 + Documenting regex-syntax v0.7.5 + Checking regex-automata v0.3.8 + Compiling anyhow v1.0.75 + Documenting anstyle v1.0.3 + Documenting anstyle-query v1.0.0 + Documenting smol_str v0.2.0 + Documenting cov-mark v2.0.0-pre.1 + Compiling heck v0.4.1 + Checking bitflags v1.3.2 + Documenting triomphe v0.1.9 + Documenting colorchoice v1.0.0 + Documenting blake2 v0.10.6 + Documenting serde_repr v0.1.16 + Documenting ink-analyzer-macro v0.6.1 (/Users/xxx/repos/ink-analyzer/crates/macro) + Documenting itertools v0.11.0 + Checking clap_builder v4.4.4 + Documenting anstream v0.5.0 + Documenting ra_ap_syntax v0.0.173 + Documenting strsim v0.10.0 + Documenting heck v0.4.1 + Documenting bitflags v1.3.2 + Checking nohash-hasher v0.2.0 + Documenting clap_lex v0.5.1 + Documenting nohash-hasher v0.2.0 + Documenting clap_derive v4.4.2 + Checking line-index v0.1.0-pre.1 + Documenting anyhow v1.0.75 + Documenting regex-automata v0.3.8 + Documenting clap_builder v4.4.4 + Documenting line-index v0.1.0-pre.1 + Compiling serde_derive v1.0.188 + Compiling ink-analyzer-macro v0.6.1 (/Users/xxx/repos/ink-analyzer/crates/macro) + Compiling serde_repr v0.1.16 + Compiling clap_derive v4.4.2 + Checking regex v1.9.5 + Checking ink-analyzer-ir v0.10.4 (/Users/xxx/repos/ink-analyzer/crates/ir) + Documenting ink-analyzer-ir v0.10.4 (/Users/xxx/repos/ink-analyzer/crates/ir) + Documenting regex v1.9.5 + Checking clap v4.4.4 + Documenting clap v4.4.4 + Checking ink-analyzer v0.8.11 (/Users/xxx/repos/ink-analyzer/crates/analyzer) + Documenting serde v1.0.188 + Documenting ink-analyzer v0.8.11 (/Users/xxx/repos/ink-analyzer/crates/analyzer) + Documenting serde_json v1.0.107 + Checking url v2.4.1 + Documenting url v2.4.1 + Checking lsp-types v0.94.1 + Checking lsp-server v0.7.4 + Documenting lsp-types v0.94.1 + Documenting lsp-server v0.7.4 + Documenting test-utils v0.0.0 (/Users/xxx/repos/ink-analyzer/crates/test-utils) + Documenting ink-lsp-server v0.2.12 (/Users/xxx/repos/ink-analyzer/crates/lsp-server) + Finished dev [unoptimized + debuginfo] target(s) in 12.85s + Opening /Users/xxx/repos/ink-analyzer/target/doc/ink_analyzer/index.html + ``` +- [x] tests pass: + ```zsh + % cargo test + Finished test [unoptimized + debuginfo] target(s) in 0.06s + Running unittests src/lib.rs (target/debug/deps/ink_analyzer-aefafa2b15f4796a) + + running 142 tests + running 142 tests + test analysis::diagnostics::chain_extension::tests::missing_error_code_type_fails ... ok + test analysis::diagnostics::chain_extension::tests::invalid_quasi_direct_descendant_fails ... ok + test analysis::diagnostics::chain_extension::tests::multiple_error_code_types_fails ... ok + test analysis::diagnostics::chain_extension::tests::invalid_trait_properties_fails ... ok + test analysis::completions::tests::macro_completions_works ... ok + test analysis::diagnostics::chain_extension::tests::overlapping_ids_fails ... ok + test analysis::diagnostics::chain_extension::tests::non_overlapping_ids_works ... ok + test analysis::diagnostics::chain_extension::tests::one_error_code_type_works ... ok + test analysis::diagnostics::chain_extension::tests::valid_trait_properties_works ... ok + test analysis::diagnostics::constructor::tests::ink_descendants_fails ... ok + test analysis::diagnostics::constructor::tests::missing_return_type_fails ... ok + test analysis::diagnostics::chain_extension::tests::invalid_trait_items_fails ... ok + test analysis::completions::tests::argument_completions_works ... ok + test analysis::actions::attr::tests::actions_works ... ok + test analysis::diagnostics::constructor::tests::invalid_callable_fails ... ok + test analysis::diagnostics::constructor::tests::self_receiver_fails ... ok + test analysis::actions::item::tests::actions_works ... ok + test analysis::diagnostics::chain_extension::tests::valid_quasi_direct_descendant_works ... ok + test analysis::diagnostics::chain_extension::tests::valid_trait_items_works ... ok + test analysis::diagnostics::contract::tests::missing_constructor_fails ... ok + test analysis::diagnostics::contract::tests::invalid_quasi_direct_descendant_fails ... ok + test analysis::diagnostics::contract::tests::missing_message_fails ... ok + test analysis::diagnostics::chain_extension::tests::compound_diagnostic_works ... ok + test analysis::diagnostics::contract::tests::multiple_storage_items_fails ... ok + test analysis::diagnostics::contract::tests::missing_storage_fails ... ok + test analysis::diagnostics::contract::tests::non_mod_fails ... ok + test analysis::diagnostics::contract::tests::non_impl_parent_for_callables_fails ... ok + test analysis::diagnostics::contract::tests::multiple_wildcard_selectors_fails ... ok + test analysis::actions::item::tests::is_focused_on_item_declaration_and_body_works ... ok + test analysis::diagnostics::constructor::tests::no_ink_descendants_works ... ok + test analysis::diagnostics::constructor::tests::valid_callable_works ... ok + test analysis::diagnostics::constructor::tests::return_type_works ... ok + test analysis::diagnostics::contract::tests::out_of_line_mod_fails ... ok + test analysis::diagnostics::constructor::tests::no_self_receiver_works ... ok + test analysis::diagnostics::contract::tests::root_items_not_in_root_fails ... ok + test analysis::diagnostics::constructor::tests::compound_diagnostic_works ... ok + test analysis::diagnostics::event::tests::cfg_field_fails ... ok + test analysis::diagnostics::event::tests::compound_diagnostic_works ... ok + test analysis::diagnostics::contract::tests::overlapping_selectors_fails ... ok + test analysis::diagnostics::event::tests::ink_topic_field_works ... ok + test analysis::diagnostics::event::tests::contract_parent_works ... ok + test analysis::diagnostics::event::tests::non_cfg_field_works ... ok + test analysis::diagnostics::event::tests::non_contract_parent_fails ... ok + test analysis::diagnostics::event::tests::non_topic_ink_field_fails ... ok + test analysis::diagnostics::event::tests::non_pub_struct_fails ... ok + test analysis::diagnostics::event::tests::struct_with_generics_fails ... ok + test analysis::diagnostics::event::tests::pub_struct_works ... ok + test analysis::diagnostics::event::tests::struct_with_no_generics_works ... ok + test analysis::diagnostics::extension::tests::ink_descendants_fails ... ok + test analysis::diagnostics::extension::tests::invalid_fn_fails ... ok + test analysis::diagnostics::extension::tests::no_ink_descendants_works ... ok + test analysis::diagnostics::extension::tests::compound_diagnostic_works ... ok + test analysis::diagnostics::extension::tests::self_receiver_fails ... ok + test analysis::diagnostics::extension::tests::no_self_receiver_works ... ok + test analysis::diagnostics::file::tests::invalid_quasi_direct_descendant_fails ... ok + test analysis::diagnostics::extension::tests::valid_fn_works ... ok + test analysis::diagnostics::file::tests::no_contract_definitions_works ... ok + test analysis::diagnostics::file::tests::multiple_contract_definitions_fails ... ok + test analysis::diagnostics::file::tests::one_contract_definition_works ... ok + test analysis::diagnostics::file::tests::valid_quasi_direct_descendant_works ... ok + test analysis::diagnostics::ink_e2e_test::tests::fn_works ... ok + test analysis::diagnostics::ink_e2e_test::tests::compound_diagnostic_works ... ok + test analysis::diagnostics::ink_e2e_test::tests::no_ink_descendants_works ... ok + test analysis::diagnostics::ink_e2e_test::tests::ink_descendants_fails ... ok + test analysis::diagnostics::ink_e2e_test::tests::non_fn_fails ... ok + test analysis::diagnostics::ink_impl::tests::annotated_or_contains_callables_works ... ok + test analysis::diagnostics::ink_impl::tests::impl_parent_for_callables_works ... ok + test analysis::diagnostics::ink_impl::tests::compound_diagnostic_works ... ok + test analysis::diagnostics::ink_impl::tests::invalid_impl_properties_fails ... ok + test analysis::diagnostics::ink_impl::tests::invalid_quasi_direct_descendant_fails ... ok + test analysis::diagnostics::ink_impl::tests::invalid_trait_definition_impl_fails ... ok + test analysis::diagnostics::ink_impl::tests::missing_annotation_and_no_callables_ignored ... ok + test analysis::diagnostics::ink_impl::tests::non_impl_fails ... ok + test analysis::diagnostics::ink_impl::tests::non_impl_parent_for_callables_fails ... ok + test analysis::diagnostics::ink_impl::tests::impl_works ... ok + test analysis::diagnostics::ink_impl::tests::valid_impl_properties_works ... ok + test analysis::diagnostics::ink_impl::tests::valid_quasi_direct_descendant_works ... ok + test analysis::diagnostics::ink_test::tests::compound_diagnostic_works ... ok + test analysis::diagnostics::ink_test::tests::fn_works ... ok + test analysis::diagnostics::ink_test::tests::ink_descendants_fails ... ok + test analysis::diagnostics::ink_test::tests::no_ink_descendants_works ... ok + test analysis::diagnostics::ink_test::tests::non_fn_fails ... ok + test analysis::diagnostics::ink_impl::tests::valid_trait_definition_impl_works ... ok + test analysis::diagnostics::message::tests::ink_descendants_fails ... ok + test analysis::diagnostics::message::tests::invalid_callable_fails ... ok + test analysis::diagnostics::contract::tests::one_or_no_wildcard_selectors_works ... ok + test analysis::diagnostics::message::tests::non_self_ref_receiver_fails ... ok + test analysis::diagnostics::message::tests::compound_diagnostic_works ... ok + test analysis::diagnostics::contract::tests::inline_mod_works ... ok + test analysis::diagnostics::message::tests::self_return_type_fails ... ok + test analysis::diagnostics::contract::tests::one_storage_item_works ... ok + test analysis::diagnostics::storage::tests::compound_diagnostic_works ... ok + test analysis::diagnostics::storage::tests::contract_parent_works ... ok + test analysis::diagnostics::storage::tests::ink_descendants_fails ... ok + test analysis::diagnostics::contract::tests::one_or_multiple_constructors_works ... ok + test analysis::diagnostics::storage::tests::no_ink_descendants_works ... ok + test analysis::diagnostics::message::tests::no_ink_descendants_works ... ok + test analysis::diagnostics::storage::tests::non_pub_struct_fails ... ok + test analysis::diagnostics::storage::tests::non_contract_parent_fails ... ok + test analysis::diagnostics::storage::tests::pub_struct_works ... ok + test analysis::diagnostics::storage_item::tests::adt_works ... ok + test analysis::diagnostics::storage_item::tests::ink_descendants_fails ... ok + test analysis::diagnostics::storage_item::tests::no_ink_descendants_works ... ok + test analysis::diagnostics::topic::tests::compound_diagnostic_works ... ok + test analysis::diagnostics::storage_item::tests::non_adt_fails ... ok + test analysis::diagnostics::topic::tests::struct_field_works ... ok + test analysis::diagnostics::storage_item::tests::compound_diagnostic_works ... ok + test analysis::diagnostics::topic::tests::non_struct_field_fails ... ok + test analysis::diagnostics::trait_definition::tests::invalid_quasi_direct_descendant_fails ... ok + test analysis::diagnostics::trait_definition::tests::invalid_trait_properties_fails ... ok + test analysis::diagnostics::message::tests::non_self_return_type_works ... ok + test analysis::diagnostics::trait_definition::tests::missing_message_fails ... ok + test analysis::diagnostics::trait_definition::tests::one_message_works ... ok + test analysis::diagnostics::trait_definition::tests::multiple_messages_works ... ok + test analysis::diagnostics::contract::tests::non_overlapping_selectors_works ... ok + test analysis::diagnostics::trait_definition::tests::invalid_trait_items_fails ... ok + test analysis::diagnostics::trait_definition::tests::valid_quasi_direct_descendant_works ... ok + test analysis::diagnostics::message::tests::self_ref_receiver_works ... ok + test analysis::diagnostics::utils::tests::identifiers_not_prefixed_with_ink_works ... ok + test analysis::diagnostics::utils::tests::conflicting_attributes_and_arguments_fails ... ok + test analysis::diagnostics::utils::tests::duplicate_attributes_and_arguments_fails ... ok + test analysis::diagnostics::utils::tests::identifiers_prefixed_with_ink_fails ... ok + test analysis::diagnostics::utils::tests::invalid_attribute_argument_format_and_value_type_fails ... ok + test analysis::diagnostics::trait_definition::tests::valid_trait_properties_works ... ok + test analysis::diagnostics::utils::tests::unknown_ink_attributes_fails ... ok + test analysis::diagnostics::utils::tests::no_conflicting_attributes_and_arguments_works ... ok + test analysis::diagnostics::trait_definition::tests::valid_trait_items_works ... ok + test analysis::diagnostics::utils::tests::known_ink_attributes_works ... ok + test analysis::diagnostics::utils::tests::valid_attribute_argument_format_and_value_type_works ... ok + test codegen::tests::invalid_project_name_fails ... ok + test analysis::diagnostics::utils::tests::no_duplicate_attributes_and_arguments_works ... ok + test analysis::hover::tests::hover_works ... ok + test analysis::inlay_hints::tests::inlay_hints_works ... ok + test analysis::diagnostics::message::tests::valid_callable_works ... ok + test analysis::signature_help::tests::signature_help_works ... ok + test analysis::diagnostics::trait_definition::tests::compound_diagnostic_works ... ok + test analysis::diagnostics::contract::tests::one_or_multiple_messages_works ... ok + test codegen::tests::valid_project_name_works ... ok + test analysis::diagnostics::contract::tests::valid_quasi_direct_descendant_works ... ok + test analysis::diagnostics::contract::tests::root_items_in_root_works ... ok + test analysis::diagnostics::contract::tests::impl_parent_for_callables_works ... ok + test analysis::diagnostics::contract::tests::compound_diagnostic_works ... ok + + test result: ok. 142 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.99s + + Running tests/actions.rs (target/debug/deps/actions-dc77a9222cfde900) + + running 1 test + test actions_works ... ok + + test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 14.26s + + Running tests/completions.rs (target/debug/deps/completions-95c4175788d99172) + + running 1 test + test completions_works ... ok + + test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.75s + + Running tests/diagnostics.rs (target/debug/deps/diagnostics-6938b99cf0de36a0) + + running 1 test + test diagnostics_works ... ok + + test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 6.56s + + Running tests/hover.rs (target/debug/deps/hover-df35a7efd9708db6) + + running 1 test + test hover_works ... ok + + test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.94s + + Running tests/inlay_hints.rs (target/debug/deps/inlay_hints-070fdbba8c2ac9d9) + + running 1 test + test inlay_hints_works ... ok + + test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.32s + + Running tests/signature_help.rs (target/debug/deps/signature_help-3f9aa4417c75252f) + + running 1 test + test signature_help_works ... ok + + test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.53s + + Running unittests src/lib.rs (target/debug/deps/ink_analyzer_ir-b2859d253cdc9261) + + running 37 tests + test attrs::meta::separator::tests::cast_works ... ok + test attrs::meta::name::tests::cast_works ... ok + test ink_e2e_test::tests::cast_works ... ok + test ink_test::tests::cast_works ... ok + test event::tests::cast_works ... ok + test chain_extension::tests::cast_works ... ok + test extension::tests::cast_works ... ok + test file::tests::parse_works ... ok + test storage::tests::cast_works ... ok + test topic::tests::cast_works ... ok + test selector::tests::cast_arg_works ... ok + test storage_item::tests::cast_works ... ok + test attrs::utils::tests::parse_ink_args_works ... ok + test attrs::meta::value::tests::cast_works ... ok + test constructor::tests::cast_works ... ok + test tree::ast_ext::tests::parent_ast_item_works ... ok + test message::tests::cast_works ... ok + test attrs::tests::cast_ink_attribute_works ... ok + test attrs::utils::tests::sort_ink_args_works ... ok + test trait_definition::tests::cast_works ... ok + test tree::utils::tests::ink_args_works ... ok + test tree::utils::tests::ink_attrs_closest_ancestors_works ... ok + test tree::item_at_offset::tests::probable_and_normalized_parent_variants_works ... ok + test tree::item_at_offset::tests::focused_token_and_affixes_works ... ok + test tree::utils::tests::ink_attrs_ancestors_works ... ok + test ink_impl::tests::cast_works ... ok + test tree::utils::tests::ink_attrs_in_scope_works ... ok + test tree::utils::tests::ink_arg_by_kind_works ... ok + test tree::utils::tests::ink_attrs_descendants_works ... ok + test tree::item_at_offset::tests::prev_and_next_token_variants_works ... ok + test tree::utils::tests::ink_attrs_works ... ok + test tree::utils::tests::ink_attrs_closest_descendants_works ... ok + test selector::tests::compose_works ... ok + test tree::utils::tests::ink_impl_closest_descendants_works ... ok + test tree::utils::tests::ink_callable_closest_descendants_works ... ok + test tree::item_at_offset::tests::parent_variants_works ... ok + test contract::tests::cast_works ... ok + + test result: ok. 37 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s + + Running unittests src/lib.rs (target/debug/deps/ink_analyzer_macro-2ca655dea17fa4ad) + + running 13 tests + test utils::tests::find_attribute_by_path_works ... ok + test from_ink_attribute::tests::struct_without_ink_attr_field_fails ... ok + test from_syntax::tests::struct_with_none_of_expected_fields_fails ... ok + test from_ast::tests::struct_without_ast_field_fails ... ok + test utils::tests::find_field_works ... ok + test utils::tests::contains_field_works ... ok + test utils::tests::parse_struct_fields_works ... ok + test from_syntax::tests::struct_with_syntax_field_works ... ok + test from_syntax::tests::struct_with_ast_field_works ... ok + test from_ast::tests::struct_with_ast_field_works ... ok + test from_syntax::tests::struct_with_ink_attr_field_works ... ok + test from_ink_attribute::tests::struct_with_ink_attr_field_works ... ok + test from_ink_attribute::tests::optional_fields_works ... ok + + test result: ok. 13 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Running unittests src/lib.rs (target/debug/deps/ink_lsp_server-66fe4323a0c948ff) + + running 23 tests + test dispatch::handlers::notification::tests::handle_did_change_text_document_works ... ok + test dispatch::handlers::notification::tests::handle_did_close_text_document_works ... ok + test dispatch::handlers::notification::tests::handle_did_open_text_document_works ... ok + test initialize::tests::server_capabilities_works ... ok + test memory::tests::memory_works ... ok + test dispatch::routers::notification::tests::request_router_works ... ok + test translator::from_lsp::tests::offset_works ... ok + test dispatch::handlers::request::tests::handle_execute_command_new_project_works ... ok + test translator::to_lsp::tests::position_works ... ok + test utils::tests::can_create_project_via_workspace_edit_works ... ok + test dispatch::routers::request::tests::request_router_works ... ok + test utils::tests::code_actions_kinds_works ... ok + test utils::tests::position_encoding_works ... ok + test dispatch::handlers::request::tests::handle_hover_works ... ok + test utils::tests::signature_support_works ... ok + test utils::tests::snippet_support_works ... ok + test dispatch::handlers::request::tests::handle_completion_works ... ok + test dispatch::handlers::request::tests::handle_inlay_hint_works ... ok + test initialize::tests::initialize_works ... ok + test dispatch::handlers::request::tests::handle_signature_help_works ... ok + test dispatch::tests::main_loop_and_dispatcher_works ... ok + test dispatch::handlers::request::tests::handle_code_action_works ... ok + test dispatch::actions::tests::publish_diagnostics_works ... ok + + test result: ok. 23 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s + + Running unittests src/main.rs (target/debug/deps/ink_lsp_server-5607f919b3060b2c) + + running 0 tests + + test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Running tests/actions.rs (target/debug/deps/actions-4440a57d6ec4b81b) + + running 1 test + test actions_works ... ok + + test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 28.65s + + Running tests/commands.rs (target/debug/deps/commands-39ced2272091392d) + + running 1 test + test create_project_command_works ... ok + + test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Running tests/completions.rs (target/debug/deps/completions-eebcc2244bbc1f7a) + + running 1 test + test completions_works ... ok + + test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.07s + + Running tests/diagnostics.rs (target/debug/deps/diagnostics-a67922b13413df1a) + + running 1 test + test diagnostics_works ... ok + + test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 6.82s + + Running tests/hover.rs (target/debug/deps/hover-b842dee03f53bd8f) + + running 1 test + test hover_works ... ok + + test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 12.47s + + Running tests/inlay_hints.rs (target/debug/deps/inlay_hints-b0216bd9d18428d9) + + running 1 test + test inlay_hints_works ... ok + + test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 4.13s + + Running tests/signature_help.rs (target/debug/deps/signature_help-7c75d56b93794a3b) + + running 1 test + test signature_help_works ... ok + + test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 7.32s + + Running unittests src/lib.rs (target/debug/deps/test_utils-8734d34d6781b231) + + running 1 test + test tests::offset_at_variants_works ... ok + + test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Doc-tests ink-analyzer + + running 1 test + test crates/analyzer/src/lib.rs - (line 7) ... ok + + test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.72s + + Doc-tests ink-analyzer-ir + + running 1 test + test crates/ir/src/lib.rs - (line 7) ... ok + + test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.28s + + Doc-tests ink-analyzer-macro + + running 4 tests + test crates/macro/src/lib.rs - from_ast_derive (line 35) ... ok + test crates/macro/src/lib.rs - from_syntax_derive (line 100) ... ok + test crates/macro/src/lib.rs - from_ink_attribute_derive (line 70) ... ok + test crates/macro/src/lib.rs - (line 6) ... ok + + test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.72s + + Doc-tests ink-lsp-server + + running 0 tests + + test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Doc-tests test-utils + + running 0 tests + + test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + ``` + +### Docker Feedback + +- [x] docker image build passes: + ```zsh + % docker build -t ink-analyzer . + [+] Building 14.5s (8/8) FINISHED docker:desktop-linux + => [internal] load build definition from Dockerfile 0.0s + => => transferring dockerfile: 247B 0.0s + => [internal] load .dockerignore 0.0s + => => transferring context: 475B 0.0s + => [internal] load metadata for docker.io/library/rust:1.69-slim-bullseye 3.8s + => [1/3] FROM docker.io/library/rust:1.69-slim-bullseye@sha256:02e0b15432c05bf3b4c2f6216a4345e9658d6240bc5145edcb535e6922b8536b 10.3s + => => resolve docker.io/library/rust:1.69-slim-bullseye@sha256:02e0b15432c05bf3b4c2f6216a4345e9658d6240bc5145edcb535e6922b8536b 0.0s + => => sha256:02e0b15432c05bf3b4c2f6216a4345e9658d6240bc5145edcb535e6922b8536b 984B / 984B 0.0s + => => sha256:64b11e12e14c9cafaa4361b544fb50df754a3df4f71bf6ed2af50edc8494d380 742B / 742B 0.0s + => => sha256:04706536c6ba24725cc58aee05d5d4542ec04fd23e00e3d5a0c530421bace5a4 4.86kB / 4.86kB 0.0s + => => sha256:d981f2c20c93e1c57a46cd87bc5b9a554be5323072a0d0ab4b354aabd237bbcf 30.05MB / 30.05MB 0.9s + => => sha256:c9a3025ba314322f78c072ba74c6eb614857411e28f646a8f0513a6f1e81a330 295.16MB / 295.16MB 6.3s + => => extracting sha256:d981f2c20c93e1c57a46cd87bc5b9a554be5323072a0d0ab4b354aabd237bbcf 0.9s + => => extracting sha256:c9a3025ba314322f78c072ba74c6eb614857411e28f646a8f0513a6f1e81a330 3.7s + => [internal] load build context 0.1s + => => transferring context: 2.94MB 0.0s + => [2/3] WORKDIR /app 0.3s + => [3/3] COPY . . 0.0s + => exporting to image 0.1s + => => exporting layers 0.0s + => => writing image sha256:c9ba83086c5d4315772f25b1e6411d4a17b055e597104db86e299d7138dcd501 0.0s + => => naming to docker.io/library/ink-analyzer 0.0s + + What's Next? + View a summary of image vulnerabilities and recommendations → docker scout quickview + + % docker image ls + REPOSITORY TAG IMAGE ID CREATED SIZE + ink-analyzer latest c9ba83086c5d About a minute ago 1.04GB + ``` +- [ ] running the docker container fails with "Either upgrade to rustc 1.70" although I'm running rustc 1.73.0 on my machine: + ```zsh + % rustc --version + rustc 1.73.0 (cc66ad468 2023-10-03) + % docker run -it ink- + + Updating crates.io index + Downloaded itertools v0.10.5 + Downloaded itoa v1.0.9 + Downloaded heck v0.4.1 + Downloaded indexmap v2.0.0 + Downloaded tinyvec_macros v0.1.1 + Downloaded la-arena v0.3.1 + Downloaded ra_ap_limit v0.0.173 + Downloaded ra_ap_text_edit v0.0.173 + Downloaded anstyle-query v1.0.0 + Downloaded anstyle v1.0.3 + Downloaded always-assert v0.1.3 + Downloaded colorchoice v1.0.0 + Downloaded equivalent v1.0.1 + Downloaded line-index v0.1.0-pre.1 + Downloaded drop_bomb v0.1.5 + Downloaded crypto-common v0.1.6 + Downloaded jod-thread v0.1.2 + Downloaded percent-encoding v2.3.0 + Downloaded generic-array v0.14.7 + Downloaded rustc-hash v1.1.0 + Downloaded nohash-hasher v0.2.0 + Downloaded lsp-server v0.7.4 + Downloaded version_check v0.9.4 + Downloaded utf8parse v0.2.1 + Downloaded unicode-xid v0.2.4 + Downloaded strsim v0.10.0 + Downloaded serde_repr v0.1.16 + Downloaded text-size v1.1.1 + Downloaded subtle v2.5.0 + Downloaded anstyle-parse v0.2.1 + Downloaded smol_str v0.2.0 + Downloaded anstream v0.5.0 + Downloaded bitflags v1.3.2 + Downloaded cov-mark v2.0.0-pre.1 + Downloaded autocfg v1.1.0 + Downloaded digest v0.10.7 + Downloaded memoffset v0.8.0 + Downloaded form_urlencoded v1.2.0 + Downloaded either v1.9.0 + Downloaded cfg-if v1.0.0 + Downloaded clap_lex v0.5.1 + Downloaded triomphe v0.1.9 + Downloaded clap_derive v4.4.2 + Downloaded countme v3.0.1 + Downloaded ra-ap-rustc_lexer v0.10.0 + Downloaded ra_ap_profile v0.0.173 + Downloaded perf-event-open-sys v1.0.1 + Downloaded perf-event v0.4.7 + Downloaded scopeguard v1.2.0 + Downloaded log v0.4.20 + Downloaded lock_api v0.4.10 + Downloaded ra_ap_stdx v0.0.173 + Downloaded unicode-properties v0.1.0 + Downloaded unicode-ident v1.0.12 + Downloaded ryu v1.0.15 + Downloaded block-buffer v0.10.4 + Downloaded once_cell v1.18.0 + Downloaded dashmap v5.5.3 + Downloaded quote v1.0.33 + Downloaded rowan v0.15.11 + Downloaded proc-macro2 v1.0.67 + Downloaded blake2 v0.10.6 + Downloaded typenum v1.17.0 + Downloaded unicode-bidi v0.3.13 + Downloaded smallvec v1.11.1 + Downloaded anyhow v1.0.75 + Downloaded crossbeam-utils v0.8.16 + Downloaded clap v4.4.4 + Downloaded tinyvec v1.6.0 + Downloaded serde_derive v1.0.188 + Downloaded parking_lot_core v0.9.8 + Downloaded lsp-types v0.94.1 + Downloaded prettyplease v0.2.15 + Downloaded url v2.4.1 + Downloaded serde v1.0.188 + Downloaded crossbeam-channel v0.5.8 + Downloaded unicode-normalization v0.1.22 + Downloaded memchr v2.6.3 + Downloaded ra_ap_syntax v0.0.173 + Downloaded ra_ap_parser v0.0.173 + Downloaded hashbrown v0.14.0 + Downloaded hashbrown v0.12.3 + Downloaded itertools v0.11.0 + Downloaded clap_builder v4.4.4 + Downloaded serde_json v1.0.107 + Downloaded aho-corasick v1.1.1 + Downloaded regex v1.9.5 + Downloaded syn v2.0.37 + Downloaded idna v0.4.0 + Downloaded regex-syntax v0.7.5 + Downloaded regex-automata v0.3.8 + Downloaded libc v0.2.148 + Downloaded 92 crates (5.6 MB) in 1.30s + error: package `ra_ap_limit v0.0.173` cannot be built because it requires rustc 1.70 or newer, while the currently active rustc version is 1.69.0 + Either upgrade to rustc 1.70 or newer, or use + cargo update -p ra_ap_limit@0.0.173 --precise ver + where `ver` is the latest version of `ra_ap_limit` supporting rustc 1.69.0 + ``` + +### Language Server Feedback + +- the installation of the [vs code extension](https://marketplace.visualstudio.com/items?itemName=ink-analyzer.ink-analyzer) as well as their features, such as commands, diagnostics, quickfixes, auto-completions, hover contents, code actions, inlay hints and signature helps have been successfully smoke-tested diff --git a/evaluations/larch_2_takahser.md b/evaluations/larch_2_takahser.md index 05e157fa38..c6f3e38a41 100644 --- a/evaluations/larch_2_takahser.md +++ b/evaluations/larch_2_takahser.md @@ -1,6 +1,6 @@ # Evaluation -- **Status:** In Progress +- **Status:** Accepted - **Application Document:** https://github.com/w3f/Grants-Program/blob/master/applications/Zeeve_Parachain_deployment_zoombienet_testing_automation.md - **Milestone:** 2 - **Kusama Identity:** Address @@ -10,20 +10,25 @@ | ------ | ----------- | -------- | ---- |----------------- | | 0a. | License | | [GPLv3](https://github.com/Zeeve-App/larch/blob/8c4e3aa5199e35885ce7c5b8fbc02901077b3e0d/license) | - | | 0b. | Documentation | | [Docs](https://github.com/Zeeve-App/larch/blob/84da44beea04a399d91b1eb88d586e5e7e5c0058/readme.md) | - | -| 0c. | Testing Guide | | [Tutorial](https://github.com/Zeeve-App/larch/blob/84da44beea04a399d91b1eb88d586e5e7e5c0058/docs/user/tutorial.md), [Test instructions](https://github.com/Zeeve-App/larch/blob/84da44beea04a399d91b1eb88d586e5e7e5c0058/docs/development/test_coverage.md) | See [Testing Guide Feedback](#testing-guide-feedback) | +| 0c. | Testing Guide | | [Tutorial](https://github.com/Zeeve-App/larch/blob/84da44beea04a399d91b1eb88d586e5e7e5c0058/docs/user/tutorial.md), [Test instructions](https://github.com/Zeeve-App/larch/blob/84da44beea04a399d91b1eb88d586e5e7e5c0058/docs/development/test_coverage.md) | See [Testing Guide Feedback](#testing-guide-feedback) | | 0d. | Standalone Executable | | [Build instructions](https://github.com/Zeeve-App/larch/blob/84da44beea04a399d91b1eb88d586e5e7e5c0058/docs/development/binary_build.md) | Binary build passes and can be executed. The Web UI is accessible. | -| 0e. | Article | | (missing) | Spec: Using our PR channels, we will publish an **article** that explains the high-level overview of automation as part of the grant, followed by a set of extensive examples. | -| 1. | Design monitoring strategy | | (currently not working, see [Testing Guide Feedback](#testing-guide-feedback)) | Spec: The Zombie-net doesn't provide any embedded monitoring tool, we will with the zombie-net setup automation, automatically setup prometheus and Grafana while configuring the zombie-net. | -| 2. | Setup Dashboard | | (currently not working, see [Testing Guide Feedback](#testing-guide-feedback)) | Spec: The deployment done for Prometheus and Grafana will show standard Dashboard having system resource and zombie-net specific details shown on the aforementioned Grafana GUI Dashboard. | -| 3. | Activity | | (currently not working, see [Testing Guide Feedback](#testing-guide-feedback)) | Spec: The system will log all the activities and operations perform by the different users. | +| 0e. | Article | | [article on zeeve.io's blog](https://www.zeeve.io/blog/zeeves-larch-polkadot-substrate-zombienet-automation-and-monitoring-with-an-intuitive-gui-tool/) | - | +| 1. | Design monitoring strategy | | ["dashboards" module](https://github.com/Zeeve-App/larch/tree/55d660dcc4249510dab512964b403d54e83e515c/packages/backend/src/modules/dashboards) | - | +| 2. | Setup Dashboard | | ["dashboards" module](https://github.com/Zeeve-App/larch/tree/55d660dcc4249510dab512964b403d54e83e515c/packages/backend/src/modules/dashboards) | - | +| 3. | Activity | | ["dashboards" module](https://github.com/Zeeve-App/larch/tree/55d660dcc4249510dab512964b403d54e83e515c/packages/backend/src/modules/dashboards) | - | -Ideally all links inside the above table should include the commit hash, +Ideally, all links inside the above table should include the commit hash, which was used for testing the delivery. It should also be checked if the software is published under the correct open-source license. ## General Notes -Summarizes the overall performance plus additional feedback/comments +- similar to the M1 delivery, there were a couple of obstacles with running the app +- apart from support github comments with getting the software to run, the team was willing to engage with video calls and extended debug sessions +- the executables published by the grantee turned out to be not compatible with the ubuntu machine I've used for testing +- apparently these executables were built on Fedora - maybe that was the reason for the compatiblity issues +- apart from that, even when building the source manually on the ubuntu machine itself, there were a couple of issues which are mostly summarised [here](https://github.com/Zeeve-App/larch/blob/55d660dcc4249510dab512964b403d54e83e515c/docs/misc/exec_issues.md) +- even though I was able to test the whole functionality successfully after a couple of re-tries, the orchestration of all the services is still not very stable and often it fails. in these cases, restarting the machine or executable may help ### Testing Guide Feedback @@ -459,32 +464,259 @@ Summarizes the overall performance plus additional feedback/comments > Lerna (powered by Nx) Successfully ran target coverage for project larch-backend (7s) ``` -- [ ] Tutorial: works until step 13, where I get the following error when creating the network from the template: +- [x] Tutorial: works; here are the logs at step 13: ~~until step 13, where I get the following error when creating the network from the template:~~ ```bash - ╔════════════════════╤════════════════════════════════════════════════════════════════════════════════════════════════════╗ - ║ 🧟 Zombienet 🧟 │ Initiation ║ - ╟────────────────────┼────────────────────────────────────────────────────────────────────────────────────────────────────╢ - ║ Provider │ podman ║ - ╟────────────────────┼────────────────────────────────────────────────────────────────────────────────────────────────────╢ - ║ Namespace │ zombie-133983c7 ║ - ╟────────────────────┼────────────────────────────────────────────────────────────────────────────────────────────────────╢ - ║ Temp Dir │ /root/.larch/exec/test-nw ║ - ╚════════════════════╧════════════════════════════════════════════════════════════════════════════════════════════════════╝ - - Error: Error: Command failed with exit code 125: podman play kube --network zombie-133983c7 /root/.larch/exec/test-nw/prometheus.yaml - time="2023-10-31T14:09:35Z" level=warning msg="Error validating CNI config file /etc/cni/net.d/zombie-133983c7.conflist: [plugin bridge does not support config version \"1.0.0\" plugin portmap does not support config version \"1.0.0\" plugin firewall does not support config version \"1.0.0\" plugin tuning does not support config version \"1.0.0\"]" - Trying to pull docker.io/prom/prometheus:latest... - Error: parsing image configuration: Error fetching blob: invalid status code from registry 503 (Service Unavailable) - - Error: Error: Command failed with exit code 125: podman play kube --network zombie-133983c7 /root/.larch/exec/test-nw/prometheus.yaml - time="2023-10-31T14:09:35Z" level=warning msg="Error validating CNI config file /etc/cni/net.d/zombie-133983c7.conflist: [plugin bridge does not support config version \"1.0.0\" plugin portmap does not support config version \"1.0.0\" plugin firewall does not support config version \"1.0.0\" plugin tuning does not support config version \"1.0.0\"]" - Trying to pull docker.io/prom/prometheus:latest... - Error: parsing image configuration: Error fetching blob: invalid status code from registry 503 (Service Unavailable) - - undefined - ┌────────────────────┬────────────────────────────────────────────────────────────────────────────────────────────────────┐ - │ Node' │ /root/.larch/exec/test-nw/logs │ - │ s logs:0 │ │ - │ m │ │ - └────────────────────┴────────────────────────────────────────────────────────────────────────────────────────────────────┘ + ╔════════════════════╤════════════════════════════════════════════════════════════════════════════════════════════════════╗ + ║ 🧟 Zombienet 🧟 │ Initiation ║ + ╟────────────────────┼────────────────────────────────────────────────────────────────────────────────────────────────────╢ + ║ Provider │ podman ║ + ╟────────────────────┼────────────────────────────────────────────────────────────────────────────────────────────────────╢ + ║ Namespace │ zombie-dc98ec92 ║ + ╟────────────────────┼────────────────────────────────────────────────────────────────────────────────────────────────────╢ + ║ Temp Dir │ /home/ubuntu/.larch/exec/testnet-larch ║ + ╚════════════════════╧════════════════════════════════════════════════════════════════════════════════════════════════════╝ + + Monitor: prometheus - url: http://127.0.0.1:39981 + + Monitor: tempo - url: http://127.0.0.1:40215 + + Monitor: grafana - url: http://127.0.0.1:45273 + ┌────────────────────┬────────────────────────────────────────────────────────────────────────────────────────────────────┐ + │ Pod │ temp │ + ├────────────────────┼────────────────────────────────────────────────────────────────────────────────────────────────────┤ + │ Status │ Launching │ + ├────────────────────┼────────────────────────────────────────────────────────────────────────────────────────────────────┤ + │ Command │ bash -c polkadot build-spec --chain rococo-local --disable-default-bootnode > /cfg/rococo-local-p… │ + └────────────────────┴────────────────────────────────────────────────────────────────────────────────────────────────────┘ + ┌────────────────────┬────────────────────────────────────────────────────────────────────────────────────────────────────┐ + │ Pod │ temp │ + ├────────────────────┼────────────────────────────────────────────────────────────────────────────────────────────────────┤ + │ Status │ Ready │ + └────────────────────┴────────────────────────────────────────────────────────────────────────────────────────────────────┘ + ┌────────────────────┬────────────────────────────────────────────────────────────────────────────────────────────────────┐ + │ Pod │ temp-1 │ + ├────────────────────┼────────────────────────────────────────────────────────────────────────────────────────────────────┤ + │ Status │ Launching │ + ├────────────────────┼────────────────────────────────────────────────────────────────────────────────────────────────────┤ + │ Command │ bash -c polkadot-parachain build-spec --disable-default-bootnode > /cfg/rococo-local-plain.json │ + └────────────────────┴────────────────────────────────────────────────────────────────────────────────────────────────────┘ + ┌────────────────────┬────────────────────────────────────────────────────────────────────────────────────────────────────┐ + │ Pod │ temp-1 │ + ├────────────────────┼────────────────────────────────────────────────────────────────────────────────────────────────────┤ + │ Status │ Ready │ + └────────────────────┴────────────────────────────────────────────────────────────────────────────────────────────────────┘ + ┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ + │ 🧹 Starting with a fresh authority set... │ + └────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ + ┌──────────────────────────────┬────────────────────┬──────────────────────────────────────────────────────────────────────┐ + │ 👤 Added Genesis Authority │ collator01 │ 5Fqdv43Ce4VWNmks2mMdMbyWi7oCeFvMairi9kr9ViEyFyB7 │ + └──────────────────────────────┴────────────────────┴──────────────────────────────────────────────────────────────────────┘ + ┌────────────────────┬────────────────────────────────────────────────────────────────────────────────────────────────────┐ + │ Pod │ temp-2 │ + ├────────────────────┼────────────────────────────────────────────────────────────────────────────────────────────────────┤ + │ Status │ Launching │ + ├────────────────────┼────────────────────────────────────────────────────────────────────────────────────────────────────┤ + │ Command │ bash -c polkadot-parachain build-spec --chain /cfg/100-rococo-local-plain.json --disable-default-… │ + └────────────────────┴────────────────────────────────────────────────────────────────────────────────────────────────────┘ + ┌────────────────────┬────────────────────────────────────────────────────────────────────────────────────────────────────┐ + │ Pod │ temp-2 │ + ├────────────────────┼────────────────────────────────────────────────────────────────────────────────────────────────────┤ + │ Status │ Ready │ + └────────────────────┴────────────────────────────────────────────────────────────────────────────────────────────────────┘ + ┌────────────────────┬────────────────────────────────────────────────────────────────────────────────────────────────────┐ + │ Pod │ temp-collator │ + ├────────────────────┼────────────────────────────────────────────────────────────────────────────────────────────────────┤ + │ Status │ Launching │ + ├────────────────────┼────────────────────────────────────────────────────────────────────────────────────────────────────┤ + │ Command │ bash -c polkadot-parachain export-genesis-state --chain /cfg/100-rococo-local.json > │ + │ │ /cfg/genesis-state && polkadot-parachain export-genesis-wasm --chain /cfg/100-rococo-local │ + │ │ .json > /cfg/genesis-wasm && until [ -f /tmp/finished.txt ]; do echo waiting for copy file │ + │ │ s to finish; sleep 1; done; echo copy files has finished │ + └────────────────────┴────────────────────────────────────────────────────────────────────────────────────────────────────┘ + ┌────────────────────┬────────────────────────────────────────────────────────────────────────────────────────────────────┐ + │ Pod │ temp-collator │ + ├────────────────────┼────────────────────────────────────────────────────────────────────────────────────────────────────┤ + │ Status │ Ready │ + └────────────────────┴────────────────────────────────────────────────────────────────────────────────────────────────────┘ + ╔════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╗ + ║ ✓ Added Genesis Parachain 100 ║ + ╚════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╝ + ┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ + │ 🧹 Starting with a fresh authority set... │ + └────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ + ┌──────────────────────────────┬────────────────────┬──────────────────────────────────────────────────────────────────────┐ + │ 👤 Added Genesis Authority │ alice │ 5GNJqTPyNqANBkUVMN1LPPrxXnFouWXoe2wNSmmEoLctxiZY │ + └──────────────────────────────┴────────────────────┴──────────────────────────────────────────────────────────────────────┘ + ┌──────────────────────────────┬────────────────────┬──────────────────────────────────────────────────────────────────────┐ + │ 👤 Added Genesis Authority │ bob │ 5HpG9w8EBLe5XCrbczpwq5TSXvedjrBGCwqxK1iQ7qUsSWFc │ + └──────────────────────────────┴────────────────────┴──────────────────────────────────────────────────────────────────────┘ + ╔════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╗ + ║ ║ + ║ Adding Genesis HRMP Channels ║ + ╚════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╝ + ┌────────────────────┬────────────────────────────────────────────────────────────────────────────────────────────────────┐ + │ Pod │ temp-3 │ + ├────────────────────┼────────────────────────────────────────────────────────────────────────────────────────────────────┤ + │ Status │ Launching │ + ├────────────────────┼────────────────────────────────────────────────────────────────────────────────────────────────────┤ + │ Command │ bash -c polkadot build-spec --chain /cfg/rococo-local-plain.json --disable-default-bootnode --ra… │ + └────────────────────┴────────────────────────────────────────────────────────────────────────────────────────────────────┘ + ┌────────────────────┬────────────────────────────────────────────────────────────────────────────────────────────────────┐ + │ Pod │ temp-3 │ + ├────────────────────┼────────────────────────────────────────────────────────────────────────────────────────────────────┤ + │ Status │ Ready │ + └────────────────────┴────────────────────────────────────────────────────────────────────────────────────────────────────┘ + ╔════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╗ + ║ Chain name: Rococo Local Testnet ║ + ╚════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╝ + ┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ + │ Rococo Local Testnet ⚙ Clear Boot Nodes │ + └────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ + ┌────────────────────┬────────────────────────────────────────────────────────────────────────────────────────────────────┐ + │ Pod │ alice │ + ├────────────────────┼────────────────────────────────────────────────────────────────────────────────────────────────────┤ + │ Status │ Launching │ + ├────────────────────┼────────────────────────────────────────────────────────────────────────────────────────────────────┤ + │ Command │ /cfg/zombie-wrapper.sh polkadot --chain /cfg/rococo-local.json --name alice --rpc-cor │ + │ │ s all --unsafe-rpc-external --rpc-methods unsafe --unsafe-ws-external -lparachain=debug -- │ + │ │ no-mdns --node-key 2bd806c97f0e00af1a1fc3328fa763a9269723c8db8fac4f93af71db186d6e90 --no-t │ + │ │ elemetry --prometheus-external --jaeger-agent 10.89.4.3:6831 --validator --prometheus-port │ + │ │ 9615 --rpc-port 9933 --ws-port 9944 --listen-addr /ip4/0.0.0.0/tcp/30333/ws --base-path / │ + │ │ data │ + └────────────────────┴────────────────────────────────────────────────────────────────────────────────────────────────────┘ + ┌────────────────────┬────────────────────────────────────────────────────────────────────────────────────────────────────┐ + │ Pod │ alice │ + ├────────────────────┼────────────────────────────────────────────────────────────────────────────────────────────────────┤ + │ Status │ Ready │ + └────────────────────┴────────────────────────────────────────────────────────────────────────────────────────────────────┘ + ╔════════════════════╤════════════════════════════════════════════════════════════════════════════════════════════════════╗ + ║ Pod │ alice ║ + ╟────────────────────┼────────────────────────────────────────────────────────────────────────────────────────────────────╢ + ║ Status │ Running ║ + ╟────────────────────╧────────────────────────────────────────────────────────────────────────────────────────────────────╢ + ║ You can follow the logs of the node by running this command: ║ + ╚═════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╝ + podman logs -f alice_pod-alice + + + ┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ + │ Rococo Local Testnet ⚙ Added Boot Nodes │ + ├────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ + │ /ip4/10.89.4.10/tcp/30333/ws/p2p/12D3KooWQCkBm1BYtkHpocxCwMgR8yjitEeHGx8spzcDLGt2gkBm │ + └────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ + ┌────────────────────┬────────────────────────────────────────────────────────────────────────────────────────────────────┐ + │ Pod │ bob │ + ├────────────────────┼────────────────────────────────────────────────────────────────────────────────────────────────────┤ + │ Status │ Launching │ + ├────────────────────┼────────────────────────────────────────────────────────────────────────────────────────────────────┤ + │ Command │ /cfg/zombie-wrapper.sh polkadot --chain /cfg/rococo-local.json --name bob --rpc-cors │ + │ │ all --unsafe-rpc-external --rpc-methods unsafe --unsafe-ws-external -lparachain=debug --no │ + │ │ -mdns --node-key 81b637d8fcd2c6da6359e6963113a1170de795e4b725b84d1e0b4cfd9ec58ce9 --no-tel │ + │ │ emetry --prometheus-external --jaeger-agent 10.89.4.3:6831 --validator --bootnodes /ip4/10 │ + │ │ .89.4.10/tcp/30333/ws/p2p/12D3KooWQCkBm1BYtkHpocxCwMgR8yjitEeHGx8spzcDLGt2gkBm --prometheu │ + │ │ s-port 9615 --rpc-port 9933 --ws-port 9944 --listen-addr /ip4/0.0.0.0/tcp/30333/ws --base- │ + │ │ path /data │ + └────────────────────┴────────────────────────────────────────────────────────────────────────────────────────────────────┘ + ┌────────────────────┬────────────────────────────────────────────────────────────────────────────────────────────────────┐ + │ Pod │ bob │ + ├────────────────────┼────────────────────────────────────────────────────────────────────────────────────────────────────┤ + │ Status │ Ready │ + └────────────────────┴────────────────────────────────────────────────────────────────────────────────────────────────────┘ + ╔════════════════════╤════════════════════════════════════════════════════════════════════════════════════════════════════╗ + ║ Pod │ bob ║ + ╟────────────────────┼────────────────────────────────────────────────────────────────────────────────────────────────────╢ + ║ Status │ Running ║ + ╟────────────────────╧────────────────────────────────────────────────────────────────────────────────────────────────────╢ + ║ You can follow the logs of the node by running this command: ║ + ╚═════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╝ + podman logs -f bob_pod-bob + + + ╔════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╗ + ║ All relay chain nodes spawned... ║ + ╚════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╝ + ┌────────────────────┬────────────────────────────────────────────────────────────────────────────────────────────────────┐ + │ Pod │ collator01 │ + ├────────────────────┼────────────────────────────────────────────────────────────────────────────────────────────────────┤ + │ Status │ Launching │ + ├────────────────────┼────────────────────────────────────────────────────────────────────────────────────────────────────┤ + │ Command │ /cfg/zombie-wrapper.sh polkadot-parachain --name collator01 --node-key 5e123980fad477 │ + │ │ 0d9ab5b7df7bbee8499943822a8555d11995e8203210065342 --chain /cfg/rococo-local-100.json --ba │ + │ │ se-path /data --listen-addr /ip4/0.0.0.0/tcp/30333/ws --rpc-port 9933 --ws-port 9944 --pro │ + │ │ metheus-external --prometheus-port 9615 --rpc-cors all --unsafe-rpc-external --rpc-methods │ + │ │ unsafe --unsafe-ws-external --collator -lparachain=debug -- --base-path /relay-data --cha │ + │ │ in /cfg/rococo-local.json --execution wasm --port 44285 --ws-port 40475 --rpc-port 37151 │ + │ │ 0m │ + └────────────────────┴────────────────────────────────────────────────────────────────────────────────────────────────────┘ + ┌────────────────────┬────────────────────────────────────────────────────────────────────────────────────────────────────┐ + │ Pod │ collator01 │ + ├────────────────────┼────────────────────────────────────────────────────────────────────────────────────────────────────┤ + │ Status │ Ready │ + └────────────────────┴────────────────────────────────────────────────────────────────────────────────────────────────────┘ + ╔════════════════════╤════════════════════════════════════════════════════════════════════════════════════════════════════╗ + ║ Pod │ collator01 ║ + ╟────────────────────┼────────────────────────────────────────────────────────────────────────────────────────────────────╢ + ║ Status │ Running ║ + ╟────────────────────╧────────────────────────────────────────────────────────────────────────────────────────────────────╢ + ║ You can follow the logs of the node by running this command: ║ + ╚═════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╝ + podman logs -f collator01_pod-collator01 + + + ┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ + │ Rococo Parachain Local ⚙ Added Boot Nodes │ + ├────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ + │ /ip4/10.89.4.12/tcp/30333/ws/p2p/12D3KooWAieokPB4zt3dJJokhVZw8KoQuTgXEEyempJtr6pGkhrd │ + └────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ + + Error fetching metrics from: http://127.0.0.1:41325/metrics + ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ + │ Network launched 🚀🚀 │ + ├──────────────────────────────┬────────────────────────────────────────────────────────────────────────────────────────────────────┤ + │ Namespace │ zombie-dc98ec92 │ + ├──────────────────────────────┼────────────────────────────────────────────────────────────────────────────────────────────────────┤ + │ Provider │ podman │ + ├──────────────────────────────┴────────────────────────────────────────────────────────────────────────────────────────────────────┤ + │ Node Information │ + ├──────────────────────────────┬────────────────────────────────────────────────────────────────────────────────────────────────────┤ + │ Name │ alice │ + ├──────────────────────────────┼────────────────────────────────────────────────────────────────────────────────────────────────────┤ + │ Direct Link │ https://polkadot.js.org/apps/?rpc=ws://127.0.0.1:38733#/explorer │ + ├──────────────────────────────┼────────────────────────────────────────────────────────────────────────────────────────────────────┤ + │ Prometheus Link │ http://127.0.0.1:45451/metrics │ + ├──────────────────────────────┼────────────────────────────────────────────────────────────────────────────────────────────────────┤ + │ Log Cmd │ podman logs -f alice_pod-alice │ + ├──────────────────────────────┴────────────────────────────────────────────────────────────────────────────────────────────────────┤ + │ Node Information │ + ├──────────────────────────────┬────────────────────────────────────────────────────────────────────────────────────────────────────┤ + │ Name │ bob │ + ├──────────────────────────────┼────────────────────────────────────────────────────────────────────────────────────────────────────┤ + │ Direct Link │ https://polkadot.js.org/apps/?rpc=ws://127.0.0.1:34543#/explorer │ + ├──────────────────────────────┼────────────────────────────────────────────────────────────────────────────────────────────────────┤ + │ Prometheus Link │ http://127.0.0.1:38697/metrics │ + ├──────────────────────────────┼────────────────────────────────────────────────────────────────────────────────────────────────────┤ + │ Log Cmd │ podman logs -f bob_pod-bob │ + ├──────────────────────────────┴────────────────────────────────────────────────────────────────────────────────────────────────────┤ + │ Node Information │ + ├──────────────────────────────┬────────────────────────────────────────────────────────────────────────────────────────────────────┤ + │ Name │ collator01 │ + ├──────────────────────────────┼────────────────────────────────────────────────────────────────────────────────────────────────────┤ + │ Direct Link │ https://polkadot.js.org/apps/?rpc=ws://127.0.0.1:41527#/explorer │ + ├──────────────────────────────┼────────────────────────────────────────────────────────────────────────────────────────────────────┤ + │ Prometheus Link │ http://127.0.0.1:41325/metrics │ + ├──────────────────────────────┼────────────────────────────────────────────────────────────────────────────────────────────────────┤ + │ Log Cmd │ podman logs -f collator01_pod-collator01 │ + ├──────────────────────────────┼────────────────────────────────────────────────────────────────────────────────────────────────────┤ + │ Parachain ID │ 100 │ + ├──────────────────────────────┼────────────────────────────────────────────────────────────────────────────────────────────────────┤ + │ ChainSpec Path │ /home/ubuntu/.larch/exec/testnet-larch/100-rococo-local.json │ + └──────────────────────────────┴────────────────────────────────────────────────────────────────────────────────────────────────────┘ + ┌────────────────────┬────────────────────────────────────────────────────────────────────────────────────────────────────┐ + │ Node' │ /home/ubuntu/.larch/exec/testnet-larch/logs │ + │ s logs:0 │ │ + │ m │ │ + └────────────────────┴────────────────────────────────────────────────────────────────────────────────────────────────────┘ ``` +- [x] the Grafana service features two dashboards: + - [x] 1 that features metrics for the node (i.e. system resource stats) + - [x] 1 that features zombie-net specific details diff --git a/evaluations/lastic.md b/evaluations/lastic.md new file mode 100644 index 0000000000..0486f1ec5d --- /dev/null +++ b/evaluations/lastic.md @@ -0,0 +1,155 @@ +# Evaluation + +- **Status:** Accepted +- **Application Document:** https://github.com/w3f/Grants-Program/blob/master/applications/lastic.md +- **Milestone:** 1 +- **Previously successfully merged evaluation:** All by keeganquigley + +| Number | Deliverable | Accepted | Link | Notes | +| ----- | ----------- | ------ | ------- | ------ | +| **0a.** | License | | [LICENSE](https://github.com/LasticXYZ/LasticUI/blob/main/LICENSE) | Licensed under GPLv3 | +| **0b.** | Documentation | | [README.md](https://github.com/LasticXYZ/LasticUI/blob/main/README.md) and [docs.lastic.xyz](https://docs.lastic.xyz/) | Looks good. | +| **0c.** | Testing and Testing Guide | | [lastic.xyz](https://www.lastic.xyz/) | Looks good. | +| **0d.** | Error logging | | [Lastic UI/issues](https://github.com/LasticXYZ/LasticUI/issues) | Looks good. | +| **0e.** | Article Publishing | | [Unlocking the Future of Blockspace](https://medium.com/lastic-marketplace/unlocking-the-future-of-blockspace-introducing-lastic-9036b9d6637) | - | +| **0e.** | Article Publishing | | [The Genesis of Lastic](https://medium.com/lastic-marketplace/the-genesis-of-lastic-a-coretime-marketplace-for-polkadot-75130e40306c) | - | +| **0e.** | Article Publishing | | [Simplifying RFC-1: Understanding Agile Coretime for the Polkadot Network](https://medium.com/lastic-marketplace/the-genesis-of-lastic-a-coretime-marketplace-for-polkadot-75130e40306c) | - | +| **0e.** | Article Publishing | | [Polkadot 2.0: A New Era of Decentralization](https://medium.com/lastic-marketplace/polkadot-2-0-a-new-era-of-decentralization-d5626a6e63e5) | Looks good. | +| **0e.** | Article Publishing | | [Unraveling Agile Coretime: Polkadot’s Innovative Resource Allocation](https://medium.com/lastic-marketplace/unraveling-agile-coretime-polkadots-innovative-resource-allocation-2c025d0daa59) | Looks good. | +| 1. | Whitepaper creation | | [Lastic Whitepaper v1](https://github.com/LasticXYZ/LasticUI/blob/main/W3FGrant_Lastic_Whitepaper.pdf) | Looks good. | +| 2a. | User Flow Diagram Design | | [Link to Flow Chart](https://www.figma.com/file/aFn15lyvti5hqLJBNUDZlU/Lastic-Flow-Chart-%231?type=whiteboard&node-id=0%3A1&t=ZiWNv9gRsH68D5Km-1) | Looks good. +| 2b. | UI Figma Design | | [Link to Figma UI](https://www.figma.com/proto/druTS8m2bCDNgovAjb0sbH/Lastic-milestone?page-id=0%3A1&type=design&node-id=203-897&viewport=191%2C-177%2C0.06&t=OHMXONHfLogXX1M4-1&scaling=min-zoom&starting-point-node-id=203%3A897&mode=design) | Could link to application prototype instead of landing page. | +| 3a. | Frontend Development - Broker Pallet Integration | | [Substrate Interact Github Link](https://github.com/LasticXYZ/LasticUI/tree/main/substrate-interact) | Looks good. +| 3b. | Mockup-based Frontend Development | | [deployment - test.lastic.xyz](https://test.lastic.xyz/) [Link to Frontend](https://github.com/LasticXYZ/LasticUI/tree/main/substrate_interact) | Nice UX/UI + +# General Notes + +## Evaluation v2 + +Overall, great work! The prototype looks great and has a sleek UI. I'm able to connect my wallet and click through the different test pages. I can also spin up a local node and run the UI locally. I was able to get through the [guide](https://docs.lastic.xyz/substrate-interact/interact.html#configuring-the-coretime-chain) to interact with the core time chain from broker pallet. The team resolved the initial issues, `pnpm` is now the only package manager. Docs are also looking much better, thank you! + +There are still a few issues to note, but they are not show-stoppers for approving the evaluation: + +1. Link in deliverable 3a. [Substrate Interact GitHub Link](https://github.com/LasticXYZ/LasticUI/tree/main/substrate-interact) gives 404 error, but can be found [here](https://github.com/LasticXYZ/LasticUI/tree/main/substrate_interact). Please consider fixing. +2. BrowserStack is not mentioned in the application as a testing suite. In the future please make sure to include these suites in the application along with any applicable e2e tests. + +### Tests + +
+ + pnpm run dev is successful + +```ts +> lastic-ui@ dev /Users/keeganquigley/LasticUI +> pnpm -r --if-present dev + +substrate_interact |  WARN  The field "resolutions" was found in /Users/keeganquigley/LasticUI/substrate_interact/package.json. This will not take effect. You should configure "resolutions" at the root of the workspace instead. +Scope: 2 of 3 workspace projects +static_frontend dev$ next dev +│ FatalError: error TS6046: Argument for '--moduleResolution' option must be: 'node', 'classic', 'node16', 'nodenext'. +│ at getTypeScriptConfiguration (/Users/keeganquigley/LasticUI/node_modules/.pnpm/next@13.5.6_react-dom@18.2.0_reac… +│ at writeConfigurationDefaults (/Users/keeganquigley/LasticUI/node_modules/.pnpm/next@13.5.6_react-dom@18.2.0_reac… +│ at verifyTypeScriptSetup (/Users/keeganquigley/LasticUI/node_modules/.pnpm/next@13.5.6_react-dom@18.2.0_react@18.… +│ at async verifyTypeScript (/Users/keeganquigley/LasticUI/node_modules/.pnpm/next@13.5.6_react-dom@18.2.0_react@18… +│ at async startWatcher (/Users/keeganquigley/LasticUI/node_modules/.pnpm/next@13.5.6_react-dom@18.2.0_react@18.2.0… +│ at async setupDevBundler (/Users/keeganquigley/LasticUI/node_modules/.pnpm/next@13.5.6_react-dom@18.2.0_react@18.… +│ at async initialize (/Users/keeganquigley/LasticUI/node_modules/.pnpm/next@13.5.6_react-dom@18.2.0_react@18.2.0/n… +│ at async Server. (/Users/keeganquigley/LasticUI/node_modules/.pnpm/next@13.5.6_react-dom@18.2.0_react@… +│ +└─ Done in 739ms +substrate_interact dev$ react-app-rewired start +[27 lines collapsed] +│ json modules 128 bytes 2 modules +│ modules by mime type application/x-font-ttf 16.3 KiB +│ data:application/x-font-ttf;charset=utf-8;base64,AAEAAAAOAIAAAwBg.. 5.71 KiB [built] [code generated] +│ + 3 modules +│ modules by mime type application/font-woff 14.6 KiB +│ data:application/font-woff;charset=utf-8;base64,d09GRgABAAAAAAoU.. 3.41 KiB [built] [code generated] +│ + 3 modules +│ data:image/png;base64,iVBORw0KGgoAAAAN.. 1.29 KiB [built] [code generated] +│ buffer (ignored) 15 bytes [optional] [built] [code generated] +│ webpack 5.89.0 compiled successfully in 4107 ms +└─ Running... +``` + +
+ +### UI + +Mock UI works nicely. + +![dash1](https://github.com/w3f/Grant-Milestone-Delivery/assets/35080151/986c8f7d-2102-4dc3-a801-18701376ddee) + +![dash2](https://github.com/w3f/Grant-Milestone-Delivery/assets/35080151/6e337e1b-daa4-4dbb-bdac-5d29f96d17a0) + +![dash3](https://github.com/w3f/Grant-Milestone-Delivery/assets/35080151/8b06e061-886a-4d60-9f31-cee94d5ac6ac) + +![dash4](https://github.com/w3f/Grant-Milestone-Delivery/assets/35080151/6cc19271-e627-4681-bc81-45d255cf3730) + + + +## Evaluation v1 + + +### Tests + +
+ + pnpm run dev fails + +```js +pnpm run dev + +> lastic@0.1.0 dev /Users/keeganquigley/LasticUI/static_frontend +> next dev + +FatalError: error TS6046: Argument for '--moduleResolution' option must be: 'node', 'classic', 'node16', 'nodenext'. + + at getTypeScriptConfiguration (/Users/keeganquigley/LasticUI/static_frontend/node_modules/.pnpm/next@13.5.6_react-dom@18.2.0_react@18.2.0/node_modules/next/dist/lib/typescript/getTypeScriptConfiguration.js:49:19) + at writeConfigurationDefaults (/Users/keeganquigley/LasticUI/static_frontend/node_modules/.pnpm/next@13.5.6_react-dom@18.2.0_react@18.2.0/node_modules/next/dist/lib/typescript/writeConfigurationDefaults.js:178:117) + at verifyTypeScriptSetup (/Users/keeganquigley/LasticUI/static_frontend/node_modules/.pnpm/next@13.5.6_react-dom@18.2.0_react@18.2.0/node_modules/next/dist/lib/verify-typescript-setup.js:119:74) + at async verifyTypeScript (/Users/keeganquigley/LasticUI/static_frontend/node_modules/.pnpm/next@13.5.6_react-dom@18.2.0_react@18.2.0/node_modules/next/dist/server/lib/router-utils/setup-dev-bundler.js:108:26) + at async startWatcher (/Users/keeganquigley/LasticUI/static_frontend/node_modules/.pnpm/next@13.5.6_react-dom@18.2.0_react@18.2.0/node_modules/next/dist/server/lib/router-utils/setup-dev-bundler.js:129:29) + at async setupDevBundler (/Users/keeganquigley/LasticUI/static_frontend/node_modules/.pnpm/next@13.5.6_react-dom@18.2.0_react@18.2.0/node_modules/next/dist/server/lib/router-utils/setup-dev-bundler.js:1627:20) + at async initialize (/Users/keeganquigley/LasticUI/static_frontend/node_modules/.pnpm/next@13.5.6_react-dom@18.2.0_react@18.2.0/node_modules/next/dist/server/lib/router-server.js:71:30) + at async Server. (/Users/keeganquigley/LasticUI/static_frontend/node_modules/.pnpm/next@13.5.6_react-dom@18.2.0_react@18.2.0/node_modules/next/dist/server/lib/start-server.js:221:36) +``` +
+ +
+ + yarn start also fails + +```js +yarn start +yarn run v1.22.19 +warning ../../package.json: No license field +$ next start +[Error: ENOENT: no such file or directory, open '/Users/keeganquigley/LasticUI/static_frontend/.next/BUILD_ID'] { + errno: -2, + code: 'ENOENT', + syscall: 'open', + path: '/Users/keeganquigley/LasticUI/static_frontend/.next/BUILD_ID' +} +error Command failed with exit code 1. +info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command. +``` +
+ +Doing the same thing on Ubuntu: +```js +ubuntu@ip-172-31-26-199:~/LasticUI/static_frontend$ yarn start +yarn run v1.22.19 +$ next start +[Error: ENOENT: no such file or directory, open '/home/ubuntu/LasticUI/static_frontend/.next/BUILD_ID'] { + errno: -2, + code: 'ENOENT', + syscall: 'open', + path: '/home/ubuntu/LasticUI/static_frontend/.next/BUILD_ID' +} +error Command failed with exit code 1. +info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command. +``` +Okay, I was able to get the front-end running from the [substrate-interact](https://github.com/LasticXYZ/LasticUI/tree/main/substrate-interact) dir. But I'm not sure where I'm supposed to be entering the extrinsics in the [coretime-chain-setup](https://github.com/LasticXYZ/LasticUI/tree/main/substrate-interact#coretime-chain-setup). Also `yarn test` doesn't seem to be working in any of the directories. + +substrate-interact diff --git a/evaluations/polkadart_3_semuelle.md b/evaluations/polkadart_3_semuelle.md new file mode 100755 index 0000000000..5b635dd464 --- /dev/null +++ b/evaluations/polkadart_3_semuelle.md @@ -0,0 +1,34 @@ +# Evaluation + +- **Status:** Accepted +- **Application Document:** https://github.com/w3f/Grants-Program/blob/master/applications/Polkadart.md +- **Milestone:** 3 +- **Kusama Identity:** [ESxS4A7GHMLzve4Mbc9t27RpXtVTnV3LtcMTtcnD26jcUHA](https://polkascan.io/pre/kusama/account/ESxS4A7GHMLzve4Mbc9t27RpXtVTnV3LtcMTtcnD26jcUHA) +- **Previously successfully merged evaluation:** All by semuelle + +| Number | Deliverable | Accepted | Link | Evaluation Notes | +| ------ | ----------- | :------: | ---- |----------------- | +| 0a. | License | | [LICENSE](https://github.com/leonardocustodio/polkadart/blob/9b7ec8ef2e48b5d629a49c0f4276e4904b30f69e/LICENSE) | Apache 2.0 | +| 0b. | Documentation | | [packages/polkadart](https://github.com/leonardocustodio/polkadart/blob/9b7ec8ef2e48b5d629a49c0f4276e4904b30f69e/packages/polkadart/README.md), [packages/polkadart_keyring](https://github.com/leonardocustodio/polkadart/blob/9b7ec8ef2e48b5d629a49c0f4276e4904b30f69e/packages/polkadart_keyring/README.md), [packages/substrate_bip39](https://github.com/leonardocustodio/polkadart/blob/9b7ec8ef2e48b5d629a49c0f4276e4904b30f69e/packages/substrate_bip39/README.md) | See also READMEs in other packages | +| 0c. | Testing Guide | | [README](https://github.com/leonardocustodio/polkadart/blob/9b7ec8ef2e48b5d629a49c0f4276e4904b30f69e/README.md#documentation-and-tests) | — | +| 0d. | Docker | | [Dockerfile](https://github.com/leonardocustodio/polkadart/blob/9b7ec8ef2e48b5d629a49c0f4276e4904b30f69e/docker/Dockerfile) | — | +| 0e. | Article/Workshop | | [/examples](https://github.com/leonardocustodio/polkadart/tree/8b9122d01d6aab515e2279f68697161c32df1f0f/examples) | Added on request | +| 3a. | Substrate Uri | | [packages/substrate_bip39](https://github.com/leonardocustodio/polkadart/blob/57aee026a5356461a4fbb4cb701c72ad032223b8/packages/substrate_bip39/lib/crypto_scheme.dart#L109-L143) | — | +| 3b. | Encrypt/Decrypt | | [packages/substrate_bip39](https://github.com/leonardocustodio/polkadart/blob/57aee026a5356461a4fbb4cb701c72ad032223b8/packages/substrate_bip39/lib/crypto_scheme.dart#L60-L77) | — | +| 3c. | Ed25519 | | [packages/substrate_bip39](https://github.com/leonardocustodio/polkadart/blob/9b7ec8ef2e48b5d629a49c0f4276e4904b30f69e/packages/substrate_bip39/lib/schemes/ed25519.dart) | — | +| 3e. | Sign & Verify | | [packages/polkadart_keyring](https://github.com/leonardocustodio/polkadart/blob/57aee026a5356461a4fbb4cb701c72ad032223b8/packages/polkadart_keyring/lib/src/keypair.dart#L54-L76) | — | +| 3f. | Substrate Signed Extensions | | [packages/polkadart](https://github.com/leonardocustodio/polkadart/blob/9b7ec8ef2e48b5d629a49c0f4276e4904b30f69e/packages/polkadart/lib/extrinsic/signed_extensions/substrate.dart) | — | +| 3g. | AssetHub Signed Extensions | | [packages/polkadart](https://github.com/leonardocustodio/polkadart/blob/9b7ec8ef2e48b5d629a49c0f4276e4904b30f69e/packages/polkadart/lib/extrinsic/signed_extensions/asset_hub.dart) | — | +| 3h. | Transaction Subscriptions | | [packages/polkadart](https://github.com/leonardocustodio/polkadart/blob/57aee026a5356461a4fbb4cb701c72ad032223b8/packages/polkadart/lib/apis/author.dart#L25-L41) | — | +| 3i. | Event Subscriptions | | [packages/polkadart](https://github.com/leonardocustodio/polkadart/blob/57aee026a5356461a4fbb4cb701c72ad032223b8/packages/polkadart/lib/apis/state.dart#L176-L189) | — | +| 3j. | Keyring | | [packages/polkadart_keyring](https://github.com/leonardocustodio/polkadart/tree/9b7ec8ef2e48b5d629a49c0f4276e4904b30f69e/packages/polkadart_keyring) | — | +| 3k. | Crypto | | [packages/polkadart](https://github.com/leonardocustodio/polkadart/tree/9b7ec8ef2e48b5d629a49c0f4276e4904b30f69e/packages/polkadart/lib/substrate) | — | +| 3l. | Tests | | [packages/polkadart_keyring](https://github.com/leonardocustodio/polkadart/tree/9b7ec8ef2e48b5d629a49c0f4276e4904b30f69e/packages/polkadart_keyring/test) | — | +| 3m. | Pub.dev | | [pub.dev](https://pub.dev/publishers/polkadart.dev/packages) | — | + + +## General Notes + +- Good inline docs +- Thorough tests +- Everything worked out of the box \ No newline at end of file diff --git a/evaluations/tesseract-mobile-libraries_1_semuelle.md b/evaluations/tesseract-mobile-libraries_1_semuelle.md new file mode 100755 index 0000000000..8965775202 --- /dev/null +++ b/evaluations/tesseract-mobile-libraries_1_semuelle.md @@ -0,0 +1,26 @@ +# Evaluation + +- **Status:** In Progress +- **Application Document:** https://github.com/w3f/Grants-Program/blob/master/applications/dapp_wallet_integration_native_mobile_libraries.md +- **Milestone:** 1 +- **Kusama Identity:** [ESxS4A7GHMLzve4Mbc9t27RpXtVTnV3LtcMTtcnD26jcUHA](https://polkascan.io/pre/kusama/account/ESxS4A7GHMLzve4Mbc9t27RpXtVTnV3LtcMTtcnD26jcUHA) +- **Previously successfully merged evaluation:** All by semuelle + +| Number | Deliverable | Accepted | Link | Evaluation Notes | +| ------ | ----------- | :------: | ---- |----------------- | +| **0a.** | License | | [LICENSE](https://github.com/tesseract-one/Tesseract.android/blob/b6dfe65d1306c6eeb3d4218bba07f84d4b8ddf51/LICENSE) | Apache 2.0 | +| **0b.** | Documentation | | [README](https://github.com/tesseract-one/Tesseract.android/blob/b6dfe65d1306c6eeb3d4218bba07f84d4b8ddf51/README.md), [WALLET.MD](https://github.com/tesseract-one/Tesseract.android/blob/b6dfe65d1306c6eeb3d4218bba07f84d4b8ddf51/WALLET.MD) | — | +| **0c.** | Testing and Testing Guide | | link | Core functions will be fully covered by unit tests to ensure functionality and robustness. In the guide, we will describe how to run these tests. | +| **0d.** | Docker | | link | Due to the client-side nature of the deliverable, there is no need for a docker image. | +| 0e. | Article | | link | We will publish an article that explains how Tesseract makes dApps better and how to enable Tesseract protocol support in a Polkadot wallet for Android. | +| 1. | Wallet-side Android library | | link | The library provides Kotlin APIs for Tesseract's wallet-side | +| 2. | Wallet-side IPC wrapper for Android | | link | Kotlin wrapper for the wallet side of Android IPC transport | +| 3. | Wallet-side of the Test protocol in Kotlin | | link | Kotlin API for the wallet side of Tesseract Test protocol | +| 4. | Wallet-side of the Substrate protocol in Kotlin | | link | Kotlin API for the wallet side of Tesseract Substrate protocol | +| 5. | Android demo Wallet | | link | A demo wallet that demonstrates the Kotlin APIs usage | +| X. | ... | | link | see [General Notes](#general-notes) | + + +## General Notes + +- — diff --git a/evaluations/tracking_chain_m1_whisker.md b/evaluations/tracking_chain_1_whisker.md similarity index 100% rename from evaluations/tracking_chain_m1_whisker.md rename to evaluations/tracking_chain_1_whisker.md diff --git a/evaluations/tracking_chain_m1_dsm-w3f.md b/evaluations/tracking_chain_2_dsm-w3f.md similarity index 100% rename from evaluations/tracking_chain_m1_dsm-w3f.md rename to evaluations/tracking_chain_2_dsm-w3f.md diff --git a/evaluations/tracking_chain_4_takahser.md b/evaluations/tracking_chain_4_takahser.md new file mode 100644 index 0000000000..0a9fdffa81 --- /dev/null +++ b/evaluations/tracking_chain_4_takahser.md @@ -0,0 +1,315 @@ +# Evaluation + +- **Status:** In Progress +- **Application Document:** https://github.com/w3f/Grants-Program/blob/master/applications/tracking_chain.md +- **Milestone:** 1 +- **Kusama Identity:** Address +- **Previously successfully merged evaluation:** All by takahser + +| Number | Deliverable | Accepted | Link | Evaluation Notes | +| ------ | ----------- | -------- | ---- |----------------- | +| **0a.** | License | | [MIT](https://github.com/TrackingChains/TrackingChain/blob/9571c983d3e9a74bfa192390ce3c3f391b7fcca3/LICENSE) | - | +| **0b.** | Documentation || [M4 Tutorial](https://github.com/TrackingChains/TrackingChain/wiki/Milestone-4-Guide-to-Demo/6642a57429a57ad224c6e47fe10a71ebea7c2197) | See [Documentation Feedback](#documentation-feedback) | +| **0c.** | Testing and Testing Guide || | See [Testing Feedback](#testing-feedback) | +| **0d.** | Docker || [docker-compose.yml](https://github.com/TrackingChains/TrackingChain/blob/9571c983d3e9a74bfa192390ce3c3f391b7fcca3/docker-compose.yml) | See [Docker Feedback](#docker-feedback) | +| 0e. | Article || [M4 guide](https://github.com/TrackingChains/TrackingChain/wiki/Milestone-4-Guide-to-Demo) | The demo was difficult to follow, because there are quite some steps involved that were not particularly included in the article/tutorial. For users experienced with the tool these steps might appear logical, but for evaluators like me who are confronted with the project for the first time, this is an issue. However, the grantee offered a video call to walk through the app together, which was very helpful and is appreciated. | +| 1. | Tx Generator Worker || [Tx Generator Worker Module](https://github.com/TrackingChains/TrackingChain/tree/9571c983d3e9a74bfa192390ce3c3f391b7fcca3/src/TransactionGenerator.Worker) | - | + +Ideally all links inside the above table should include the commit hash, +which was used for testing the delivery. It should also be checked if the software is published under the correct open-source license. + +## General Notes + +- Unfortunately I wasn't able to access the db that is based on microsoft sql server from my host machine that runs macos. This might be an incopability issue. In any way, the grantee has proven the code to work during the code and application walkthrough that was conducted through a video call. + +## Documentation Feedback + +- [ ] clarify instructions: from reading the [current instructions](https://github.com/TrackingChains/TrackingChain/wiki/Milestone-4-Guide-to-Demo/6642a57429a57ad224c6e47fe10a71ebea7c2197) it's currently not clear how to test the functionality of this milestone if the evaluator is not familiar with the tool yet as there seem to be some steps missing (this may not apply to experienced users of the tool, but that's not the case for me) + +## Testing Feedback + +- [x] tests pass: + ``` + Run dotnet test test/TrackingChain.UnitTest/TrackingChain.UnitTest.csproj --no-build --verbosity normal + Build started 10/26/2023 07:23:40. + Test run for /home/runner/work/TrackingChain/TrackingChain/test/TrackingChain.UnitTest/bin/Debug/net7.0/TrackingChain.UnitTest.dll (.NETCoreApp,Version=v7.0) + Microsoft (R) Test Execution Command Line Tool Version 17.7.2 (x64) + Copyright (c) Microsoft Corporation. All rights reserved. + + Starting test execution, please wait... + A total of 1 test files matched the specified pattern. + [xUnit.net 00:00:00.00] xUnit.net VSTest Adapter v2.5.0.1+5ebf84cd75 (64-bit .NET 7.0.13) + [xUnit.net 00:00:00.11] Discovering: TrackingChain.UnitTest + [xUnit.net 00:00:00.20] Discovered: TrackingChain.UnitTest + [xUnit.net 00:00:00.20] Starting: TrackingChain.UnitTest + Passed TrackingChain.UnitTest.AggregatorPool.AggregatorServiceTest.SetToPoolShouldSetRegistryInPoolAsync [1 s] + Passed TrackingChain.UnitTest.Pages.Admin.ProfileGroups.EditTest.OnPostShoudleGet404WhenSmartContracNotFoundAsync [1 s] + Passed TrackingChain.UnitTest.Pages.Admin.ProfileGroups.EditTest.OnPostShoudleEditProfileGroupAsync [93 ms] + Passed TrackingChain.UnitTest.Pages.Admin.Accounts.EditTest.OnPostShoudleGet404WhenAccountNotFoundAsync [15 ms] + Passed TrackingChain.UnitTest.Pages.Admin.Accounts.EditTest.OnPostAsync [18 ms] + Passed TrackingChain.UnitTest.AggregatorPool.AggregatorServiceTest.EnqueueShouldCreatePool [158 ms] + Passed TrackingChain.UnitTest.AggregatorPool.AggregatorServiceTest.EnqueueShouldSetTriageInPool [1 ms] + Passed TrackingChain.UnitTest.TransactionMonitor.TransactionDeleterUseCaseTest.TransactionDeleterShouldRemovePendingCompletedAsync [203 ms] + Passed TrackingChain.UnitTest.TransactionMonitor.TransactionDeleterUseCaseTest.TransactionDeleterShouldRemoveTriageCompletedAsync [21 ms] + Passed TrackingChain.UnitTest.TransactionMonitor.TransactionDeleterUseCaseTest.TransactionDeleterShouldRemovePoolCompletedAsync [11 ms] + Passed TrackingChain.UnitTest.TransactionMonitor.TransactionDeleterUseCaseTest.TransactionDeleterShouldRemoveAllCompletedAsync [10 ms] + Passed TrackingChain.UnitTest.Pages.Admin.ProfileGroups.CreateTest.OnPostShoudleCreateProfileGroupAsync [14 ms] + Passed TrackingChain.UnitTest.Pages.Admin.ProfileGroups.CreateTest.OnPostShoudleGet404WhenSmartContracNotFoundAsync [2 ms] + Passed TrackingChain.UnitTest.Domain.AccountTest.GetFirstRandomWriterAddress [1 ms] + Passed TrackingChain.UnitTest.Domain.AccountTest.AccountShouldBePopulateCorrectly [< 1 ms] + Passed TrackingChain.UnitTest.Domain.AccountTest.GetFirstRandomWatcherAddress [3 ms] + Passed TrackingChain.UnitTest.Pages.Admin.Accounts.DeleteTest.OnPostAsync [20 ms] + Passed TrackingChain.UnitTest.Triage.AnalyticUseCaseTest.GetTrackingStatusShouldBeFindElementAsync [30 ms] + Passed TrackingChain.UnitTest.Triage.AnalyticUseCaseTest.GetTrackingPoolsAsync [25 ms] + Passed TrackingChain.UnitTest.Triage.AnalyticUseCaseTest.GetTrackingTriagesAsync [15 ms] + Passed TrackingChain.UnitTest.Triage.AnalyticUseCaseTest.GetTrackingStatusShouldBeReturNullAsync [2 ms] + Passed TrackingChain.UnitTest.Triage.AnalyticUseCaseTest.GetTrackingShouldBeReturNullAsync [3 ms] + Passed TrackingChain.UnitTest.Triage.AnalyticUseCaseTest.GetTrackingPendingsAsync [14 ms] + Passed TrackingChain.UnitTest.Triage.AnalyticUseCaseTest.GetTrackingSuccessfullyAsync [15 ms] + Passed TrackingChain.UnitTest.Triage.AnalyticUseCaseTest.GetTrackingFailedsAsync [18 ms] + Passed TrackingChain.UnitTest.Triage.AnalyticUseCaseTest.GetTrackingShouldBeFindElementAsync [2 ms] + Passed TrackingChain.UnitTest.TransactionGenerator.TransactionGeneratorServiceTest.SetToPendinglShouldSetRegistryInPendingAsync [18 ms] + Passed TrackingChain.UnitTest.TransactionGenerator.TransactionGeneratorServiceTest.ShouldGetOnlyUnlockedTransactionForProfileAsync [72 ms] + Passed TrackingChain.UnitTest.TransactionGenerator.TransactionGeneratorServiceTest.ShouldBeCreateTransactionPendingAsync [10 ms] + Passed TrackingChain.UnitTest.Pages.Admin.Smartcontracts.DeleteTest.OnPostAsync [28 ms] + Passed TrackingChain.UnitTest.Triage.TransactionTriageServiceTest.GetSmartContractForTransactionShouldNotFoundContractByCategoryNameAsync [66 ms] + Passed TrackingChain.UnitTest.Triage.TransactionTriageServiceTest.GetSmartContractForTransactionShouldNotFoundContractByAuthorityNameAsync [6 ms] + Passed TrackingChain.UnitTest.Triage.TransactionTriageServiceTest.GetProfileGroupForTransactionShouldFindContractByCategoryNullAsync [2 ms] + Passed TrackingChain.UnitTest.Triage.TransactionTriageServiceTest.GetSmartContractForTransactionShouldFindContractByAuthorityNameAsync [3 ms] + Passed TrackingChain.UnitTest.Triage.TransactionTriageServiceTest.ShouldGetTriageFirstInEvenWithMultipleCodeAndLockedCaseAsync [68 ms] + Passed TrackingChain.UnitTest.Triage.TransactionTriageServiceTest.ShouldGetTriageExcludeAllCoeInPoolAsync [3 ms] + Passed TrackingChain.UnitTest.Triage.TransactionTriageServiceTest.ShouldGetTriageFirstInAsync [3 ms] + Passed TrackingChain.UnitTest.Triage.TransactionTriageServiceTest.AddTransactionAsync [15 ms] + Passed TrackingChain.UnitTest.Triage.TransactionTriageServiceTest.ShouldGetTriageFirstInEvenWithMultipleCodeAsync [4 ms] + Passed TrackingChain.UnitTest.Triage.TransactionTriageServiceTest.ShouldGetTriageExcludeCompletedAsync [3 ms] + Passed TrackingChain.UnitTest.Triage.TransactionTriageServiceTest.GetProfileGroupForTransactionShouldFindContractByAuthorityNullAsync [2 ms] + Passed TrackingChain.UnitTest.Triage.TransactionTriageServiceTest.GetSmartContractForTransactionShouldFindContractByCategoryNameAsync [3 ms] + Passed TrackingChain.UnitTest.Domain.TransactionPendingTest.UnlockShouldBeNotIncreaseErrorTime [< 1 ms] + Passed TrackingChain.UnitTest.Domain.TransactionPendingTest.SetLockedShouldBeSetData [6 ms] + Passed TrackingChain.UnitTest.Domain.TransactionPendingTest.SetStatusErrorDoneShouldBe [< 1 ms] + Passed TrackingChain.UnitTest.Domain.TransactionPendingTest.TransactionPendingShouldBePopulateCorrectly [< 1 ms] + Passed TrackingChain.UnitTest.Domain.TransactionPendingTest.SetCompletedShouldBeSetTrue [< 1 ms] + Passed TrackingChain.UnitTest.Domain.TransactionPendingTest.UnlockShouldBeCleanData [< 1 ms] + Passed TrackingChain.UnitTest.Domain.TransactionPendingTest.UnlockFromErrorShouldBeIncreaseErrorTime [2 ms] + Passed TrackingChain.UnitTest.Domain.TransactionPendingTest.UnlockFromErrorShouldBeClearData [< 1 ms] + Passed TrackingChain.UnitTest.Domain.TransactionPendingTest.UnlockFromErrorShouldBeDelayWatchingFrom [< 1 ms] + Passed TrackingChain.UnitTest.Domain.TransactionTriageTest.TransactionPendingShouldBePopulateCorrectly [< 1 ms] + Passed TrackingChain.UnitTest.Domain.TransactionTriageTest.SetInPoolShouldBeSetTrue [< 1 ms] + Passed TrackingChain.UnitTest.Domain.TransactionTriageTest.SetCompletedShouldBeSetTrue [< 1 ms] + Passed TrackingChain.UnitTest.Pages.Admin.AccountProfileGroups.DeleteTest.OnPostShoudleCreateProfileGroupAsync [63 ms] + Passed TrackingChain.UnitTest.AggregatorPool.EnqueuerPoolUseCaseTest.EnqueueTransactionAsync [27 ms] + Passed TrackingChain.UnitTest.Pages.Admin.ProfileGroups.DeleteTest.OnPostAsync [13 ms] + Passed TrackingChain.UnitTest.Triage.RegistryServiceTest.GetSmartContractAsync [16 ms] + Passed TrackingChain.UnitTest.TransactionWatcher.TransactionWatcherServiceTest.GetOnlyUnlockedTransactionShouldFilterWatchingFromAsync [55 ms] + Passed TrackingChain.UnitTest.TransactionWatcher.TransactionWatcherServiceTest.ShouldBeSetTransactionTriageCompletedAsync [12 ms] + Passed TrackingChain.UnitTest.TransactionWatcher.TransactionWatcherServiceTest.SetToRegistryShouldPopolateDataReceiptAsync [7 ms] + Passed TrackingChain.UnitTest.TransactionWatcher.TransactionWatcherServiceTest.ShouldGetOnlyUnlockedTransactionForProfileAsync [9 ms] + Passed TrackingChain.UnitTest.TransactionWatcher.TransactionWatcherServiceTest.ShouldBeSetTransactionPoolCompletedAsync [13 ms] + Passed TrackingChain.UnitTest.Pages.Admin.AccountProfileGroups.CreateTest.OnPostShoudleGet404WhenProfileNotFoundAsync [3 ms] + Passed TrackingChain.UnitTest.Pages.Admin.AccountProfileGroups.CreateTest.OnPostShoudleGet404WhenAccountNotFoundAsync [2 ms] + Passed TrackingChain.UnitTest.Pages.Admin.AccountProfileGroups.CreateTest.OnPostShoudleCreateProfileGroupAsync [9 ms] + Passed TrackingChain.UnitTest.Triage.TrackingEntryUseCaseTest.AddTransactionAsyncShouldGetGuidAsync [14 ms] + Passed TrackingChain.UnitTest.Domain.TransactionRegistryTest.SetToRegistryUnuccessfulShouldSetInError [< 1 ms] + Passed TrackingChain.UnitTest.Domain.TransactionRegistryTest.TransactionRegistryShouldBePopulateCorrectly [< 1 ms] + Passed TrackingChain.UnitTest.Domain.TransactionRegistryTest.SetToRegistryReceptMissionShouldSetInSuccess [< 1 ms] + Passed TrackingChain.UnitTest.Domain.TransactionRegistryTest.GetFirstRandomEndpointAddressShouldBeReturnEndpointWhenPopulated [< 1 ms] + Passed TrackingChain.UnitTest.Domain.TransactionRegistryTest.SetToRegistryShouldBePopolateReceptData [< 1 ms] + Passed TrackingChain.UnitTest.Domain.TransactionRegistryTest.ShouldBeGetExceptionSetWaitingToCancelWhenNotInError [< 1 ms] + Passed TrackingChain.UnitTest.Domain.TransactionRegistryTest.ShouldBeSetToPending [< 1 ms] + Passed TrackingChain.UnitTest.Domain.TransactionRegistryTest.ShouldBeSetWaitingToReTryWhenInError [< 1 ms] + Passed TrackingChain.UnitTest.Domain.TransactionRegistryTest.GetFirstRandomEndpointAddressShouldBeReturnNullWhenEmpty [< 1 ms] + Passed TrackingChain.UnitTest.Domain.TransactionRegistryTest.ShouldBeSetToPool [< 1 ms] + Passed TrackingChain.UnitTest.Domain.TransactionRegistryTest.SetToRegistrySuccessfulShouldSetInSuccess [< 1 ms] + Passed TrackingChain.UnitTest.Domain.TransactionRegistryTest.ShouldBeGetExceptionSetWaitingToReTryWhenNotInError [< 1 ms] + Passed TrackingChain.UnitTest.Domain.TransactionRegistryTest.ShouldBeSetWaitingToCancelWhenInError [< 1 ms] + Passed TrackingChain.UnitTest.TransactionMonitor.TransactionLockedUseCaseTest.TransactionLockedShouldUnlockPoolsPendingsAsync [1 s] + Passed TrackingChain.UnitTest.TransactionMonitor.TransactionFailedUseCaseTest.TransactionFailedShouldManageAsync [157 ms] + Passed TrackingChain.UnitTest.TransactionMonitor.TransactionFailedUseCaseTest.TransactionErrorShouldManageAgainInPoolAsync(transactionErrorReason: TransactionFinalizedInError) [70 ms] + Passed TrackingChain.UnitTest.TransactionMonitor.TransactionFailedUseCaseTest.TransactionErrorShouldManageAgainInPoolAsync(transactionErrorReason: TransactionNotFound) [12 ms] + Passed TrackingChain.UnitTest.TransactionMonitor.TransactionFailedUseCaseTest.TransactionFailedInPoolShouldManageReTryExpectionAsync(transactionErrorReason: UnableToSendTransactionOnChain) [17 ms] + Passed TrackingChain.UnitTest.TransactionMonitor.TransactionFailedUseCaseTest.TransactionFailedInPoolShouldManageReTryExpectionAsync(transactionErrorReason: InsertTransactionExpection) [9 ms] + Passed TrackingChain.UnitTest.TransactionMonitor.TransactionFailedUseCaseTest.TransactionFailedInPendingShouldManageReTryAsync(transactionErrorReason: GetTrasactionReceiptExpection) [14 ms] + Passed TrackingChain.UnitTest.TransactionMonitor.TransactionFailedUseCaseTest.TransactionFailedInPendingShouldManageReTryAsync(transactionErrorReason: UnableToWatchTransactionOnChain) [9 ms] + Passed TrackingChain.UnitTest.Pages.Admin.AccountProfileGroups.EditTest.OnPostShoudleGet404WhenProfileNotFoundAsync [28 ms] + Passed TrackingChain.UnitTest.Pages.Admin.AccountProfileGroups.EditTest.OnPostShoudleEditProfileGroupAsync [5 ms] + Passed TrackingChain.UnitTest.Pages.Admin.AccountProfileGroups.EditTest.OnPostShoudleGet404WhenAccountNotFoundAsync [2 ms] + Passed TrackingChain.UnitTest.Pages.Admin.Smartcontracts.CreateTest.OnPostShoudleGetErrorForJsonInvalidAsync [4 ms] + Passed TrackingChain.UnitTest.Pages.Admin.Smartcontracts.CreateTest.OnPostShoudleCreateSmartContractAsync [10 ms] + Passed TrackingChain.UnitTest.TransactionGenerator.PoolDequeuerUseCaseTest.DequeueTransactionFailedShouldSetInErrorWhenReachMaxLimitAsync [51 ms] + Passed TrackingChain.UnitTest.TransactionGenerator.PoolDequeuerUseCaseTest.AddTransactionAsyncShouldGetGuidAsync [17 ms] + Passed TrackingChain.UnitTest.TransactionGenerator.PoolDequeuerUseCaseTest.DequeueTransactionFailedShouldSetInWaitingForWorkerAsync [10 ms] + Passed TrackingChain.UnitTest.Pages.Admin.Accounts.CreateTest.OnPostAsync [2 ms] + Passed TrackingChain.UnitTest.TransactionWatcher.PendingTransactionWatcherUseCaseTest.DequeueTransactionFailedFailedShouldSetInErrorWhenReachMaxLimitAsync [43 ms] + Passed TrackingChain.UnitTest.TransactionWatcher.PendingTransactionWatcherUseCaseTest.AddTransactionAsyncShouldGetGuidAsync [13 ms] + Passed TrackingChain.UnitTest.TransactionWatcher.PendingTransactionWatcherUseCaseTest.CheckTransactionStatusFailedShouldSetInWaitingForWorkerAsync [8 ms] + Passed TrackingChain.UnitTest.Pages.Admin.Smartcontracts.EditTest.OnPostShoudleEditSmartContractAsync [17 ms] + Passed TrackingChain.UnitTest.Pages.Admin.Smartcontracts.EditTest.OnPostShoudleGetErrorForJsonInvalidAsync [3 ms] + Passed TrackingChain.UnitTest.Domain.TransactionPoolTest.SetLokedShouldBeSetData [< 1 ms] + Passed TrackingChain.UnitTest.Domain.TransactionPoolTest.UnlockFromErrorShouldBeDelayGeneratingFrom [< 1 ms] + Passed TrackingChain.UnitTest.Domain.TransactionPoolTest.SetCompletedShouldBeSetTrue [< 1 ms] + Passed TrackingChain.UnitTest.Domain.TransactionPoolTest.UnlockFromErrorShouldBeClearData [< 1 ms] + Passed TrackingChain.UnitTest.Domain.TransactionPoolTest.SetStatusErrorDoneShouldBe [< 1 ms] + Passed TrackingChain.UnitTest.Domain.TransactionPoolTest.UnlockFromErrorShouldBeIncreaseErrorTime [< 1 ms] + Passed TrackingChain.UnitTest.Domain.TransactionPoolTest.UnlockShouldBeCleanData [< 1 ms] + Passed TrackingChain.UnitTest.Domain.TransactionPoolTest.UnlockShouldBeNotIncreaseErrorTime [< 1 ms] + Passed TrackingChain.UnitTest.Domain.TransactionPoolTest.TransactionPoolShouldBePopulateCorrectly [< 1 ms] + Passed TrackingChain.UnitTest.TransactionMonitor.AlertUseCaseTest.TransactionDeleterShouldRemoveTriageCompletedAsync [63 ms] + Passed TrackingChain.UnitTest.TransactionMonitor.ReportGeneratorServiceTest.GenerateTxFailedReportShouldHaveAllItemsAsync [45 ms] + Passed TrackingChain.UnitTest.TransactionMonitor.ReportGeneratorServiceTest.GenerateTxCancelReportShouldHaveAllItemsAsync [9 ms] + Passed TrackingChain.UnitTest.TransactionMonitor.TransactionLockedUseCaseTest.TransactionLockedShouldUnlockPendindsAsync [1 s] + Passed TrackingChain.UnitTest.TransactionMonitor.TransactionLockedUseCaseTest.TransactionLockedShouldUnlockPoolsAsync [1 s] + [xUnit.net 00:00:08.11] Finished: TrackingChain.UnitTest + Passed TrackingChain.UnitTest.GetTrackTest.TestAsync [5 s] + + Test Run Successful. + Total tests: 117 + Passed: 117 + Total time: 8.7989 Seconds + + Build succeeded. + 0 Warning(s) + 0 Error(s) + + Time Elapsed 00:00:09.85 + ``` + +## Docker Feedback + +- I wouldn't recommend posting a copy of the docker compose file to the docs, since it may be difficult to keep it in sync with the actual file. Instead, linking to the file might be the better option. +- [ ] currently there are errors when starting the infrastructure using docker compose (host: MacOs running M2): + ``` + trackingchain-transaction-generator-1 | [09:47:24.334 ERR][]: Failed executing DbCommand (23ms) [Parameters=[@__accountId_0='?' (DbType = Guid)], CommandType='Text', CommandTimeout='30'] + trackingchain-transaction-generator-1 | SELECT TOP(1) [a].[Id], [a].[ChainWatcherAddress], [a].[ChainWriterAddress], [a].[Name], [a].[PrivateKey] + trackingchain-transaction-generator-1 | FROM [Accounts] AS [a] + trackingchain-transaction-generator-1 | WHERE [a].[Id] = @__accountId_0 Microsoft.EntityFrameworkCore.Database.Command + trackingchain-transaction-generator-1 | [09:47:24.342 ERR][]: An exception occurred while iterating over the results of a query for context type 'TrackingChain.TrackingChainCore.EntityFramework.Context.ApplicationDbContext'. + trackingchain-transaction-generator-1 | Microsoft.Data.SqlClient.SqlException (0x80131904): Invalid object name 'Accounts'. + trackingchain-transaction-generator-1 | at Microsoft.Data.SqlClient.SqlCommand.<>c.b__208_0(Task`1 result) + trackingchain-transaction-generator-1 | at System.Threading.Tasks.ContinuationResultTaskFromResultTask`2.InnerInvoke() + trackingchain-transaction-generator-1 | at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state) + trackingchain-transaction-generator-1 | --- End of stack trace from previous location --- + trackingchain-transaction-generator-1 | at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state) + trackingchain-transaction-generator-1 | at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot, Thread threadPoolThread) + trackingchain-transaction-generator-1 | --- End of stack trace from previous location --- + trackingchain-transaction-generator-1 | at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReaderAsync(RelationalCommandParameterObject parameterObject, CancellationToken cancellationToken) + trackingchain-transaction-generator-1 | at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReaderAsync(RelationalCommandParameterObject parameterObject, CancellationToken cancellationToken) + trackingchain-transaction-generator-1 | at Microsoft.EntityFrameworkCore.Query.Internal.SingleQueryingEnumerable`1.AsyncEnumerator.InitializeReaderAsync(AsyncEnumerator enumerator, CancellationToken cancellationToken) + trackingchain-transaction-generator-1 | at Microsoft.EntityFrameworkCore.SqlServer.Storage.Internal.SqlServerExecutionStrategy.ExecuteAsync[TState,TResult](TState state, Func`4 operation, Func`4 verifySucceeded, CancellationToken cancellationToken) + trackingchain-transaction-generator-1 | at Microsoft.EntityFrameworkCore.Query.Internal.SingleQueryingEnumerable`1.AsyncEnumerator.MoveNextAsync() + trackingchain-transaction-generator-1 | ClientConnectionId:b709846c-3488-4031-b07d-c69e604839da + trackingchain-transaction-generator-1 | Error Number:208,State:1,Class:16 Microsoft.EntityFrameworkCore.Query + trackingchain-transaction-generator-1 | Microsoft.Data.SqlClient.SqlException (0x80131904): Invalid object name 'Accounts'. + trackingchain-transaction-generator-1 | at Microsoft.Data.SqlClient.SqlCommand.<>c.b__208_0(Task`1 result) + trackingchain-transaction-generator-1 | at System.Threading.Tasks.ContinuationResultTaskFromResultTask`2.InnerInvoke() + trackingchain-transaction-generator-1 | at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state) + trackingchain-transaction-generator-1 | --- End of stack trace from previous location --- + trackingchain-transaction-generator-1 | at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state) + trackingchain-transaction-generator-1 | at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot, Thread threadPoolThread) + trackingchain-transaction-generator-1 | --- End of stack trace from previous location --- + trackingchain-transaction-generator-1 | at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReaderAsync(RelationalCommandParameterObject parameterObject, CancellationToken cancellationToken) + trackingchain-transaction-generator-1 | at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReaderAsync(RelationalCommandParameterObject parameterObject, CancellationToken cancellationToken) + trackingchain-transaction-generator-1 | at Microsoft.EntityFrameworkCore.Query.Internal.SingleQueryingEnumerable`1.AsyncEnumerator.InitializeReaderAsync(AsyncEnumerator enumerator, CancellationToken cancellationToken) + trackingchain-transaction-generator-1 | at Microsoft.EntityFrameworkCore.SqlServer.Storage.Internal.SqlServerExecutionStrategy.ExecuteAsync[TState,TResult](TState state, Func`4 operation, Func`4 verifySucceeded, CancellationToken cancellationToken) + trackingchain-transaction-generator-1 | at Microsoft.EntityFrameworkCore.Query.Internal.SingleQueryingEnumerable`1.AsyncEnumerator.MoveNextAsync() + trackingchain-transaction-generator-1 | ClientConnectionId:b709846c-3488-4031-b07d-c69e604839da + trackingchain-transaction-generator-1 | Error Number:208,State:1,Class:16 + trackingchain-transaction-generator-1 | [09:47:24.344 ERR][]: Child Pool Dequeuer Guid:1f8e591b-6a9c-486e-ab2b-2b42abbf5b23 TrackingChain.TransactionGeneratorWorker.PoolDequeuerWorker + trackingchain-transaction-generator-1 | Microsoft.Data.SqlClient.SqlException (0x80131904): Invalid object name 'Accounts'. + trackingchain-transaction-generator-1 | at Microsoft.Data.SqlClient.SqlCommand.<>c.b__208_0(Task`1 result) + trackingchain-transaction-generator-1 | at System.Threading.Tasks.ContinuationResultTaskFromResultTask`2.InnerInvoke() + trackingchain-transaction-generator-1 | at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state) + trackingchain-transaction-generator-1 | --- End of stack trace from previous location --- + trackingchain-transaction-generator-1 | at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state) + trackingchain-transaction-generator-1 | at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot, Thread threadPoolThread) + trackingchain-transaction-generator-1 | --- End of stack trace from previous location --- + trackingchain-transaction-generator-1 | at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReaderAsync(RelationalCommandParameterObject parameterObject, CancellationToken cancellationToken) + trackingchain-transaction-generator-1 | at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReaderAsync(RelationalCommandParameterObject parameterObject, CancellationToken cancellationToken) + trackingchain-transaction-generator-1 | at Microsoft.EntityFrameworkCore.Query.Internal.SingleQueryingEnumerable`1.AsyncEnumerator.InitializeReaderAsync(AsyncEnumerator enumerator, CancellationToken cancellationToken) + trackingchain-transaction-generator-1 | at Microsoft.EntityFrameworkCore.SqlServer.Storage.Internal.SqlServerExecutionStrategy.ExecuteAsync[TState,TResult](TState state, Func`4 operation, Func`4 verifySucceeded, CancellationToken cancellationToken) + trackingchain-transaction-generator-1 | at Microsoft.EntityFrameworkCore.Query.Internal.SingleQueryingEnumerable`1.AsyncEnumerator.MoveNextAsync() + trackingchain-transaction-generator-1 | at Microsoft.EntityFrameworkCore.Query.ShapedQueryCompilingExpressionVisitor.SingleAsync[TSource](IAsyncEnumerable`1 asyncEnumerable, CancellationToken cancellationToken) + trackingchain-transaction-generator-1 | at Microsoft.EntityFrameworkCore.Query.ShapedQueryCompilingExpressionVisitor.SingleAsync[TSource](IAsyncEnumerable`1 asyncEnumerable, CancellationToken cancellationToken) + trackingchain-transaction-generator-1 | at TrackingChain.TransactionGeneratorCore.Services.AccountService.GetAccountAsync(Guid accountId) in /src/src/TransactionGenerator.Core/Services/AccountService.cs:line 29 + trackingchain-transaction-generator-1 | at TrackingChain.TransactionGeneratorCore.UseCases.PoolDequeuerUseCase.DequeueTransactionAsync(Int32 max, Guid accountId, Int32 reTryAfterSeconds, Int32 maxErrorTime) in /src/src/TransactionGenerator.Core/UseCases/PoolDequeuerUseCase.cs:line 52 + trackingchain-transaction-generator-1 | at TrackingChain.TransactionGeneratorWorker.PoolDequeuerWorker.RunSingleAccountAsync(Guid taskId, CancellationToken stoppingToken) in /src/src/TransactionGenerator.Worker/PoolDequeuerWorker.cs:line 71 + trackingchain-transaction-generator-1 | ClientConnectionId:b709846c-3488-4031-b07d-c69e604839da + trackingchain-transaction-generator-1 | Error Number:208,State:1,Class:16 + trackingchain-aggregator-pool-1 exited with code 0 + trackingchain-transaction-generator-1 | [09:47:24.535 ERR][]: Child Pool Dequeuer Guid:6f8e591b-6a9c-486e-ab2b-2b42abbf5b23 TrackingChain.TransactionGeneratorWorker.PoolDequeuerWorker + trackingchain-transaction-generator-1 | System.InvalidOperationException: Sequence contains no elements. + trackingchain-transaction-generator-1 | at Microsoft.EntityFrameworkCore.Query.ShapedQueryCompilingExpressionVisitor.SingleAsync[TSource](IAsyncEnumerable`1 asyncEnumerable, CancellationToken cancellationToken) + trackingchain-transaction-generator-1 | at Microsoft.EntityFrameworkCore.Query.ShapedQueryCompilingExpressionVisitor.SingleAsync[TSource](IAsyncEnumerable`1 asyncEnumerable, CancellationToken cancellationToken) + trackingchain-transaction-generator-1 | at TrackingChain.TransactionGeneratorCore.Services.AccountService.GetAccountAsync(Guid accountId) in /src/src/TransactionGenerator.Core/Services/AccountService.cs:line 29 + trackingchain-transaction-generator-1 | at TrackingChain.TransactionGeneratorCore.UseCases.PoolDequeuerUseCase.DequeueTransactionAsync(Int32 max, Guid accountId, Int32 reTryAfterSeconds, Int32 maxErrorTime) in /src/src/TransactionGenerator.Core/UseCases/PoolDequeuerUseCase.cs:line 52 + trackingchain-transaction-generator-1 | at TrackingChain.TransactionGeneratorWorker.PoolDequeuerWorker.RunSingleAccountAsync(Guid taskId, CancellationToken stoppingToken) in /src/src/TransactionGenerator.Worker/PoolDequeuerWorker.cs:line 71 + trackingchain-transaction-generator-1 | [09:47:24.535 ERR][]: Child Pool Dequeuer Guid:8f8e591b-6a9c-486e-ab2b-2b42abbf5b23 TrackingChain.TransactionGeneratorWorker.PoolDequeuerWorker + trackingchain-transaction-generator-1 | System.InvalidOperationException: Sequence contains no elements. + trackingchain-transaction-generator-1 | at Microsoft.EntityFrameworkCore.Query.ShapedQueryCompilingExpressionVisitor.SingleAsync[TSource](IAsyncEnumerable`1 asyncEnumerable, CancellationToken cancellationToken) + trackingchain-transaction-generator-1 | at Microsoft.EntityFrameworkCore.Query.ShapedQueryCompilingExpressionVisitor.SingleAsync[TSource](IAsyncEnumerable`1 asyncEnumerable, CancellationToken cancellationToken) + trackingchain-transaction-generator-1 | at TrackingChain.TransactionGeneratorCore.Services.AccountService.GetAccountAsync(Guid accountId) in /src/src/TransactionGenerator.Core/Services/AccountService.cs:line 29 + trackingchain-transaction-generator-1 | at TrackingChain.TransactionGeneratorCore.UseCases.PoolDequeuerUseCase.DequeueTransactionAsync(Int32 max, Guid accountId, Int32 reTryAfterSeconds, Int32 maxErrorTime) in /src/src/TransactionGenerator.Core/UseCases/PoolDequeuerUseCase.cs:line 52 + trackingchain-transaction-generator-1 | at TrackingChain.TransactionGeneratorWorker.PoolDequeuerWorker.RunSingleAccountAsync(Guid taskId, CancellationToken stoppingToken) in /src/src/TransactionGenerator.Worker/PoolDequeuerWorker.cs:line 71 + trackingchain-transaction-generator-1 | [09:47:24.535 ERR][]: Child Pool Dequeuer Guid:9f8e591b-6a9c-486e-ab2b-2b42abbf5b23 TrackingChain.TransactionGeneratorWorker.PoolDequeuerWorker + trackingchain-transaction-generator-1 | System.InvalidOperationException: Sequence contains no elements. + trackingchain-transaction-generator-1 | at Microsoft.EntityFrameworkCore.Query.ShapedQueryCompilingExpressionVisitor.SingleAsync[TSource](IAsyncEnumerable`1 asyncEnumerable, CancellationToken cancellationToken) + trackingchain-transaction-generator-1 | at Microsoft.EntityFrameworkCore.Query.ShapedQueryCompilingExpressionVisitor.SingleAsync[TSource](IAsyncEnumerable`1 asyncEnumerable, CancellationToken cancellationToken) + trackingchain-transaction-generator-1 | at TrackingChain.TransactionGeneratorCore.Services.AccountService.GetAccountAsync(Guid accountId) in /src/src/TransactionGenerator.Core/Services/AccountService.cs:line 29 + trackingchain-transaction-generator-1 | at TrackingChain.TransactionGeneratorCore.UseCases.PoolDequeuerUseCase.DequeueTransactionAsync(Int32 max, Guid accountId, Int32 reTryAfterSeconds, Int32 maxErrorTime) in /src/src/TransactionGenerator.Core/UseCases/PoolDequeuerUseCase.cs:line 52 + trackingchain-transaction-generator-1 | at TrackingChain.TransactionGeneratorWorker.PoolDequeuerWorker.RunSingleAccountAsync(Guid taskId, CancellationToken stoppingToken) in /src/src/TransactionGenerator.Worker/PoolDequeuerWorker.cs:line 71 + trackingchain-transaction-watcher-1 | [09:47:24.548 ERR][]: Child Checker Guid:8f8e591b-6a9c-486e-ab2b-2b42abbf5b23 TransactionWatcherWorker.PendingTransactionCheckerWorker + trackingchain-transaction-watcher-1 | System.InvalidOperationException: Account not found + trackingchain-transaction-watcher-1 | at TrackingChain.TransactionWatcherCore.Services.AccountService.GetAccountAsync(Guid accountId) in /src/src/TransactionWatcher.Core/Services/AccountService.cs:line 37 + trackingchain-transaction-watcher-1 | at TrackingChain.TransactionWatcherCore.UseCases.PendingTransactionWatcherUseCase.CheckTransactionStatusAsync(Int32 max, Guid accountId, Int32 reTryAfterSeconds, Int32 maxErrorTime) in /src/src/TransactionWatcher.Core/UseCases/PendingTransactionWatcherUseCase.cs:line 50 + trackingchain-transaction-watcher-1 | at TransactionWatcherWorker.PendingTransactionCheckerWorker.RunSingleAccountAsync(Guid taskId, CancellationToken stoppingToken) in /src/src/TransactionWatcher.Worker/PendingTransactionCheckerWorker.cs:line 68 + trackingchain-transaction-watcher-1 | [09:47:24.548 ERR][]: Child Checker Guid:4f8e591b-6a9c-486e-ab2b-2b42abbf5b23 TransactionWatcherWorker.PendingTransactionCheckerWorker + trackingchain-transaction-watcher-1 | System.InvalidOperationException: Account not found + trackingchain-transaction-watcher-1 | at TrackingChain.TransactionWatcherCore.Services.AccountService.GetAccountAsync(Guid accountId) in /src/src/TransactionWatcher.Core/Services/AccountService.cs:line 37 + trackingchain-transaction-watcher-1 | at TrackingChain.TransactionWatcherCore.UseCases.PendingTransactionWatcherUseCase.CheckTransactionStatusAsync(Int32 max, Guid accountId, Int32 reTryAfterSeconds, Int32 maxErrorTime) in /src/src/TransactionWatcher.Core/UseCases/PendingTransactionWatcherUseCase.cs:line 50 + trackingchain-transaction-watcher-1 | at TransactionWatcherWorker.PendingTransactionCheckerWorker.RunSingleAccountAsync(Guid taskId, CancellationToken stoppingToken) in /src/src/TransactionWatcher.Worker/PendingTransactionCheckerWorker.cs:line 68 + trackingchain-transaction-watcher-1 | [09:47:24.548 ERR][]: Child Checker Guid:1f8e591b-6a9c-486e-ab2b-2b42abbf5b23 TransactionWatcherWorker.PendingTransactionCheckerWorker + trackingchain-transaction-watcher-1 | System.InvalidOperationException: Account not found + trackingchain-transaction-watcher-1 | at TrackingChain.TransactionWatcherCore.Services.AccountService.GetAccountAsync(Guid accountId) in /src/src/TransactionWatcher.Core/Services/AccountService.cs:line 37 + trackingchain-transaction-watcher-1 | at TrackingChain.TransactionWatcherCore.UseCases.PendingTransactionWatcherUseCase.CheckTransactionStatusAsync(Int32 max, Guid accountId, Int32 reTryAfterSeconds, Int32 maxErrorTime) in /src/src/TransactionWatcher.Core/UseCases/PendingTransactionWatcherUseCase.cs:line 50 + trackingchain-transaction-watcher-1 | at TransactionWatcherWorker.PendingTransactionCheckerWorker.RunSingleAccountAsync(Guid taskId, CancellationToken stoppingToken) in /src/src/TransactionWatcher.Worker/PendingTransactionCheckerWorker.cs:line 68 + trackingchain-transaction-watcher-1 | [09:47:24.570 ERR][]: Child Checker Guid:9f8e591b-6a9c-486e-ab2b-2b42abbf5b23 TransactionWatcherWorker.PendingTransactionCheckerWorker + trackingchain-transaction-watcher-1 | System.InvalidOperationException: Account not found + trackingchain-transaction-watcher-1 | at TrackingChain.TransactionWatcherCore.Services.AccountService.GetAccountAsync(Guid accountId) in /src/src/TransactionWatcher.Core/Services/AccountService.cs:line 37 + trackingchain-transaction-watcher-1 | at TrackingChain.TransactionWatcherCore.UseCases.PendingTransactionWatcherUseCase.CheckTransactionStatusAsync(Int32 max, Guid accountId, Int32 reTryAfterSeconds, Int32 maxErrorTime) in /src/src/TransactionWatcher.Core/UseCases/PendingTransactionWatcherUseCase.cs:line 50 + trackingchain-transaction-watcher-1 | at TransactionWatcherWorker.PendingTransactionCheckerWorker.RunSingleAccountAsync(Guid taskId, CancellationToken stoppingToken) in /src/src/TransactionWatcher.Worker/PendingTransactionCheckerWorker.cs:line 68 + trackingchain-transaction-generator-1 | [09:47:24.570 ERR][]: Child Pool Dequeuer Guid:2f8e591b-6a9c-486e-ab2b-2b42abbf5b23 TrackingChain.TransactionGeneratorWorker.PoolDequeuerWorker + trackingchain-transaction-generator-1 | System.InvalidOperationException: Sequence contains no elements. + trackingchain-transaction-generator-1 | at Microsoft.EntityFrameworkCore.Query.ShapedQueryCompilingExpressionVisitor.SingleAsync[TSource](IAsyncEnumerable`1 asyncEnumerable, CancellationToken cancellationToken) + trackingchain-transaction-generator-1 | at Microsoft.EntityFrameworkCore.Query.ShapedQueryCompilingExpressionVisitor.SingleAsync[TSource](IAsyncEnumerable`1 asyncEnumerable, CancellationToken cancellationToken) + trackingchain-transaction-generator-1 | at TrackingChain.TransactionGeneratorCore.Services.AccountService.GetAccountAsync(Guid accountId) in /src/src/TransactionGenerator.Core/Services/AccountService.cs:line 29 + trackingchain-transaction-generator-1 | at TrackingChain.TransactionGeneratorCore.UseCases.PoolDequeuerUseCase.DequeueTransactionAsync(Int32 max, Guid accountId, Int32 reTryAfterSeconds, Int32 maxErrorTime) in /src/src/TransactionGenerator.Core/UseCases/PoolDequeuerUseCase.cs:line 52 + trackingchain-transaction-generator-1 | at TrackingChain.TransactionGeneratorWorker.PoolDequeuerWorker.RunSingleAccountAsync(Guid taskId, CancellationToken stoppingToken) in /src/src/TransactionGenerator.Worker/PoolDequeuerWorker.cs:line 71 + trackingchain-transaction-watcher-1 | [09:47:24.576 ERR][]: Child Checker Guid:5f8e591b-6a9c-486e-ab2b-2b42abbf5b23 TransactionWatcherWorker.PendingTransactionCheckerWorker + trackingchain-transaction-watcher-1 | System.InvalidOperationException: Account not found + trackingchain-transaction-watcher-1 | at TrackingChain.TransactionWatcherCore.Services.AccountService.GetAccountAsync(Guid accountId) in /src/src/TransactionWatcher.Core/Services/AccountService.cs:line 37 + trackingchain-transaction-watcher-1 | at TrackingChain.TransactionWatcherCore.UseCases.PendingTransactionWatcherUseCase.CheckTransactionStatusAsync(Int32 max, Guid accountId, Int32 reTryAfterSeconds, Int32 maxErrorTime) in /src/src/TransactionWatcher.Core/UseCases/PendingTransactionWatcherUseCase.cs:line 50 + trackingchain-transaction-watcher-1 | at TransactionWatcherWorker.PendingTransactionCheckerWorker.RunSingleAccountAsync(Guid taskId, CancellationToken stoppingToken) in /src/src/TransactionWatcher.Worker/PendingTransactionCheckerWorker.cs:line 68 + trackingchain-transaction-generator-1 | [09:47:24.576 ERR][]: Child Pool Dequeuer Guid:5f8e591b-6a9c-486e-ab2b-2b42abbf5b23 TrackingChain.TransactionGeneratorWorker.PoolDequeuerWorker + trackingchain-transaction-watcher-1 | [09:47:24.576 ERR][]: Child Checker Guid:2f8e591b-6a9c-486e-ab2b-2b42abbf5b23 TransactionWatcherWorker.PendingTransactionCheckerWorker + trackingchain-transaction-watcher-1 | System.InvalidOperationException: Account not found + trackingchain-transaction-watcher-1 | at TrackingChain.TransactionWatcherCore.Services.AccountService.GetAccountAsync(Guid accountId) in /src/src/TransactionWatcher.Core/Services/AccountService.cs:line 37 + trackingchain-transaction-watcher-1 | at TrackingChain.TransactionWatcherCore.UseCases.PendingTransactionWatcherUseCase.CheckTransactionStatusAsync(Int32 max, Guid accountId, Int32 reTryAfterSeconds, Int32 maxErrorTime) in /src/src/TransactionWatcher.Core/UseCases/PendingTransactionWatcherUseCase.cs:line 50 + trackingchain-transaction-watcher-1 | at TransactionWatcherWorker.PendingTransactionCheckerWorker.RunSingleAccountAsync(Guid taskId, CancellationToken stoppingToken) in /src/src/TransactionWatcher.Worker/PendingTransactionCheckerWorker.cs:line 68 + trackingchain-transaction-generator-1 | System.InvalidOperationException: Sequence contains no elements. + trackingchain-transaction-generator-1 | at Microsoft.EntityFrameworkCore.Query.ShapedQueryCompilingExpressionVisitor.SingleAsync[TSource](IAsyncEnumerable`1 asyncEnumerable, CancellationToken cancellationToken) + trackingchain-transaction-generator-1 | at Microsoft.EntityFrameworkCore.Query.ShapedQueryCompilingExpressionVisitor.SingleAsync[TSource](IAsyncEnumerable`1 asyncEnumerable, CancellationToken cancellationToken) + trackingchain-transaction-generator-1 | at TrackingChain.TransactionGeneratorCore.Services.AccountService.GetAccountAsync(Guid accountId) in /src/src/TransactionGenerator.Core/Services/AccountService.cs:line 29 + trackingchain-transaction-generator-1 | at TrackingChain.TransactionGeneratorCore.UseCases.PoolDequeuerUseCase.DequeueTransactionAsync(Int32 max, Guid accountId, Int32 reTryAfterSeconds, Int32 maxErrorTime) in /src/src/TransactionGenerator.Core/UseCases/PoolDequeuerUseCase.cs:line 52 + trackingchain-transaction-generator-1 | at TrackingChain.TransactionGeneratorWorker.PoolDequeuerWorker.RunSingleAccountAsync(Guid taskId, CancellationToken stoppingToken) in /src/src/TransactionGenerator.Worker/PoolDequeuerWorker.cs:line 71 + trackingchain-transaction-generator-1 | [09:47:24.576 ERR][]: Child Pool Dequeuer Guid:4f8e591b-6a9c-486e-ab2b-2b42abbf5b23 TrackingChain.TransactionGeneratorWorker.PoolDequeuerWorker + trackingchain-transaction-generator-1 | System.InvalidOperationException: Sequence contains no elements. + trackingchain-transaction-generator-1 | at Microsoft.EntityFrameworkCore.Query.ShapedQueryCompilingExpressionVisitor.SingleAsync[TSource](IAsyncEnumerable`1 asyncEnumerable, CancellationToken cancellationToken) + trackingchain-transaction-generator-1 | at Microsoft.EntityFrameworkCore.Query.ShapedQueryCompilingExpressionVisitor.SingleAsync[TSource](IAsyncEnumerable`1 asyncEnumerable, CancellationToken cancellationToken) + trackingchain-transaction-generator-1 | at TrackingChain.TransactionGeneratorCore.Services.AccountService.GetAccountAsync(Guid accountId) in /src/src/TransactionGenerator.Core/Services/AccountService.cs:line 29 + trackingchain-transaction-generator-1 | at TrackingChain.TransactionGeneratorCore.UseCases.PoolDequeuerUseCase.DequeueTransactionAsync(Int32 max, Guid accountId, Int32 reTryAfterSeconds, Int32 maxErrorTime) in /src/src/TransactionGenerator.Core/UseCases/PoolDequeuerUseCase.cs:line 52 + trackingchain-transaction-generator-1 | at TrackingChain.TransactionGeneratorWorker.PoolDequeuerWorker.RunSingleAccountAsync(Guid taskId, CancellationToken stoppingToken) in /src/src/TransactionGenerator.Worker/PoolDequeuerWorker.cs:line 71 + trackingchain-transaction-watcher-1 | [09:47:24.584 ERR][]: Child Checker Guid:6f8e591b-6a9c-486e-ab2b-2b42abbf5b23 TransactionWatcherWorker.PendingTransactionCheckerWorker + trackingchain-transaction-watcher-1 | System.InvalidOperationException: Account not found + trackingchain-transaction-watcher-1 | at TrackingChain.TransactionWatcherCore.Services.AccountService.GetAccountAsync(Guid accountId) in /src/src/TransactionWatcher.Core/Services/AccountService.cs:line 37 + trackingchain-transaction-watcher-1 | at TrackingChain.TransactionWatcherCore.UseCases.PendingTransactionWatcherUseCase.CheckTransactionStatusAsync(Int32 max, Guid accountId, Int32 reTryAfterSeconds, Int32 maxErrorTime) in /src/src/TransactionWatcher.Core/UseCases/PendingTransactionWatcherUseCase.cs:line 50 + trackingchain-transaction-watcher-1 | at TransactionWatcherWorker.PendingTransactionCheckerWorker.RunSingleAccountAsync(Guid taskId, CancellationToken stoppingToken) in /src/src/TransactionWatcher.Worker/PendingTransactionCheckerWorker.cs:line 68 + ``` diff --git a/maintenance_deliveries/wasm-opt-for-rust-maintenance-11.md b/maintenance_deliveries/wasm-opt-for-rust-maintenance-11.md new file mode 100644 index 0000000000..79d9e55ec8 --- /dev/null +++ b/maintenance_deliveries/wasm-opt-for-rust-maintenance-11.md @@ -0,0 +1,33 @@ +# Maintenance Delivery :mailbox: + +**The [invoice form :pencil:](https://docs.google.com/forms/d/e/1FAIpQLSfmNYaoCgrxyhzgoKQ0ynQvnNRoTmgApz9NrMp-hd8mhIiO0A/viewform) has been filled out correctly for this delivery** + +* **Application Document:** https://github.com/w3f/Grants-Program/blob/master/applications/maintenance/wasm-opt-for-rust.md +* **Delivery Number:** 11 +* **Delivery Date:** 2023/11/02 + + +**Context** + +This is a project to maintain Rust bindings to Binaryen's wasm-opt tool. + +We fixed the big regression related to DWARF passes by adding an optional "dwarf" feature to the crate, and published 0.114.2. +We upgraded to binaryen 116 and and published 0.116.0. + + +**Deliverables** + +Note: a full hourly accounting of work performed is included with the invoice. + +| Number | Deliverable | Link | Notes | +| ------------- | ------------- | ------------- |------------- | +| 1. | Fixes for DWARF regression | https://github.com/brson/wasm-opt-rs/pull/156 | | +| 2. | wasm-opt 0.114.2 | https://crates.io/crates/wasm-opt/0.114.2 | | +| 3. | Upgrade to binaryen 116 | https://github.com/brson/wasm-opt-rs/pull/155 | | +| 4. | wasm-opt 0.116.0 | https://crates.io/crates/wasm-opt/0.116.0 | | +| 5. | Discussion of the DWARF regression | https://github.com/brson/wasm-opt-rs/issues/154#issuecomment-1769743989 | | +| 6. | Update substrate to 0.116.0 | https://github.com/paritytech/polkadot-sdk/pull/1995 | | + +**Additional Information** + +N/A diff --git a/maintenance_evaluations/wasm-opt-for-rust-maintenance_11_semuelle.md b/maintenance_evaluations/wasm-opt-for-rust-maintenance_11_semuelle.md new file mode 100755 index 0000000000..4c25603e7f --- /dev/null +++ b/maintenance_evaluations/wasm-opt-for-rust-maintenance_11_semuelle.md @@ -0,0 +1,20 @@ +# Evaluation + +- **Status:** Accepted +- **Application Document:** https://github.com/w3f/Grants-Program/blob/master/applications/maintenance/wasm-opt-for-rust.md +- **Milestone:** 11 +- **Kusama Identity:** [ESxS4A7GHMLzve4Mbc9t27RpXtVTnV3LtcMTtcnD26jcUHA](https://polkascan.io/pre/kusama/account/ESxS4A7GHMLzve4Mbc9t27RpXtVTnV3LtcMTtcnD26jcUHA) +- **Previously successfully merged evaluation:** All by semuelle + +| Number | Deliverable | Accepted | Link | Evaluation Notes | +| ------ | ----------- | :------: | ---- |----------------- | +| 1. | Fixes for DWARF regression |
  • [x]
| [pull/156](https://github.com/brson/wasm-opt-rs/pull/156) | — | +| 2. | wasm-opt 0.114.2 |
  • [x]
| [releases/tag/v0.114.2](https://github.com/brson/wasm-opt-rs/releases/tag/v0.114.2) | — | +| 3. | Upgrade to binaryen 116 |
  • [x]
| [pull/155](https://github.com/brson/wasm-opt-rs/pull/155) | — | +| 4. | wasm-opt 0.116.0 |
  • [x]
| [releases/tag/v0.116.0](https://github.com/brson/wasm-opt-rs/releases/tag/v0.116.0) | — | +| 5. | Discussion of the DWARF regression |
  • [x]
| [issues/154](https://github.com/brson/wasm-opt-rs/issues/154#issuecomment-1769743989) | — | +| 6. | Update substrate to 0.116.0 |
  • [x]
| [paritytech/polkadot-sdk](https://github.com/paritytech/polkadot-sdk/pull/1995) | — | + +## General Notes + +- —