Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Proposal changes #583

Merged
merged 4 commits into from
Sep 7, 2021
Merged
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
67 changes: 41 additions & 26 deletions applications/substrate-identity-directory.md
Original file line number Diff line number Diff line change
@@ -1,49 +1,42 @@
# Open Grant Proposal


* **Project Name:** Substrate Identity Directory
* **Project Name:** Substrate Identity Hub
* **Team Name:** https://github.com/Shard-Labs
* **Payment Address:** 0x526F2bC9a5fc0839AD4956b06CB6dFf26F9503be


## Project Overview
This application is in response to following RFP https://github.com/w3f/General-Grants-Program/blob/master/rfp-proposal/identity-directory.md
This application is in response to following RFP https://github.com/w3f/General-Grants-Program/blob/master/rfps/identity-directory.md

### Overview

Identity Directory is a proposal of a fully client-side web application that would read and display registered identities on Substrate-based chains which implement the Identity pallet. By browsing a specific link, a user would be able to see beautifully rendered identity data of an on-chain identity along with all the metadata in the identity entry, an avatar if provided, and any verifications from the registrars on-chain. Users would be able to match and verify identities and also have access to sending tokens directly to another user.
Identity Hub is a proposal of a fully client-side web application that would read and display registered identities on Substrate-based chains which implement the Identity pallet. By browsing a specific link, a user would be able to see beautifully rendered identity data of an on-chain identity along with all the metadata in the identity entry, an avatar if provided, and any verifications from the registrars on-chain. Users would be able to match and verify identities and also have access to sending tokens directly to another user.

GOALS:
Create a web service to query on-chain identities. The service accepts and reads input parameter as address, index, or XXX and
If the input parameter is address or index create a single page view for a specific identity
If the input parameter is neither address nor index create a list page view
Create a web service to query on-chain identities. The service accepts and reads input parameter as address and if the adddress exists create a single page view for a specific identity, if address doesn't exist stay on list page view.



### Project Details
A web service would have a way of reading the following links:
https://polkadot.polkaperson.com/<identity>
https://kusama.polkaperson.com/<identity>
https://identityhub.xyz/polkadot<identity>
https://identityhub.xyz/kusama<identity>
Web service would read the <identity> parameter and make a query to the corresponding chain and retrieve identity data of the requested identity.
Web UI would have two ways of viewing data. A list view and a single page view. A list view would be a way for users to query the chain and display all registered identities on the Kusama and Polkadot chains. This view would be the default view if no specific identity is queried and provided in the URL. By clicking on the specific identity in the list, a user would be redirected to a single page view for the chosen identity. A single page view would be a way for users to query a specific identity data of the on-chain identity. This view would be a way for users to see identity activities indicative of a member’s reputation containing identity card of an on-chain identity along with all the metadata in the identity entry, an avatar if provided, any verifications from registrars in the chain, and buttons that allow you to send tokens directly to the user. Single-page view UI will contain multiple closable and re-orderable columns so users can order them as they choose. The order will be remembered across the app with the option to toggle and freeze a layout for a specific user. It would support a plug-in ecosystem for different sub-views of identities.
Web UI would have two ways of viewing data. A list view and a single page view. A list view would be a way for users to query the chain and display all registered identities on the Kusama and Polkadot chains. This view would be the default view if no specific identity is queried and provided in the URL. By clicking on the specific identity in the list, a user would be redirected to a single page view for the chosen identity. A single page view would be a way for users to query a specific identity data of the on-chain identity. This view would be a way for users to see identity activities indicative of a member’s reputation containing identity card of an on-chain identity along with all the metadata in the identity entry, an avatar if provided, any verifications from registrars in the chain, and buttons that allow you to send tokens directly to the user.

Mock-ups:

![List view](https://i.imgur.com/p47ecmi.png)
![Single page view](https://i.imgur.com/wCDbaID.png)



## Team

### Team members
* Darko Macesic (https://www.linkedin.com/in/darko-macesic/)
* Karlo Majer (https://www.linkedin.com/in/karlomajer/)
* Ana Milic Strkalj (https://www.linkedin.com/in/ana-milic-strkalj/)
* Jakov Buratovic (https://www.linkedin.com/in/jakov-buratovic/)
* Miljan Milidrag (https://www.linkedin.com/in/miljan-milidrag/)

### Contact
* **Contact Name:** Ana Milic Strkalj
* **Contact Email:** ana@shardlabs.io
* **Contact Name:** Jakov Buratovic
* **Contact Email:** jb@shardlabs.io
* Website https://shardlabs.io

### Legal Structure
Expand All @@ -61,9 +54,8 @@ We have experience in several private and open source projects aswell as project

### Team Code Repos
- https://github.com/Shard-Labs
- https://github.com/dark64
- https://github.com/karlomajer
- https://github.com/anamst
- https://github.com/Jakic007
- https://github.com/milgard91


## Development Roadmap
Expand All @@ -76,7 +68,7 @@ We have experience in several private and open source projects aswell as project
### Milestone 1 Designing and design implementation for list page / individual identity page.
* **Estimated Duration:** 6 weeks
* **FTE:** 3
* **Costs:** 24.500 DAI
* **Costs:** 22.500 DAI

| Number | Deliverable | Specification |
| ------------- | ------------- | ------------- |
Expand All @@ -87,10 +79,12 @@ We have experience in several private and open source projects aswell as project
| 2. | Design an individual identity page | Create design mockups in Figma. |
| 3. | Implement list page | Build UI components in VueJS used in the identity list page. |
| 4. | Implement individual identity page | Build UI components in VueJS used in the individual identity page.
| 5. | Implement query logic for identity data | Implement query logic which will be used to retrieve identity data. |
| 6. | Query identity activities | Implement query logic which will be used to retrieve activities indicative of a member’s reputation. |
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could you move this to a different milestone instead, together with the treasury and governance modules? Feel free to distribute the price across the two milestones as you think fit.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have created Milestone 3 out of that deliverable. @alxs

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To clarify, I meant you may split the price of this milestone (which previously contained all deliverables) between this and the new milestone.


| 5. | Implement query logic for identity data | Implement query logic which will be used to retrieve identity data. |

Mockups:
![List view](https://i.imgur.com/83jka9t.png)
<br/>
![Single page view](https://i.imgur.com/7u04sRV.png)

### Milestone 2 Implementing logic for sending tokens. Support for the offline mode.
* **Estimated Duration:** 3 weeks
Expand All @@ -101,7 +95,28 @@ We have experience in several private and open source projects aswell as project
| ------------- | ------------- | ------------- |
| 1. | Implement logic for sending tokens | Implement logic for sending tokens; retrieve balance, parse inputs, display transaction fee, create the transfer transaction. |
| 2. | Make the web service work offline | Web service can be used in offline mode; the user can specify a local node to which will the service connect. |


### Milestone 3 Index data and query
#### Requirements for the milestone:
* https://github.com/paritytech/substrate/pull/8615
* https://github.com/paritytech/substrate-archive/issues/97
* https://github.com/paritytech/substrate-archive/issues/111
* https://github.com/paritytech/substrate-archive/issues/132
Comment on lines +102 to +104
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These are different PRs from the one you mentioned in your previous email, could you please explain? And do you care to elaborate on how this is blocking you exactly? Polkascan for example have implemented pretty much this exact functionality https://polkascan.io/kusama/account/EGVQCe73TpFyAZx5uKfE1222XfkT3BSKozjgcqzLBnc5eYo

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have added the missing PR to the list. To be able to retrieve and decode extrinsics from older blocks, this PR and issues must be merged and solved. Those three issues on substrate-archive are related to type-decoding.
Also, this is the response we got from the official discord server:
"At what blocks are you not getting any traces? State tracing is only supported on runtime versions v8.27 and above, so if you are on a block height below that runtime version then you will not get any traces. For runtime v0.9.XX a release is being cut to include support for those runtime versions today or tomorrow."
That is still not live in the latest version.
As agreed on the call, let's proceed with the payment for the first two milestones as they are delivered and not connected to the current issue. Thank you for your input about polkascan, we will research milestone 3 on their method for retrieving the missing data.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would rather suggest you look into this now as it was (and still is as long as the amendment hasn't been accepted) part of the deliverables for milestone 1. As far as I'm aware, Polkascan are open source and just using their harvester might do.

Nevertheless, I will share with the rest of the committee.

Payment for the first two milestones will be made when the review has been completed.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.


* **Estimated Duration:** 3 weeks
* **FTE:** 2
* **Costs:** 2000 DAI

| Number | Deliverable | Specification |
| ------------- | ------------- | ------------- |
| 0a. | License | Apache 2.0 / MIT / Unlicense |
| 0b. | Documentation | We will provide both inline documentation of the code and a basic tutorial that explains how the user can utilize the basic application. |
| 0c. | Article/Tutorial | We will write an article or tutorial that explains the work done as part of the grant. |
| 1. | Backend development | Provide endpoints for data queries related to governance and treasury activities |
| 2. | Fetch data on frontend | Consume provided endpoints and display data on frontend |

Mockup:
![Identity activities](https://i.imgur.com/h9wQwXY.png)

## Future Plans

Expand Down