- Beneficiary: OpenSquare(12sNU8BXivMj1xQmcd4T39ugCyHjmhir8jkPqfAw5ZDESrx4)
- Date: 09/18/2023
- Requested Allocation: $275,620(67,045DOT by the EMA7 price of 09.18.2023 on subscan)
OpenSquare has been actively developing new features for infrastucture products including Subsquare, dotreasury, Statescan and off-chain voting. This proposal is for 2023 Q2 and Q3 maintenance of these products, and a new batch of features to develop.
The maintenance request contains 3rd infrastructure services(servers, email services, domains) and labor cost for deployment maintenance, code refactor, bug fixes, UI tweaks, small features enhancement, etc.
- Subsquare(kusama, polkadot, rococo, collectives and westend collectives): 2 * CX41 * 6 monthes.
- Dotreasury(kusama, polkadot):1 * CX41 * 6 monthes.
- Statescan(kusama, polkadot, statemine, statemint, westmint, collectives, westend collectives): 5 * CX41 * 6 monthes, abount 4T volume * 6 monthes.
- Off-chain voting: 1 * CPX41 * 6 monthes.
- Development and test: 1 * CX41 * 6 monthes.
|Total in dollar
Ali email service
We used a email resource package cost ¥81, ≈ $11.2.
IPFS pin service
We used the service from Infura.io: $2.74.
|Ali email service
|IPFS pin service
|volatility and currency translation for servers and domains
Note: we paid server and domain bills with Chinese CNY, and it costed us additional fees because of currency translation and token price volatility. This is only requsted for server/domain bills, no developers payment.
Code and deployments maintenance
The maintenance work includes:
- Server deployment maintenance: daily server monitor, upgrading products versions, emergency handling, etc.
- Necessary context information collection, like dotreasury proposal/projects context collection and update, statescan asset information.
- Collaboration with other teams to provide api support and some governance explanation.
- Codebase maintenance: code refactor, bug fixes, UI tweaks, dependency upgrading, etc.
We will list the main work for codebase maintenance by products.
- Upgrade dependency of next.js to v13 and other dependencies including polkadot.js api.
- Enhance refernda call business extraction, show related call parameters and show
system#remark content with markdown previewer.
- Refactor page routes to make them more in line with RESTful rules.
- Improve various detail page performance by subscribing proposal state and timeline while previously we used api loop call.
- Subscribe info of democracy/referenda referendum and refactor related pages/components, so tally will be updated automatically.
- Fix page crashes due to kusama removed democracy and tips pallet.
- Add on-chain events subscription warning tip on overview panel.
- Introduce tailwind dependency and refactor the way to define styles.
- Show warning components when OpenGov referendum preimage is missing.
- Add another view for OpenGov referendum confirmation, so we can zoom in to see the latest confirmation progress.
- Add account social links from identity settings on profile page.
- Add voting countdown component for democracy referendum.
- Support timeline item link to block.
- Add treasury award countdown component on proposal detail page.
- Show referenda aye/nay votes from SplitAbstain vote.
- Update votes automatically when OpenGov/democracy referendum tally changed.
- Refactor child bounty claim related components, and make child bounty claim button enabled only when it's mature; Allow anyone to claim a child bounty when it's mature.
- Improve fellowship and referenda navigation components to better show their correlation.
- Fix page crashes due to kusama removed democracy and tips pallet.
- Fix various style problems and bugs.
Please check the changelog and commits for more details. We will request 10 FTE equivalent work per month for subsquare, totally 60 FTE.
- We changed the fronted site build tool from create react app to vite.
- Update funded projects information, and update context for treasury proposals.
- Upgrade dependencies and remove useless ones.
- Fix OpenGov referendum call business extraction. Previously we extract the business only when referendum submitted, but the preimage maybe uploaded after that. We handled this case in this fix.
- Fix income calculation on the treasury mountain chart by taking the transfer into calculation.
- Save latest status to the treasury mountain chart. Previously we only saved data at a week start point.
- Add a slider to zoom in/out treasury mountain chart.
- Fix income scan with the transfer income by XCM.
- Fix scan scripts for missed treasury proposals.
Please check commits for more details. We will request 6 FTE equivalent work per month for dotreasury, totally 36 FTE.
- Upgrade dependencies.
- Monitor and maintain deployments to kusama, polkadot, statemine, statemint, westmint, collectives and westend collectives.
- Fix kusama governance panel crash by removal of democracy pallet.
- Fix asset owner with assets pallet scan.
- Improve ci to for code lint and tests.
Please check commits for more details. We will request 3 FTE equivalent work per month for statescan, totally 18 FTE.
- Upgrade dependencies and maintain the deployments.
- Support quorum pre-config for a space.
- Support democracy delegation config for a space.
- Setup ci for code lint.
- Fix various componenets styles.
Please check commits for more details. We will request 2 FTE equivalent work per month for off-chain voting, totally 12 FTE.
|3rd infrastructure services
Note: We use $500($62.5/hour) for each FTE(8 hours) maintenance cost.
New features development
Off-chain discussion data decentralization
We proposed SIMA spec several monthes ago to achieve the governance off-chain discussion data decentralization. It takes advantage of
system#remark and IPFS to achieve the goal. Generall the work will include:
- Manage user signed data and upload them to IPFS.
- Organize IPFS CIDs and submit them to the correseponding chain with
- Scan scripts for submitted remarks(CIDs).
- IPFS content fetching to get content by CIDs.
- Populate scanned data to business database and render it to fronted pages.
- Integrate the fronted interaction into current implementation.
We will first implement it for post discussions and OpenGov referenda, and then observe how it will affect the governance process.
Delegation UI enhancement
We've implemented some simple interfaces to show users' delegation status and help them to set delegations. We'd propose to enhance this feature with following user stories.
- As a user, I can select an address from a list of active governance participants to delegate. I should see their voting history, their governance participation rate, and their announcement, so I can make a correct decision.
- As a active voter who want to attract more delegation to me, I want to public an announcement to show my voting strategy, so token holders can decide whether they will delegate their tokens to me.
We will implement a more advanced UI for users better delegation experience.
- There will be a dashboard to show current delegation statistics.
- There will be a list of delegatee with their announcement, and users can sort them with various ways.
- Any token holder can publish their announcement to attract delegations, and the data CID will be stored on chain with
- Token holders can view their delegation and been delegated status in a more direct way.
On-chain governance deposit management
Some amount of tokens have to be reserved if users participate some kinds of governance activities. For example:
- Fund will be reserved after a user propose a treasury proposal.
- A user has to deposit decision deposit to make a OpenGov referendum enter into decision period.
- Some fund will be reserved if a bounty curator accept the curation.
We will implemente interfaces to help user view funds locked due to governance, and help them to submit on chain calls to refund the locked tokens.
Whales are perfecting more important roles to affect final result of referenda, but it's hard for the community to summarize all whales and their behaviors. We propose to implement interfaces to help the community to track whales' votes. We can see a list of whales which will show there balance, votes count, aggregated votes balance, and their votes history.
Other enhancement features
- To help user better view the call info on various referendum/proposal pages, we will implement another call data tree view which is similar with that on polkadot apps. We believe it's a good supplement to current table and JSON view.
- [Delivered] Add circle packing view(votes bubble) to show democracy/referenda votes distribution.
- [Delivered] Show OpenGov referendum confirmation attempts info so users can see the complete confirmation process in the whole decision period.
- [Delivered] Support search on the votes popup, so users can find whether an address have voted a referendum.
- Notification through telegram. Currently we support notification by email, and telegram support will provide users another choice to get notifications in time.
- Bounty & child bounty info enhancement.
- Show bounty address on the detail page.
- Show bounty current balance, how much spent on the detial page.
- Profile page enhancement.
- Show user balances on profile page, so users can see the vote weight of this user.
- Multisig check. An address maybe a signatory of one or more multisig addresses. We will scan data on-chain and extract signatories of all multisig addresses, and then show all the multisig addresses which an address is a signatory.
- My vote view and management on referendum detail page. Previously we only show the on-chain storage vote info. In this proposal, we will support showing the info even it's removed, and we will also support removing vote.
|Off-chain discussion data decentralization
||4 FTE * 4 weeks
|Delegation UI enhancement
||4 FTE * 3 weeks
|On-chain governance deposit management
||3 FTE * 2 weeks
||2 FTE * 2 weeks
|Other enhancement features
||4 FTE * 4 weeks
Separate deployments for chains
We'd plan to extend dotreasury to support the treasury statistics data in the whole dotsama ecosystem. Development plans includes:
- Separate the deployments for each chain, so there will be kusama.dotreasury.com, polkadot.dotreasury.com. So it will become easier to integrate more chains with less code coupling.
- Implement a page to show the whole eco treasury statistics on dotreasury.com. It will sum all chains' treasury data and show them in various visualized components.
- Previously we implemented spents by periods, we propose to implement income by perious, so we can know both the income/output data by periods.
- Add a failed tab to treasury proposals list, so we can know which proposals are failed.
|Separate deployments for chains and sum the whole treasury of deployed chains
||3 FTE * 2 weeks
||3 FTE * 3 days
- Dark mode. As more projects get to use off-chain voting, and there are more users, we think it makes sense to implement dark mode for better user experience.
- Proposal template. This feature will enable space admins set a template for proposals to be created, which will make proposers follow space community rules for new proposals.
||2 FTE * 1 weeks
||3 FTE * 3 days
Please check above sections for details of each item. Taking hour rate $80, please check following budget list.
||2023 Q2 and Q3
|Subsquare new features
|Dotreasury new features
|Off-chain voting new features
- Beneficiary: 12sNU8BXivMj1xQmcd4T39ugCyHjmhir8jkPqfAw5ZDESrx4(identity is OpenSquare)
- We will update the allocated DOT by the price of subscan on the submission date.
Why the amount is greater than last propolsal?
- We merged maintenance proposal and new features development into one proposal to reduce community votes. We believe the proposed new features are beneficial to the whole ecosystem.
- We added off-chain voting into maintenance request and propose to implement darkm mode for it, as it's accepted by teams for some kinds of off-chain governance scenarios.
How many users are visiting your products?
What's your longterm plan and why your team?
We're a group of experienced developers who are dedicated in the dotsama ecosystem for more than 4 years. Our longterm vision is to build a decentralized collaboration network in web3. We are focusing on infrastructure building because we found there are not good enough infrastructure products in the ecosystem and they are necessary to all further products in the web3 world based on polkadot. Main topics we are focusing include data indexing, anaylyzing and visualization which we think will help the whole ecosystem understand how polkadot works.