-Number - | -Deliverable - | -Specification - | -
0a. - | -License - | -Apache 2.0 - | -
0b. - | -Documentation - | -We will provide inline documentation, video, medium articles & start creating the lightpaper of the project. - | -
0c. - | -Testing Guide - | -The code will have proper unit-test and guid coverage for Koi Metaverse modules - | -
1 - | -smart contract: NFT Lottery Draw - | -NFT lottery contract include: lottery function implemented by ink - | -
2 - | -smart contract: NFT Auction Sale - | -NFT auction contract include: fishList, fishGeneList, bid, refreshFishList, getMyFish functions implemented by ink - | -
3. - | -smart contract: NFT Minting - | -NFT minting contract include: myNft, getNft, earned, stakeNft, withdrawNft, withdrawNftAll, getReward functions implemented by ink - | -
4. - | -smart contract: Fish - | -fish contract include: gene, birthday, power, reproduction, growth implemented by ink - | -
5. - | -smart contract: Fish Tank - | -fish tank contract include: capacity, totalPower, fishList implemented by ink - | -
6a. - | -UI mock-ups - | -The UI design of product frontend and product workflow. - | -
6b. - | -Fish Genes and Images - | -The UI design and gene system of fish NFTs. - | -
7. - | -Front end - | -Implement web front-end based on react.js and polkadot.js. Modules include: NFT Lottery Draw, NFT Auction Sale, NFT Minting, Fish and Fish Tank. Fish Mining, Fish Breeding. - | -
8. - | -Test - | -We will provide a dockerfile to demonstrate the usage of our modules. - | -
+ +
+ +#### What your project is not or will not provide or implement +We have structured our implementation into 3 milestones. In this grant our focus is to develop a first version which would implement pallet-contract to calculate the staking score in simplistic yet efficient way with above mentioned fields. It would handle +* Stake score update when deployer deploys contract +* Stake score update when a user calls contract function or other contracts call the contract function +* Integration with proof of stake in substrate. + +We will continue to research as we implement, not all vulnerabilities might be handled in the very first version with above functionalities. But we will extend it to our future plans or extend the grants after accomplishing the milestones and scope in this proposal. + +### Ecosystem Fit +Our project integrates with the Substrate framework, providing a modular and adaptable foundation for our innovative consensus mechanism. This positions us for potential integration into the broader Polkadot ecosystem, aligning with the vision of cross-chain interoperability through parachains. + + +#### Target Audience +Our primary target audience includes developers within the blockchain space, particularly those focused on Polkadot ink! ecosystem and its developers. Additionally, our project aims to serve the broader community of blockchain enthusiasts seeking to engage with a dynamic and secure consensus mechanism. + +#### What need(s) does your project meet? +Our project addresses the critical need for a consensus mechanism that is developer-centric and tailored to the nuances of smart contract interactions. By incentivizing developers through our Proof of Contract Stake (PoCS) model, we empower them to actively participate in securing the network. This not only enhances network security but also fosters a more collaborative and inclusive blockchain ecosystem. Furthermore, our integration with Substrate and potential linkage to the Polkadot network addresses the need for cross-chain interoperability, opening up a realm of possibilities for decentralized applications and services. + +#### Similar Projects (How it is different) +There are no similar projects in polkadot as well as other blockchains as of now since its proposing a new staking consensus. + +## Team :busts_in_silhouette: + +### Team members + +- Team Leader: Purva Chaudhari +- Team Members : Ajay Joshua (Development) , Joby Reuben (Research) + + +### Contact + +- **Contact Name:** Purva Chaudhari +- **Contact Email:** puc7@pitt.edu + +### Legal Structure + +- **Registered Address:** Bangalore, India - 560016 +- **Registered Legal Entity:** Auguth Research Foundation (CIN : U88900KA2024NPL185633) + +### Team's experience + +- **Purva Chaudhari**: Purva is a Masters Student in Computer Science at University of Pittsburgh. Her coursework is primarily includes on subjects of systems and cryptography. Her thesis is focused in blockchain (decentralised voting system). Prior to it, she has over 2 years of experience in working as a blockchain developer. After completing her bachelers in CS, she worked at Witness Chain for an year as backend blockchain engineer. She has experience in ethereum and solana development. She has also been part of Nethermind and Summer of Bitcoin internships during her bachelors. + +- **Ajay Joshua**: Ajay is a B.Tech graduate in Robotics and Automation. He is well-versed in Solidity with three years of practical experience in developing various web3 projects. During his coursework, Ajay has also worked on various projects, in brain-computer interface, AI-based power management system and distributed node-based space communication. His skills span across blockchain development and cybersecurity. + +- **Joby Reuben**: Joby is a the research lead. He is a dedicated researcher and has been delving deep in blockchains for over 2 years. He has profound understanding of Layer 1 protocols and is passionate to design Layer 1 consensus protocols. Currently he rewriting Ethereum yellow paper for developers as an open contribution. His elaborate research experience and realization of current shortcomings of blockchain has led to the idea of developing first developer incentivising consensus which we look forward to bring into reality. + +Overall we are a team of 6 members, 3 of which are core developers as mentioned above, one assists on basis of task and other 2 handle the non-technical work. + +### Team Code Repos + +- https://github.com/Purva-Chaudhari +- https://github.com/I-Corinthian +- https://github.com/jobyreuben + +### Team LinkedIn Profiles + +- https://www.linkedin.com/in/purva-chaudhari-02b12b178/ +- https://www.linkedin.com/in/ajay-joshua-a8a250176/ +- https://www.linkedin.com/in/jobyreuben + +## Development Roadmap :nut_and_bolt: + +### Overview + +- **Total Estimated Duration:** 15 weeks +- **Full-Time Equivalent (FTE):** 3-3.5 +- **Total Costs:** 25,000 USD + +### Milestone 1 - Pallet Contract Update + +- **Estimated duration:** 4 weeks +- **FTE:** 3-3.5 +- **Costs:** 7,000 USD + +| Number | Deliverable | Specification | +|--------|:-------------------------:|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| 0a. | License | Apache 2.0 | +| 0b. | Documentation | We will provide both inline documentation of the code and a basic tutorial to test out the additions | +| 0c. | Testing | Unit testing and testing tutorial | +| 0d. | Docker | Create docker image with updated pallets +| 0e. | Article | Publish article for delineating the additions and workflow of consensus | | +| 1. | Modified Substrate pallet-contracts for PoCS | 1. Try tight coupling of pallet-contracts with pallet-staking for interoperability of the pallets for PoCS consensus.+ +
+ +- **Partitioning UI** will offer users a convenient method for splitting their region. The UI will visually represent the region as a timeline, highlighting all potential pivotal points available for partitioning. + + The Partitioning UI visualizes the region as a timeline and divides it into the selected TIME UNIT. This allows the user to easily determine the pivot point. + ++ +
+ +- **Interlacing UI** will also allow users to easily interlace the region they own. The user will have the option to specify the region core mask as a fraction. + ++ +
+ +- **Naming Regions & Tasks**: Users will have the option to assign names to their regions and tasks, making it simple to differentiate them. + +- **Assignment UI** will make it straightforward for users to allocate a task to their owned regions. The UI will display a dropdown menu containing all the tasks that the user has published to the relay chain, simplifying the selection process. + ++ +
+ +- **Transfer** UI will offer a straightforward modal for users to perform transfers. + ++ +
+ +#### Secondary Market + +Coretime is a resource that goes to waste if not utilized during its intended time. When you purchase a core for a month, it means you can use a maximum of one core at any given moment during that specific time period. If the core is not utilized, the Coretime is essentially squandered. + +After buying Coretime during the bulk period, one may realize that the purchased Coretime is either too much or too little for the intended use. The secondary market assists these individuals and teams in rectifying their mistakes by enabling them to sell or buy more Coretime. + +Coretime can be partitioned and interlaced, meaning most of the Coretime on sale will hardly be the same. For this reason, we are going to utilize the order book model. + +The seller will need to specify the price for the entire region, and based on that, the contract will calculate the price of one bit, which is equivalent to 1/80th of the price of the entire region. + +This bit-based valuation means that the total value of the Coretime owned by the seller will decrease every time the smallest computation unit is not used. From here, we can conclude that the price of the region on sale is dynamic. + +**The steps of selling and buying Coretime:** + +1. A user decides to sell one of their regions. + - The user defines the price that they intend to sell the region for. + - The contract calculates the price per bit. +2. Another user decides to buy some Coretime. + - They are browsing the market and have decided they want to buy a specific region. + - The user will have to pay the price for the region; however, this won't be the price of the entire region. The price will be defined by `remaining_smallest_units * price_per_unit`. +3. The user pays the price, the seller receives the paid amount, and the buyer receives the region. + +If a user doesn't want to buy the entire region but only a part of it, the buyer will need to specify which parts of the region they want and provide the steps to create a region with the properties they desire. This way, the user pays only for the portion of the region they wish to acquire. +We refer to this feature as **Region Derivation**. It will give buyers more options when purchasing Coretime, making it easier to meet their specific needs. This feature is not implemented as part of this milestone, but is part of our future plans. + +**Defining the price of Coretime** + +The price of Coretime will be highly influenced by supply and demand. Since we are constructing a market with an NFT order book model, users will have the authority to establish the price of the Coretime they intend to sell. + +Depending on whether the seller owns an entire core, only partitioned parts, or has it interlaced, the selling price of the Coretime will be affected. + +As mentioned earlier, we will determine the pricing of a region at a bit level. This approach proves particularly useful because it allows us to establish a pricing structure that decreases when Coretime is wasted. + +In situations where the buyer's instructions involve partitioning the region and performing interlacing on the partitioned region, we will determine the price based on the bit price of the resulting partitioned region. + +This approach allows us to easily calculate the price of the region the buyer intends to purchase, even in situations where the buyer requires multiple instructions to be executed on the region. + +**Formula to calculate the price when partitioning:** +`price = bit_price * pivot_defined_as_bit` + +**Formula to calculate the price when interlacing:** +`price = bit_price * active_bits` + +**Market Architecture** + +The Coretime marketplace can be implemented in four different ways, which include: + +1. Ink! smart contract +2. Solidity smart contract +3. Actor (Not yet implemented in Polkadot/Kusama) +4. Parachain + +From these options, we've selected the Ink! smart contract as our initial approach. As the project evolves, we anticipate transitioning to either an actor or a separate parachain to access greater possibilities to improve our services. + +**Implementation Requirements** + +We came up with an implementation design that makes it possible to develop the market as an ink! smart contract located on a contracts parachain in the Polkadot/Kusama ecosystem. +Our solution has very minimal and reasonable assumptions required to make this possible. + +Our sole assumption is that the concepts outlined in the Agile Coretime RFC are implemented in Polkadot/Kusama. We do not have any specific assumptions concerning the XCM configuration on the Coretime parachain to make this work. We only require that the Coretime parachain allows basic reserve transfers. + +**Region NFT Contract** + +To create a marketplace on a contracts parachain, we'll need an NFT region contract. We'll use the [Openbrush](https://openbrush.brushfam.io/) psp34 contract as a starting point for the code we develop. + +**Coretime Market UI** + +This section outlines the design of the Coretime market developed as part of this proposal. If additional relevant data is identified, we will expand upon the design. + +- The main market dashboard allows users to browse and filter, making it easier for them to find the region they are looking for. + + Users will have the flexibility to choose a time unit for inputting values, which will serve as the basis for region filtering. The maximum time unit available will be a day, allowing users to input values using a calendar input field. For other durations, users can simply provide numeric input in a designated field. + + The Core ownership field will be represented as a percentage range of the total Coretime ownership that the region has on a specific core. + ++ +
+ +- The UI for performing cross-chain region transfers which will be utilized when transferring regions between the Coretime chain and the smart contract chain where RegionX is deployed, or vice versa. ++ +
+ +- The UI for selling regions will become accessible to users once they choose one of their regions from the Region Dashboard. Any region listed for sale must be located on the smart contract parachain where RegionX is situated. In situations where the region is on the Coretime chain, users should first utilize the Cross-Chain UI for transferring the region. ++ +
+ +### Ecosystem Fit + +RegionX will offer a Coretime market and a suite of tools, making it easy for teams to develop their projects on Polkadot or Kusama. This project will empower smaller teams by providing flexible options to purchase regions from the market. + +The xcRegion and Coretime market contracts are designed for use by future teams interested in developing Coretime-related projects. + +[Lastic](https://github.com/w3f/Grants-Program/pull/2008) is a project in the Polkadot ecosystem with similar goals to ours. However, we have already defined many of our future ideas, which they have not yet mentioned implementing into their project. We have also developed a feasible solution for creating a flexible Coretime market with a dynamic pricing model. +Given that the contracts developed as part of this grant are intended for use by many future projects, we would like Lastic to consider utilizing these contracts. As briefly mentioned in the _Future Plans_ section, we are also in the process of designing an economic model to incentivize the use of the same Coretime market. We believe this can foster healthy competition. + +## Team :busts_in_silhouette: + +### Team members + +- Sergej Sakac +- Oliver Lim + +### Contact + +- **Contact Name:** Sergej Sakac +- **Contact Email:** sakacszergej@gmail.com +- **Website:** https://regionx.tech + +### Legal Structure + +- **Registered Address:** Kanalska 7 Novi Sad Serbia +- **Registered Legal Entity:** MASTER UNION LLC. + +### Team's experience + +Sergej is a member of the Polkadot Fellowship. He has been an external core contributor on substrate and polkadot for more than a year now. Sergej is also a recent Engineering alumni of the Polkadot Blockchain Academy (PBA) held in Berkeley. + +Sergej has previously worked on a project that applied for a W3F. The details of the project can be found [here](https://github.com/Szegoo/Grants-Program/blob/42b031052c16670685c65a409d91779d0069903a/applications/Dotflow.md). + +Oliver is a full stack blockchain developer who was involved in 3 projects granted by the Web3 Foundation. He worked with Sergej on [Dotflow](https://github.com/thedotflow). + +Some of the past projects Oliver has worked on are [fs-dapp](https://github.com/fair-squares/fs-dapp), [imbue-frontend](https://github.com/imbuenetwork/imbue-frontend), [dotflow](https://github.com/TheDotflow/dotflow-ui) + +### Team Code Repos + +Github organization: https://github.com/RegionX-Labs + +Github profiles of team mebers: + +- https://github.com/Szegoo +- https://github.com/cuteolaf + +### Team LinkedIn Profiles (if available) + +- https://www.linkedin.com/in/sergej-sakac-334a47252 +- https://www.linkedin.com/in/cuteolaf + +## Development Roadmap :nut_and_bolt: + +### Overview + +- **Total Estimated Duration:** 4 months +- **FTE:** 2 +- **Total Costs:** 30,000 USD + +### Milestone 1 - Coretime UI & xcRegions + +- **Estimated duration:** 1 month +- **FTE:** 2 +- **Costs:** 12,000 USD + +| Number | Deliverable | Specification | +| ------: | ------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| **0a.** | License | GPLv3 | +| **0b.** | Documentation | We will create documentation that thoroughly explains all aspects of the UI. Our goal is to design the UI to be as intuitive as possible, so users require minimal familiarization with the project. | +| **0c.** | Testing and Testing Guide | All interactions with the Coretime parachain will undergo comprehensive testing to guarantee a seamless experience for users when using the RegionX UI. We will be running a local Zombienet network to simulate the existence of a Coretime parachain. | +| **0d.** | Docker | We will provide a Dockerfile that will set up and run the RegionX Coretime UI. | +| 0e. | Article | We'll compose a Medium article to explain the UI abstractions we've introduced around Coretime, offering insights into the capabilities achievable through the utilization of the Coretime UI. | +| 1. | Mock Coretime Parachain runtime | We will establish a parachain dedicated to testing the Coretime abstractions and all future milestones. Essentially, this involves creating a parachain runtime that implements the `pallet-broker`. This parachain will simulate the Coretime chain. | +| 2. | Simulated Local Network | Using the mock Coretime parachain, we will create a local Zombienet network consisting of a relay chain, Coretime chain, and a smart contract chain for the Coretime market. | +| 3. | Coretime UI | We will implement all the sections and components described in the _Coretime UI_ section above. To summarize, this will consist of the following components: region dashboard, partitioning UI, interlacing UI, naming regions & tasks components, assignment UI and transfer UI | +| 4. | Cross-chain Regions | As described in the previous sections, we will create an ink! smart contract that will be representing regions on the contracts parachain where we choose to deploy RegionX. This essentially means that users will have the capability to transfer their regions from the Coretime chain to another parachain. This NFT contract will be expanded to include the option for the region owner to initially set the region's end. The contract will perform certain sanity checks, although it's important to note that the accuracy of this information is not guaranteed. The UI client will be responsible for ensuring the correctness of this information when querying the region. | +| 5. | xcRegion developer documentation | We will create documentation to explain how to easily integrate the xcRegion contract developed in this milestone. Our goal is to enable many teams in the future to integrate the contracts that are developed as part of this proposal. | + +### Milestone 2 - xcRegions UI & Coretime market contract + +- **Estimated duration:** 1.5 month +- **FTE:** 2 +- **Costs:** 18,000 USD + +| Number | Deliverable | Specification | +| ------: | ------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| **0a.** | License | GPLv3 | +| **0b.** | Documentation | The ink! smart contract will be well-written and documented. We will also create documentation that thoroughly explains all aspects of the UI. Our goal is to design the UI to be as intuitive as possible, so users require minimal familiarization with the project. | +| **0c.** | Testing and Testing Guide | The ink! smart contract will undergo thorough testing, including e2e testing with a simulated zombienet network, to ensure maximum correctness. All UI interactions will undergo comprehensive testing to guarantee a seamless experience for users when using the RegionX UI. | +| **0d.** | Docker | We will provide Dockerfiles for the ink! smart contracts that will set up the environment and execute the contract tests. Additionally, we will offer a Dockerfile that will configure and run the RegionX UI. | +| 0e. | Article | We will compose a Medium article to offer a high-level explanation of the project's architecture. Within this article, we will clarify the significance of cross-chain region transfers and their crucial role in the Coretime market. | +| 1. | Cross-chain Transfer UI | We will create the UI for transferring the region NFTs from the Coretime parachain to the contracts parachain and vice versa. | +| 2. | Coretime Market Dashboard UI | In this milestone, we will also develop the Coretime Market dashboard UI. This section will be similar to the 'My Regions' dashboard, with the difference that it will display all the valid regions from the market instead of the regions owned by the user. Additionally, it will provide users with relevant information such as the cost of each region. The UI will also provide the option to buy or sell a region on the market. | +| 3. | Coretime Market contract | We will develop the Coretime market as an ink! smart contract, as described above in the _Secondary Market_ section. This contract will use the xcRegions contract developed in the previous milestone. It will introduce listing functionality, enabling sellers to set the price for their regions. The contract will implement a bit-level pricing model, which will gradually reduce the cost of regions over time as the region remains unused. When a buyer acquires a listed region, they will only be charged for the Coretime they are going to receive thanks to the dynamic pricing model. | +| 4. | Coretime Market developer documentation | We will create documentation to explain how to easily integrate the market contract developed in this milestone. Our goal is to enable many teams in the future to integrate the contracts that are developed as part of this proposal. | + +## Future Plans + +As mentioned at the beginning of the project details, this project consists of two other parts that are not developed as part of this application. The next describes the future plans categorized into these components. + +### Coretime Market + +As mentioned in the proposal we intend to further implement the **Region Derivation** feature. This will allow users to buy only a portion of the region that is being listed on sale. + +We also plan to finish the Coretime market UI, which will include more user-friendly region search and the ability to purchase portions of listed regions directly through the UI. + +Our plan is to have the market contract used by many other projects in the future. Since it would be highly beneficial for greater liquidity to utilize the same contract and not have many deployed, we plan to incorporate an economic model that incentivizes each of the projects using the same Coretime market contract. + +In the future, we also plan to transition from an Ink! contract to a parachain. This will provide us with greater flexibility over XCM, improved performance, and the possibility to more easily integrate with other pallets. Thanks to the greater flexibility on the parachain runtime side, in comparison to a contract, we have the potential to add a totally new way of buying Coretime. This would be possible by enabling users to pool funds, pre-define the ownership, and directly purchase a region from the Bulk market. + +### Data Analytics + +This component will provide users with the relevant information they need to better understand the Coretime market, empowering them to make informed decisions when buying or selling Cores. + +One of the pieces of data that will be displayed here is Coretime utilization. As a small prior experiment, we have created the following website that tracks the weight utilization from its maximum potential of each Polkadot and Kusama parachain: https://polkadot-weigher.com [twitter post](https://x.com/SakacSergej/status/1714270223489245505?s=20) + +### Developer Hub + +The developer hub will assist teams that have deployed tasks on Polkadot or Kusama in understanding their Coretime usage better. This is accomplished by providing a service of tracking Coretime consumption over time and presenting the data in graph form for the team. +In the developer hub, users can register custom KPIs and use built-in ones. By utilizing KPIs along with previous months' data, we could potentially create an advisor to suggest the ideal Coretime allocation. + +## Additional Information :heavy_plus_sign: + +**How did you hear about the Grants Program?** GitHub diff --git a/applications/Relation-Graph.md b/applications/Relation-Graph.md index 083b9f997ee..bb828f657ba 100644 --- a/applications/Relation-Graph.md +++ b/applications/Relation-Graph.md @@ -122,7 +122,7 @@ curl -H "Content-Type: application/json" \ - **Contact Name:** Joe Guo - **Contact Email:** pikajoe@relationlabs.ai -- **Website:**