From 27e03a755b110f559f6a2bedccf5db729249aaf7 Mon Sep 17 00:00:00 2001 From: Aurora Poppyseed <30662672+poppyseedDev@users.noreply.github.com> Date: Wed, 24 Jan 2024 09:28:36 +0100 Subject: [PATCH] Lastic Coretime Indexer + Visualizations (#2167) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Sebastian Müller --- applications/lastic-grant3.md | 300 ++++++++++++++++++++++++++++++++++ 1 file changed, 300 insertions(+) create mode 100644 applications/lastic-grant3.md diff --git a/applications/lastic-grant3.md b/applications/lastic-grant3.md new file mode 100644 index 00000000000..3be5f55b160 --- /dev/null +++ b/applications/lastic-grant3.md @@ -0,0 +1,300 @@ +# Lastic - Grant 3 - Indexing Coretime Chain with Subsquid and Graph Implementation + +- **Team Name:** Lastic +- **Payment Address:** 16Jbt5zru6XdUx1jYRV8AZtGk76ujtUNdd1UVWVVkVvGZ31L (USDT) +- **[Level](https://github.com/w3f/Grants-Program/tree/master#level_slider-levels):** 2 + +> :exclamation: *The combination of your GitHub account submitting the application and the payment address above will be your unique identifier during the program. Please keep them safe.* +## Project Overview :page_facing_up: + +### Overview + +- Building on the success of our first grant, we are now proposing a project to focus on indexing the Coretime Chain using Subsquid and implementing graphs for an insightful overview. +- Our goal is to build the foundations of a premier user experience by providing a comprehensive and interactive visualization of the Coretime Chain, Coretime data from the Relay Chain, and leveraging the power of graphs to offer a deeper understanding of data and trends. We will build this for Rococo in preparation for the launch of Agile Coretime on Kusama and Polkadot. + +### Project Details + +For this grant, we will concentrate on the following key areas: + +1. **Indexing the Coretime Chain with Subsquid**: We will utilize Subsquid to index the Coretime Chain. This will involve running the Substrate code locally and setting up the indexing framework. Our aim is to ensure that data from the Coretime Chain is accurately and efficiently indexed, providing a solid foundation for data analysis and visualization. + +2. **Indexing Coretime-relevant actions of the Relay Chain with Subsquid**: We will utilize Subsquid to index the Coretime-relevant actions of the Relay Chain. This will involve running the Substrate code locally and setting up the indexing framework. Our aim is to ensure that coretime data from the Relay Chain is accurately and efficiently indexed, providing a solid foundation for data analysis and visualization. + +3. **Implementing Graphs for Visualization**: We plan to develop a series of interactive graphs that will offer users a comprehensive view of the Coretime Chain. These graphs will be designed to display various metrics and trends, providing users with valuable insights into the chain's performance and activities. + +### Ecosystem Fit + +- **Role in the Ecosystem**: Lastic seamlessly integrates within the Polkadot ecosystem, offering users an intuitive interface to assess the real-time status of coretime. This includes insights into available cores, owned cores, sales prospects for coretime, task allocations, newly created regions, regions within the instantaneous coretime pool, and transactions related to instantaneous coretime. + +- **Target Audience**: Our primary user base encompasses: + - Parachain teams looking for blockspace to expand or optimize their projects. + - dApp developers aiming to ensure smooth and scalable operations. + - Smart contract developers seeking efficient blockspace management. + - Collators and validators striving for enhanced network optimization. + - Coretime providers looking for a transparent space to offer their services. + - Polkadot analysts and analytics providers in need of real-time coretime data. + - MEV actors aiming to maximize their strategies. + - DOT holders keen on understanding and optimizing their blockspace assets. + +- **Addressing the Needs**: The Lastic UI is meticulously designed to cater to users desiring a simplified yet comprehensive overview of the coretime landscape on Polkadot. In the broader vision, along with providing a better user experience for those looking to buy Bulk and Instantanious Coretime, Lastic plans to pioneer a robust secondary marketplace for Polkadot's blockspace. This platform will facilitate the buying and selling of blockspace, supporting projects that need expansion or those that have excess blockspace to offer. + +- **Comparison to Existing Solutions**: When evaluating the existing landscape within the Substrate/Polkadot/Kusama ecosystem, we found no projects that are currently in development with Lastic's vision or offerings, making our initiative unique and essential. + +## Team :busts_in_silhouette: + +### Team members + +- Phil Lucsok (aka Asynchronous Phil) +- Aurora Makovac (aka Aurora Poppyseed) +- Pierina Ponce + +### Contact + +- **Contact Name:** Phil Lucsok, Aurora Poppyseed, Pierina Ponce +- **Contact Email:** plucsok@gmail.coml, aurora.makovac@gmail.com, pierinaponce1993@gmail.com +- **Website:** [lastic.xyz](https://www.lastic.xyz/) + +### Legal Structure + +- **Registered Address:** Private +- **Registered Legal Entity:** In progress + +### Team's experience + +#### **Phil Lucsok**: +Phil began his career in web3 as a marketing and communications manager for a Bitcoin startup in Berlin in 2013 called [BitcoinsBerlin](https://web.archive.org/web/20220707055043/https://bitcoinsberlin.com/). There, he created marketing campaigns for multiple products including: +- [All4BTC](https://all4btc.com/) - a one-stop shop for purchasing anything on Amazon or eBay with bitcoin +- Bills4BTC (later [Bitwala](https://bitwala.com/), Nuri) - a SEPA-compliant payment method for holders of Bitcoin for regular payments +- e4BTC - an electronics shop supporting purchases in Bitcoin + +After this, he worked for 3.5 years at [ResearchGate](https://www.researchgate.net/), a web2 social media platform for scientific researchers, where he learned skills in Product Management, Product Analytics, UX development and copywriting and design, and industry-standard growth practices. + +In late 2017, Phil joined Parity Technologies to lead technical communications on Ethereum and Polkadot. There he worked closely with developers to create promotional content for open-source products including Parity Ethereum, Parity Signer, Polkadot.js. It was between 2018 and 2020 where he represented Parity in Ethereum governance to help recover the stuck funds from the November 2017 multisig hack. + +He led the communications team for the first two years, growing the team from 1 to 12, where they created and executed the launch strategies for Polkadot, Kusama and Substrate. After that he joined the Ecosystem Success team to work with parachain teams to improve their communications and act as a liason between Substrate Builders Program teams and Parity. + +Phil currently works as a freelancer but is focused on leading [Missing Link](https://www.missing-link.io/)'s marketing, communications and governance strategies. He is also an active participant in Polkadot governance discussions on the Kusamarian and in ChaosDAO. + +*Note: Phil Lucsok has previously applied at the Web3 Foundation and has successfully completed Lastic Grant 1. and 2. * + +#### **Aurora Poppyseed**: +Aurora's journey in the technological sphere stands out for her innovative approach and unwavering determination. With a foundation in Physics and Electrical Engineering, she transitioned into roles as varied as a Solutions Architect, focusing on electronics and low-level programming, to a Frontend Developer with a commitment to clean code and scalable frontend architectures. + +At [**Instrumentation Technologies**](https://www.i-tech.si/) in Nova Gorica, Slovenia, she led the design of intuitive GUIs for advanced measurement devices in particle accelerators and streamlined future development with a standardized Vue CLI-based web GUI framework. Her contribution as a Frontend Developer at [**Block Analitica**](https://blockanalitica.com/) involved engineering the frontend framework for the [**Ajna project**](https://www.ajna.finance/) initiated by the **MakerDAO team**, ensuring clean coding practices and an organized project structure for future open-source contributions. + +Aurora attended and graduated from the [**Polkadot Blockchain Academy**](https://www.polkadot.network/development/academy/) at UC Berkeley (engineering track), learning about the fundamentals of blockchain from leaders in this domain. Further enhancing her mark in the blockchain domain, Aurora offered her expertise to [**KodaDot**](https://kodadot.xyz/), a prominent multi-chain NFT marketplace, developing developer documentation and crafting both technical and non-technical articles to amplify the platform's presence. + +In the realm of community engagement and organization, Aurora co-organized the [**Polkadot Bled mini-conference**](https://www.meetup.com/subwork/events/292274713) and more recently, orchestrated a breakfast as a side event at sub0 aimed at [**women in Polkadot** in collaboration with **H.E.R. Dao**](https://lu.ma/dzuqx5nw). This gathering aimed to empower and bring together women leaders and enthusiasts in the Polkadot ecosystem. Furthermore, she's a staunch supporter of [**SubWork**](https://subwork.xyz/), a tech-centric coworking hub in the scenic Bled region and one of the pioneer **Polkadot hubs**. + +Now a freelance blockchain developer, Aurora champions women's representation in Polkadot and ardently supports community-driven blockchain initiatives. + +*Note: Aurora Poppyseed has previously applied at the Web3 Foundation and has successfully completed Lastic Grant 1. and 2. * + +### **Pierina Ponce**: + +In the dynamic landscape of technology, Pierina Ponce emerges as a versatile force, seamlessly transitioning from a background in health informatics to a burgeoning career in blockchain development. + +Pierina's academic journey commenced with a foundation in medicine, culminating in 2018. The pivotal moment occurred during her master's degree in health informatics from 2020 to 2022, where she discovered a profound interest in technology and programming. Eager to explore this newfound passion, Pierina took the leap and enrolled in the computer science program at the Universidad de Palermo in Buenos Aires. + +The year 2023 marked Pierina's initiation into the world of blockchain. Driven by a curiosity to delve deeper into this transformative technology, she sought knowledge and practical skills through the [Polkadot Blockchain Academy](https://polkadot.network/development/blockchain-academy/) at UC Berkeley. The immersive experience equipped her with the fundamentals of blockchain, setting the stage for her journey into the vibrant blockchain ecosystem. + +Pierina's enthusiasm for blockchain manifested in her active participation in hackathons. Notably, she contributed to the success of the [Women of Polkadot](https://twitter.com/WomenOfPolkadot) team in the encode ink! hackathon, where they secured victory by implementing a groundbreaking PSP34 smart contract. This achievement not only showcased her technical acumen but also underscored her commitment to fostering diversity and inclusion within the blockchain community. + +Currently employed as a data professional at [Ixpantia](https://www.linkedin.com/company/ixpantia/), a consulting Costa Rican business specializing in data science and data engineering projects, Pierina has become a catalyst for community growth. +Pierina's unique trajectory blends her expertise in health informatics with her burgeoning skills in blockchain development. As a data professional, she brings a valuable perspective to the intersection of technology and healthcare, embodying the spirit of a true interdisciplinary innovator. + +*Note: Pierina Ponce has previously applied at the Web3 Foundation and has successfully completed Lastic Grant 2.* + +--- + +### Team's Repository & Online Presence + +**Organization's GitHub Page**: +- [LasticXYZ Official Page](https://github.com/LasticXYZ) + +**Primary Repositories for Grant Submission**: +- [Lastic SDK](https://github.com/LasticXYZ/lastic-sdk) +- [Lastic UI](https://github.com/LasticXYZ/lasticUI) + +**Team Member GitHub Profiles**: +- [Phillux's GitHub](https://github.com/phillux) +- [PoppyseedDev's GitHub](https://github.com/poppyseedDev) + +**LinkedIn Profiles**: +- [Philip Lucsok](https://www.linkedin.com/in/philiplucsok) +- [Aurora Makovac](https://www.linkedin.com/in/auroramakovac) + + +## Development Status & Progress + +- [Lastic SDK](https://github.com/LasticXYZ/lastic-sdk): + built upon: + - [scio-labs/use-inkathon](https://github.com/scio-labs/use-inkathon) +- [Lastic UI Repository](https://github.com/LasticXYZ/lasticUI): + built upon: + - [substrate frontend template](https://github.com/substrate-developer-hub/substrate-front-end-template) + + +**Deployments:** +- Latest development (_not meant for wider audiences_): + - [test.lastic.xyz](https://www.test.lastic.xyz/) deployed on [main branch](https://github.com/LasticXYZ/LasticUI/tree/main/static_frontend) + - Official Lastic website: + - [lastic.xyz](https://www.lastic.xyz/) deployed on [main branch -> static_frontend](https://github.com/LasticXYZ/LasticUI/tree/stable/static_frontend) + +**Articles:** + - [blog.lastic.xyz](https://blog.lastic.xyz/) + +**Documentation:** + - [All documentation](https://docs.lastic.xyz/) + + +## Development Roadmap :nut_and_bolt: + +### Overview + +- **Estimated Duration:** 3.5 months +- **FTE:** 1.5 +- **Total Costs:** 30,000 USD + +### Milestone 1 - Indexing Coretime Chain with Subsquid / Functioning Indexer + Basic Visualization + +- **Estimated Duration:** 2 months +- **FTE:** 2 +- **Costs:** 18,000 USD + +| Number | Deliverable | Specification | +| -----: | ----------- | ------------- | +| **0a.** | License | The project will be licensed under GPLv3, ensuring open-source accessibility and contribution. | +| **0b.** | Documentation | Comprehensive documentation will be provided, including inline code comments for clarity. This will be complemented by a detailed guide on [Lastic's Docs](https://docs.lastic.xyz/), covering usage, configurations, and setup procedures. | +| **0c.** | Error Logging | Implementation of error logging mechanisms. In the event of an error, the application will record detailed error information to an event viewer or log file for diagnostics and troubleshooting. | +| **0d.** | Article Publishing | Publication of an article elaborating on Lastic's current development. | +| **0e.** | Dockerfile | Dockerfile that allows for you to set up an indexer | +| **1.** | A functioning indexer that provides accurate and efficient data retrieval of the `broker pallet events, extrinsics and constants on the Coretime Parachain. | Consists of steps 1a. - 1e. Note 1: 1e. is conditional on the broker pallet being configured and deployed on Roccoco by January 20th. Note 2: storage will not be indexed directly since it doesn't allow for cost effective retrieval of data, other methods such as indexing the `broker pallet events and calls are better for that. | +| **1a.** | Set up and configuration of Subsquid with running the substrate chain locally | Setup and configuration of Subsquid with the locally running substrate node that contains the `broker pallet` that will be on the Coretime Chain and starting the indexing process | +| **1b.** | The `broker pallet` is able to index all events in that are present in the `broker pallet` | Check list of such events in section #1b. List of all events in `broker pallet` | +| **1c.** | The `broker pallet` is able to index all events in that are present in the `broker pallet` | Check list of such events in section #1c. List of all calls in `broker pallet` | +| **1d.** | The `broker pallet` is able to index all events in that are present in the `broker pallet` | Check list of such events in section #1d. List of all events in `broker pallet` | +| **1e.** | Set up and configuration of Subsquid with Roccoco | Setup and configuration of Subsquid with Roccoco and indexing it. | +| **2.** | Indexer on the Roccoco Relay Chain | A functioning indexer that provides accurate and efficient data retrieval of the events, extrinsics and constants on the Relay Chain, that are related to the Coretime parachain. Events and Calls are listed in 2a. and 2b. The events listed will be most likely subject to change. | +| **3.** | Connecting the indexer with the frontend | Creating an SDK that will generate GraphQL calls for the frontend to call. | +| **4.** | Connecting SDK extrinsic features with the SDK + frontend | Integrating the extrinsics with which you are able to interact into the SDK and then within the frontend. | +| **5.** | Visualization of bulk coretime prices over time | A very crude visualization of bulk coretime price trends over time.. | + +#### 1b. List of all `broker pallet` events on Coretime Chain: + TransferEvent, + HistoryInitializedEvent, + SaleInitializedEvent, + SalesStartedEvent, + PurchasedEvent, + RenewableEvent, + RenewedEvent, + TransferredEvent, + PartitionedEvent, + InterlacedEvent, + AssignedEvent, + PooledEvent, + CoreCountRequestedEvent, + CoreCountChangedEvent, + ReservationMadeEvent, + ReservationCancelledEvent, + LeasedEvent, + LeaseEndingEvent, + RevenueClaimBegunEvent, + RevenueClaimItemEvent, + RevenueClaimPaidEvent, + CreditPurchasedEvent, + RegionDroppedEvent, + ContributionDroppedEvent, + HistoryDroppedEvent, + HistoryIgnoredEvent, + ClaimsReadyEvent, + CoreAssignedEvent, + AllowedRenewalDroppedEvent + +#### 1c. List of all `broker pallet` calls on Coretime Chain: + ConfigureCall, + ReserveCall, + UnreserveCall, + SetLeaseCall, + StartSalesCall, + PurchaseCall, + RenewCall, + TransferCall, + PartitionCall, + InterlaceCall, + AssignCall, + PoolCall, + ClaimRevenueCall, + PurchaseCreditCall, + DropRegionCall, + DropContributionCall, + DropHistoryCall, + DropRenewalCall, + RequestCoreCountCall + +#### 1d. List of all `broker pallet` constants on Coretime Chain: + palletId, + timeslicePeriod, + maxLeasedCores, + maxReservedCores + +### 2a. List of all events related to the Coretime chain - on the Roccoco relay chain: +onDemandAssignmnetProvider: + + paraIdAffinity + onDemandQueue + palletVersion + spotTraffic + +coretimeAssignmentProvider + + coreDescriptions + coreSchedules + palletVersion + +### 2b. List of all calls related to the Coretime Chain - on the Roccoco relay chain: +onDemandAssignmnetProvider + + placeOrderAllowDeath + placeOrderKeepAlive + +coretime + + assignCore + requestCoreCount + +### Milestone 2 - Visualizations + Added Interactivity + +- **Estimated Duration:** 1 months +- **FTE:** 1.5 +- **Costs:** 12,000 USD + +| Number | Deliverable | Specification | +| -----: | ----------- | ------------- | +| **0a.** | License | The project will be licensed under GPLv3, ensuring open-source accessibility and contribution. | +| **0b.** | Documentation | Comprehensive documentation will be provided, including inline code comments for clarity. This will be complemented by a detailed guide on [Lastic's Docs](https://docs.lastic.xyz/), covering usage, configurations, and setup procedures. | +| **0c.** | Error Logging | Implementation of error logging mechanisms. In the event of an error, the application will record detailed error information to an event viewer or log file for diagnostics and troubleshooting. | +| **0d.** | Article Publishing | Publication of an article elaborating on Lastic's current development. | +| **1.** | Subscan Visualizations | Development of visualizations for Polkadot and Kusama. This includes auction history, a timer view of the auction process, a list of all connected parachains and parathreads, and detailed information on different PARA IDs. Includes steps 1a. - 1d. | +| **1a.** | Auction History | Includes visualizations and a list detailing the teams who won the slot over time, the duration of that slot, and other relevant information. | +| **1b.** | Timer View | A visualization showing the current status and timeline of ongoing auctions. | +| **1c.** | Parachain Connectivity | List and visualization of all connected parachains, parathreads, and registered PARA IDs. | +| **1d.** | PARA ID Details | Information on which PARA ID is connected to which parachain. | +| **2.** | Figma Designs in Code | Implementing Figma designs into functional code for various features such as personal wallet/address page, core-specific pages, the core buying process, and network selection. | +| **2a.** | Personal Wallet/Address Page | Development of the user interface for personal wallet or address management. | +| **2b.** | Core Page | Interface specific to individual cores, detailing core-specific information. | +| **2c.** | Core Buying Process | User interface for the process of purchasing cores. | +| **2d.** | Network Selection | Feature to choose between different networks like Roccoco, Kusama, and Polkadot. | +| **3.** | Additional Features | Implementation of extra functionalities such as the teleport asset feature and creation of a foldable sidebar. | +| **3a.** | Teleport Asset Functionality | Enabling users to teleport assets within the platform. | +| **3b.** | Foldable Sidebar | Development of a user-friendly, foldable sidebar for better navigation. | +| **3c.** | Connect to Different Networks | Feature allowing users to switch between different blockchain networks seamlessly. | + +## Additional Information :heavy_plus_sign: + +**Previous Grant Completion:** +- We successfully delivered on Grant Application Number 1, focusing on creating a UI mockup for the Coretime Parachain and developing a static mockup with simulated data. And on Grant Application Number 2 - coretime price simulator, creating a simulator based of the pricing of Coretime based on the `broker pallet` code. + +**Future Plans:** +- Post-completion of this grant, we aim to further enhance Lastic's capabilities by exploring more advanced features and integrations, ultimately contributing to a more robust and user-friendly Polkadot ecosystem. +