From 3c39820912a818d30beee76bdd1649383ee2bf47 Mon Sep 17 00:00:00 2001 From: Piet <75956460+PieWol@users.noreply.github.com> Date: Mon, 18 Mar 2024 12:46:07 +0100 Subject: [PATCH 1/8] create-substrate-app finished (#2251) --- applications/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/applications/index.md b/applications/index.md index f15eee2c029..471411aac06 100644 --- a/applications/index.md +++ b/applications/index.md @@ -58,7 +58,7 @@ Besides, **there is a clear difference between an application being accepted and | [inkscope.xyz](https://inkscope.xyz/) | [Inkscope Fuzzer](./inkscope-fuzzer.md) | [GitHub](https://github.com/inkscopexyz) | ☐ | ☐ | ☐ | | [Relai Network](https://relai.network/) | [Futur & Fusion Protocols](./FuturFusion.md) | [GitHub](https://github.com/RELAI-Network) | ☐ | ☐ | ☐ | | [Zondax AG](https://zondax.ch/) | [User Account Access Security Analysis](./research_wallets.md) | [GitHub](https://github.com/zondax) | ☐ | ☐ | ☐ | -| [Philoniare Team](https://github.com/philoniare/) | [create-substrate-app](./create-substrate-app.md) | [GitHub](https://github.com/philoniare/) | ☐ | ☐ | ☐ | +| [Philoniare Team](https://github.com/philoniare/) | [create-substrate-app](./create-substrate-app.md) | [GitHub](https://github.com/philoniare/) | ☐ | ☒ | ☒ | | [David Semakula](https://davidsemakula.com) | [pallet-verifier](./pallet-verifier.md) | [GitHub](https://github.com/davidsemakula) | ☐ | ☐ | ☐ | From 5918fd649d986d07d69cc13d424590bcb239e837 Mon Sep 17 00:00:00 2001 From: Keegan | W3F <35080151+keeganquigley@users.noreply.github.com> Date: Mon, 18 Mar 2024 07:46:37 -0400 Subject: [PATCH 2/8] Update index.md (#2252) --- applications/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/applications/index.md b/applications/index.md index 471411aac06..5c3b14ada0a 100644 --- a/applications/index.md +++ b/applications/index.md @@ -85,7 +85,7 @@ Besides, **there is a clear difference between an application being accepted and | [Lastic](https://www.lastic.xyz/) | [Coretime Sale Price Calculator](lastic-price-simulation-2.md) | [GitHub](https://github.com/LasticXYZ/price-simulation) | ☐ | ☒ | ☒ | | [Tokenguard.io](http://tokenguard.io/) | [Tokenguard](Tokenguard.md) | [GitHub](https://github.com/tokenguardio) | ☐ | ☐ | ☐ | | [element36 AG](https://element36.io) | [Hyperfridge](hyperfridge.md) | [GitHub](https://github.com/element36-io) | ☐ | ☐ | ☐ | -| [RegionX](https://regionx.tech) | [RegionX](RegionX.md) | [GitHub](https://github.com/RegionX-Labs) | ☐ | ☒ | ☐ | +| [RegionX](https://regionx.tech) | [RegionX](RegionX.md) | [GitHub](https://github.com/RegionX-Labs) | ☐ | ☒ | ☒ | | [WeTEE DAO](https://www.wetee.app) | [WeTEE Network](WeTEE_Network.md) | [GitHub](https://github.com/wetee-dao) | ☐ | ☒ | ☐ | | [CoinFabrik](https://www.coinfabrik.com/) | [CoinFabrik On Ink Integration Tests 3](CoinFabrik_On_Ink_Integration_Tests_3.md) | [GitHub](https://github.com/CoinFabrik) | ☐ | ☒ | ☒ | | [Andrea Di Franco](https://github.com/andredif) | [QuantumGuard](quantum-guard.md) | [GitHub](https://github.com/andredif) | ☐ | ☐ | ☐ | From 9a908b9546c948cc4f3dd60dd27cab1350e95e2c Mon Sep 17 00:00:00 2001 From: andredif <51952457+andredif@users.noreply.github.com> Date: Mon, 18 Mar 2024 17:32:45 +0100 Subject: [PATCH 3/8] Amend request due to delivery schedule change (#2254) * QuantumGuard application submission * Pull request update * Update applications/quantum-guard.md Co-authored-by: S E R A Y A * Update applications_2/quantum-guard.md Co-authored-by: S E R A Y A * Updated_application_2nd_review * Updated_address * Amend request --------- Co-authored-by: S E R A Y A --- applications/quantum-guard.md | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/applications/quantum-guard.md b/applications/quantum-guard.md index b6f956a8c99..9bc1b4e88f3 100644 --- a/applications/quantum-guard.md +++ b/applications/quantum-guard.md @@ -79,13 +79,17 @@ The development will start with the approval of the Grant application. ### Overview * **Description** Development of QuantumGuard - MVP - Phase 0.5 -* **Total Estimated Duration:** 14 Person Weeks + +* **Total Estimated Duration:** 32 Person Weeks + * **Full-time equivalent (FTE):** 1 * **Total Costs:** 9,800 USDC ### Milestone 1 — Quantum-safe cryptographic algorithms for keypairs -- **Estimated duration:** 8 weeks + +- **Estimated duration:** 24 weeks + - **FTE:** 1 - **Costs:** 5,000 USDC @@ -100,7 +104,9 @@ The development will start with the approval of the Grant application. ### Milestone 2 — Custom browser extension using quantum-safe keypairs -- **Estimated Duration:** 6 weeks + +- **Estimated Duration:** 8 weeks + - **FTE:** 1 - **Costs:** 4,800 USD From eeb3dc596427949d528b58672e8b0fddcf61cacd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20M=C3=BCller?= Date: Tue, 19 Mar 2024 14:55:26 +0100 Subject: [PATCH 4/8] Update index.md Ssal Commods M1 and complete --- applications/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/applications/index.md b/applications/index.md index 5c3b14ada0a..bf262b5f955 100644 --- a/applications/index.md +++ b/applications/index.md @@ -80,7 +80,7 @@ Besides, **there is a clear difference between an application being accepted and | [Paraverse Foundation](https://talisman.xyz) | [Signet - Talisman](signet.md) | [GitHub](https://github.com/TalismanSociety) | ☐ | ☒ | ☐ | | [Libeccio Labs](https://github.com/LibeccioLabs) | [Tux0](tux0.md) | [GitHub](https://github.com/LibeccioLabs) | ☐ | ☐ | ☐ | | [PolkaGate](https://polkagate.xyz) | [PolkaMask](polkamask.md) | [GitHub](https://github.com/PolkaGate) | ☐ | ☒ | ☒ | -| [Mansa Capital](https://mansacapital.us/) | [Ssal](ssal-commods-dex.md) | [GitHub](https://github.com/MatteoPerona/Riso) | ☐ | ☐ | ☐ | +| [Mansa Capital](https://mansacapital.us/) | [Ssal](ssal-commods-dex.md) | [GitHub](https://github.com/MatteoPerona/Riso) | ☐ | ☒ | ☒ | | [Deitos Network](https://github.com/Deitos-Network) | [Deitos Network](Deitos_Network.md) | [GitHub](https://github.com/Deitos-Network) | ☐ | ☒ | ☐ | | [Lastic](https://www.lastic.xyz/) | [Coretime Sale Price Calculator](lastic-price-simulation-2.md) | [GitHub](https://github.com/LasticXYZ/price-simulation) | ☐ | ☒ | ☒ | | [Tokenguard.io](http://tokenguard.io/) | [Tokenguard](Tokenguard.md) | [GitHub](https://github.com/tokenguardio) | ☐ | ☐ | ☐ | From ccfcc653ff5b7a81e8c86c11fc35295680181ef8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20M=C3=BCller?= Date: Tue, 19 Mar 2024 14:59:29 +0100 Subject: [PATCH 5/8] Update index.md xNFT M1 and complete --- applications/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/applications/index.md b/applications/index.md index bf262b5f955..27e816cd686 100644 --- a/applications/index.md +++ b/applications/index.md @@ -100,7 +100,7 @@ Besides, **there is a clear difference between an application being accepted and | :------------------------------------------------------------------| :------------------------------------------------------------------------------------------------------| :------------------------------------------| :---------: | :------------: | :--------: | | [Protofire](https://protofire.io/) | [Contract Wizard](./Contract_wizard.md) | [GitHub](https://github.com/protofire/polkadot-contract-wizard/) | ☐ | ☒ | ☒ | | [ZeroDAO](https://github.com/ZeroDAO) | [Melodot](./Melodot.md) | [GitHub](https://github.com/ZeroDAO) | ☐ | ☒ | ☒ | -| [Starks](https://github.com/tur461) | [XCM tool for NFTs](./xNFT.md) | [GitHub](https://github.com/tur461) | ☐ | ☐ | ☐ | +| [Starks](https://github.com/tur461) | [XCM tool for NFTs](./xNFT.md) | [GitHub](https://github.com/tur461) | ☐ | ☒ | ☒ | | [ChainSafe](https://chainsafe.io/) | [Polkadot Snap Maintenance](./maintenance/Substratesnap_Maintenance.md) | [GitHub](https://github.com/ChainSafe/metamask-snap-polkadot) | ☐ | ☒ | ☐ | | [justmert](https://github.com/justmert) | [DOTLY: Revolutionizing Polkadot Account Statistics](./dotly.md) | [GitHub](https://github.com/justmert/dotly) | ☐ | ☒ | ☒ | | [Federico Cicciarella](https://www.linkedin.com/in/federicocicciarella/?originalSubdomain=it) | [Tracking Chain](./tracking_chain.md) | [GitHub](https://github.com/TrackingChains/TrackingChain) | ☐ | ☒ | ☒ | From bdeab93d4a93e32a96ecc9c3ead80f5d0ef073c3 Mon Sep 17 00:00:00 2001 From: Piet <75956460+PieWol@users.noreply.github.com> Date: Tue, 19 Mar 2024 15:20:37 +0100 Subject: [PATCH 6/8] confirm vested DOT (#2249) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Sebastian Müller --- .github/pull_request_template.md | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 50c9075832e..b0b61c8daed 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -15,6 +15,7 @@ - [x] The [application template](https://github.com/w3f/Grants-Program/blob/master/applications/application-template.md) has been copied and aptly renamed (`project_name.md`). - [ ] I have read the [application guidelines](https://github.com/w3f/Grants-Program/blob/master/docs/Support%20Docs/grant_guidelines_per_category.md). - [ ] Payment details have been provided (Polkadot AssetHub (DOT, USDC & USDT) address in the application and bank details via email, if applicable). +- [ ] I understand that 30% of each milestone will be paid in vested DOT, to the Polkadot AssetHub address listed in the application. - [ ] I am aware that, in order to receive a grant, I (and the entity I represent) have to successfully complete a KYC/KYB check. - [ ] The software delivered for this grant will be released under an open-source license specified in the application. - [ ] The initial PR contains only one commit (squash and force-push if needed). From f3755afd28c1f47937d3a8802a2e30af4aba46b0 Mon Sep 17 00:00:00 2001 From: Sacha Lansky <23283108+sacha-l@users.noreply.github.com> Date: Thu, 21 Mar 2024 13:37:17 +0100 Subject: [PATCH 7/8] SwarmNL (#2201) Co-authored-by: S E R A Y A --- applications/swarm-nl.md | 162 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 162 insertions(+) create mode 100644 applications/swarm-nl.md diff --git a/applications/swarm-nl.md b/applications/swarm-nl.md new file mode 100644 index 00000000000..c4f0c649538 --- /dev/null +++ b/applications/swarm-nl.md @@ -0,0 +1,162 @@ +# SwarmNL +- **Team Name:** Algorealm +- **Payment Address:** 15APyDmWBwwv8LEW8rvFpiYAUCu7u4nxKBd7oGp4JR6nSrnE (Polkadot AssetHub) +- **Level:** 2 + +## Project Overview :page_facing_up: + +### Overview + +SwarmNL is a configurable P2P networking layer designed to be used in distributed system architectures that require data transfer solutions for off-chain communication in a scalable way. + +Its goal is to provide a lightweight and configurable P2P networking layer for web applications designed to interact with on-chain data. + +### Project Details + +Algorealm has been building [SamaritanDB](https://algorealm.gitbook.io/samaritandb/), a database management system that allows app users to share parts of their personal data with applications on the internet while retaining control of what data they share. To achieve this, it uses Kilt DIDs and relies on an ink! smart contract to enforce access control. + +As we started building the [SamaritanDB prototype](https://github.com/thewoodfish/samaritan-db) we realized that the networking layer will be a critical building block that can be abstracted into its own subsystem. This gave birth to the idea of creating SwarmNL: a networking layer that can be easily integrated into existing infrastructure without deep technical overhead and knowledge. As a standalone library, it will help teams building applications that require networking to move faster, reliably. + +Our goal is to build this for our own purposes and to make it available for any other project to use. Here's a diagram illustrating the integration of SwarmNL to SamaritanDB: + +![SwarmNL and SamaritanDB](https://raw.githubusercontent.com/thewoodfish/encode-ink/main/SwarmNL%20and%20SamDB.png) + + +### Features + +After some research, here are the features we decided to focus on. + +* **Node Communication** -- SwarmNL enables P2P node communication by providing an interface for the following: + * **Node Configuration** -- SwarmNL would provide a simple interface to configure the node and specify parameters to dictate its behaviour. This includes: + * Selection and configuration of the transport layers to be supported by the node. + * Selection of the cryptographic keypair to use for identity generation e.g Edwards. + * Storage and retrieval of keypair locally. + * PeerID and multiaddress generation. + * Protocol specification and handlers. + * Event handlers for network events and logging. + + * **Gossiping** -- SwarmNL will implement the [Gossipsub 1.1](https://github.com/libp2p/specs/blob/master/pubsub/gossipsub/gossipsub-v1.1.md) protocol, specified by the [libp2p spec](https://github.com/libp2p/specs). This would be easily configurable to accommodate varying and peculiar network conditions. We will achieve this by leveraging and enhancing exiting gossipsub libp2p strategies for more specialized use cases. + While libp2p handles liveness through mechanisms like ping/heartbeat/keep-alive, our library extends this by offering additional strategies to address scenarios beyond mere liveness detection. For instance, consider the following use cases: + + - Node Failure Handling: In the event of a node going down, SwarmNL provides customizable options for developers to define reconnection strategies, automatic peer discovery, and failover mechanisms. This ensures that the network can gracefully adapt to failures without compromising overall system performance. + - Sharding Support: For scenarios where nodes are dedicated to specific shards or portions of the network, our library will offer functionality to seamlessly integrate and manage such specialised nodes. This allows for more fine-grained control over the network's structure, enabling efficient scaling and resource allocation. + - Replication Nodes: In cases where replication nodes are required for data redundancy, our library facilitates the addition of nodes dedicated solely to replication tasks. This ensures that data is appropriately distributed and replicated across the network. + +* **Scaling** -- SwarmNL needs to efficiently handle a growing (or shrinking) number of nodes while maintaining performance and reliability. Here's what we plan to implement to this effect: + * **Sharding** -- implementation of a flexible generic sharding protocol that allows application specify configurations like sharding hash functions and locations for shards. + * **Data Forwarding** -- definition of a protocol for forwarding messages between nodes in different shards and establishment of efficient routing mechanisms for inter-shard communication. + * **Fault Tolerance** -- implementation of fault-tolerant mechanisms for detecting (and recovering from) node failures. This might involve redundancy, node replication, erasure encoding/decoding or re-routing strategies. + +* **IPFS**: + * **Upload** -- provision of interfaces to upload to IPFS, pin on current node and post arbitrary data to remote servers. Encryption is also easily pluggable and will be provided. + * **Download** -- retrieval and possible decryption of data from the IPFS network. + + +#### Technology Stack + +* Libp2p +* Rust + + +#### What is not included in SwarmNL +SwarmNL will not be involved in providing a storage solution. Because SwarmNL will be generic over the storage layer, it will be possible to easily plug in any storage interface in a flexible and configurable way. + +Storage maintained by the library will mostly be in memory with the exception of config files and other node state keeping data. + +### Ecosystem Fit +- Where and how does your project fit into the ecosystem? + - SwarmNL can be used by applications or projects that require a bespoke decentralized communication layer for transporting and exchanging off-chain data. + - Examples could include Content Delivery Networks (CDNs); distributed storage systems; IoT (Internet of Things); multiplayer online games; and file hosting and sharing systems +- Who is your target audience (parachain/dapp/wallet/UI developers, designers, your own user base, some dapp's userbase, yourself)? + - Our priority is to build this for [SamaritanDB](https://github.com/thewoodfish/samaritan-db). However, SwarmNL will be generic enough to be used by any developer in the ecosystem that would require a primitive networking layer +- What need(s) does your project meet? + - It provides an open-source and flexible communication layer for distributed networking and off-chain data exchange. +- Are there any other projects similar to yours in the Substrate / Polkadot / Kusama ecosystem? + - While projects like [Crust network](https://crust.network/) provide a full stack decentralized cloud storage solution for the ecosystem as a dedicated blockchain with an opinionated programming interface, SwarmNL is one subsystem that can be used as a core networking component to build all sorts of decentralized applications, including a bespoke storage solution. Other initiatives like [Polkadot Native Storage](https://forum.polkadot.network/t/polkadot-native-storage/4551) who also piggy back on existing libp2p networking implementations differ as SwarmNL provides the pluggable and interoperable networking layer only. + +## Team :busts_in_silhouette: + +### Team members + +* Adedeji Adebayo (Engineering Lead and Core Developer) +* Sacha Lansky (Project Lead, Documentation and Testing) + + +### Contact + +- **Contact Name:** Sacha Lansky +- **Contact Email:** alexander.lansky@gmail.com + +### Legal Structure + +- **Registered Address:** n/a +- **Registered Legal Entity:** n/a + +### Team's experience + +Adedeji Adebayo is a dynamic and inquisitive programmer, spanning over five years of experience in web development, systems software, and blockchain technologies and is also the founder of Algorealm. His notable achievements include securing a position among the top three winners in the Web3 and Tooling category of the [Polkadot Hackathon: North America Edition](https://polkadot-na.devpost.com). Additionally, he emerged as the sole winner in the KILT category during the [Polkadot Hackathon: Europe Edition](https://www.polkadotglobalseries.com/europe/), where he presented a solution for property management issues in West Africa. + +Sacha Lansky started his journey into the Polkadot ecosystem in 2020 and joined Parity to lead developer advocate related activities in 2021. Since then he has written a number of guides and tutorials to help newcomers learn how to build on Polkadot, with a focus on Substrate. He's launched initiatives such as the Substrate Newsletter, Substrate Seminar, SDK Unwinds as well as played a key role in the content launch for the first wave of the Polkadot Blockchain Academy. + +Sacha and Adedeji met during a Polkadot hackathon back in 2022 where Sacha was his hackathon mentor at the time and helped him flesh out the vision for realising SamaritanDB. Since then, they have been iterating on the required infrastructure to be able to create a decentralized operating system for building applications powered by SamaritanDB. + +### Team Code Repos + +The SwarmNL Github repository: https://github.com/algorealminc/SwarmNL + +### Team Github Profiles + +- https://github.com/thewoodfish +- https://github.com/sacha-l + +## Development Status :open_book: + +We have built a PoC for SamaritanDB (see [the Github repo here](https://github.com/thewoodfish/samaritandb-proto1)). A very small inflexible version of SwarmNL was used in the development of the PoC, as an inclusive non-distinguishable part of the system. This grant will help us work towards isolating and making this component robust, configurable and pluggable for any project. + +## Development Roadmap :nut_and_bolt: +### Overview + +- **Total Estimated Duration:** 3 months +- **Full-Time Equivalent (FTE):** 1 +- **Total Costs:** $24,000 + +### Milestone 1 + +- **Estimated duration:** 1.5 months +- **FTE:** 1 +- **Costs:** $12,000 + +| Number | Deliverable | Specification | +| -----: | ----------- | ------------- | +| **0a.** | License | Apache 2.0 | +| **0b.** | Documentation | We will provide both **inline documentation** of the code and a basic **tutorial** that explains how a user can integrate SwarmNL and configure nodes on the network. | +| **0c.** | Testing and Testing Guide | Core functions will be fully covered by comprehensive unit tests to ensure functionality and robustness. In the guide, we will describe how to run these tests. | +| **0d.** | Docker | We will provide a Dockerfile(s) that can be used to test all the functionality delivered with this milestone. | +| 1. | SwarmNL configuration module | Implementation of the configuration interfaces to define the behaviour of the nodes and the network. | +| 2. | Gossipsub | Implementation of the gossipsub communication algorithm and configurable interfaces for application level data filtering and authentication. | + +### Milestone 2 + +- **Estimated Duration:** 1.5 months (6 weeks) +- **FTE:** 1 +- **Costs:** $12,000 + +| Number | Deliverable | Specification | +| -----: | ----------- | ------------- | +| **0a.** | License | Apache 2.0 | +| **0b.** | Documentation | We will provide both **inline documentation** of the code and a basic **tutorial** that explains how a user can add new nodes to SwarmNL. | +| **0c.** | Testing and Testing Guide | Core functions will be fully covered by comprehensive unit tests to ensure functionality and robustness. In the guide, we will describe how to run these tests. | +| **0d.** | Docker | We will provide a Dockerfile(s) that can be used to test all the functionality delivered with this milestone. | +| 0e. | Demo API usage | Showcase API usage with short guides using different configurations. | +| 1. | Scaling | Implementation of sharding, data-forwarding and fault-tolerant algorithms into SwarmNL. | +| 2. | IPFS integration | Implementation of interfaces to upload, download and pin IPFS files. | +| 3. | Additional Extendability | Implementation of interfaces to POST arbitrary data to remote servers. | + + +## Future Plans + +With milestones 1 and 2 completed, we plan to continue the development of SamaritanDB and launch an MVP that we will use to roll out the first wave of applications powered by SamaritanDB. + +## Additional Information :heavy_plus_sign: + +**How did you hear about the Grants Program?** Personal recommendation. From d81708b78c9422e9effd8ed8b00034c3c85620e7 Mon Sep 17 00:00:00 2001 From: Matteo Perona Date: Fri, 22 Mar 2024 06:23:44 -0700 Subject: [PATCH 8/8] changed payment info (#2257) --- applications/ssal-commods-dex.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/applications/ssal-commods-dex.md b/applications/ssal-commods-dex.md index cdc3de728d2..9843e39ebbe 100644 --- a/applications/ssal-commods-dex.md +++ b/applications/ssal-commods-dex.md @@ -1,7 +1,7 @@ # Ssal: Ink Commodities Exchange - **Team Name:** Mansa Capital - **Product Name:** Ssal -- **Payment Address:** 15JQDAHWTbWju9RWQfP7EQvNV9skCvm5xh69Mb5J5YMxY8Hm (USDT) +- **Payment Address:** Fiat 15.03.2024, 15:30 - **[Level](https://github.com/w3f/Grants-Program/tree/master#level_slider-levels):** 1 ## Project Overview :page_facing_up: