Proyecto realizado para el NCD Bootcamp NEAR Hispano.
trust-me es un servicio de manejo de confianza de pares en aplicaciones de negocios p2p desentralizados.
En toda operación entre pares en redes decentralizadas y anónimas, ya sea para una operación de transferencia de tokens, o bien en donde un recurso (tangible o no intangible) es utilizado como parte de una transacción, es necesario establecer una relación de confianza entre las partes (aka pares o peers). Con TrustMe, intentamos quebrar esa barrera brindando un servicio de registro de reputación de miembros de una comunidad (community-based), o bien una red (blockchain-based).
- consultar el nivel de confianza de un miembro en la comunidad antes de realizar una transacción.
- registrar la confianza de un miembro luego de realizar una transacción.
- registrar la desconfianza de un miembro luego de realizar una transacción.
- consultar los confiantes de un miembro de la comunidad.
- consultar los confidentes de un miembro en la comunidad.
- consultar mis confiantes dentro de la comunidad.
- consultar mis confidentes dentro de la comunidad.
- consultar un ranking de miembros con mayor confianza.
- consultar un ranking de miembros con menos confianza.
Cada miembro dentro de la comunidad se identifica con su NEAR account ID
- node.js >=12 instalado (node.js>=14 preferentemente) (https://nodejs.org)
- yarn instalado
npm install --global yarn
- instalar dependencias
yarn install --frozen-lockfile
- crear una cuenta de NEAR en testnet
- instalar NEAR CLI
yarn install --global near-cli
- autorizar app para dar acceso a la cuenta de NEAR
near login
🐑 Clonar el Repositorio
git clone https://github.com/leomanza/trust-me.git
cd trust-me
🏗 instalar y compilar el contrato
yarn install
yarn build:contract:debug
🚀 Deployar el contrato
yarn dev:deploy:contract
🚂 Correr comandos Una vez deployado el contrato, usaremos el Account Id devuelto por la operacion para ejecutar los comandos, que será el account Id del contrato [será utilizado como CONTRACT_ACCOUNT_ID en los ejemplos de comandos]
Utilizaremos ACCOUNT_ID para identificar el account Id que utilizamos para autorizar la app.
near call CONTRACT_ACCOUNT_ID confiar '{"accountId": "juan.testnet", "comment":"todo perfecto", "relatedTx":"6ZSbdHZFkKGxnrYiY9fyym2uShbJYSLmzPSizJfX5Eee"}' --account-id ACCOUNT_ID
near call CONTRACT_ACCOUNT_ID descofiar '{"accountId": "juan.testnet", "comment":"vendedor poco confiable", "relatedTx":"6ZSbdHZFkKGxnrYiY9fyym2uShbJYSLmzPSizJfX5Eee"}' --account-id ACCOUNT_ID
near view CONTRACT_ACCOUNT_ID getConfianza '{"accountId": "juan.testnet"}'
near call CONTRACT_ACCOUNT_ID getConfiantes '{"accountId":"juan.testnet"}' --accountId ACCOUNT_ID
near call CONTRACT_ACCOUNT_ID getConfidentes '{"accountId":"juan.testnet"}' --accountId ACCOUNT_ID
near call CONTRACT_ACCOUNT_ID getMisConfiantes '{}' --accountId ACCOUNT_ID
near call CONTRACT_ACCOUNT_ID getMisConfidentes '{}' --accountId ACCOUNT_ID
Para este caso de uso pensamos en una UI sencilla, la cual tendría una mayor funcionalidad al momento de realizar conexiones con Amazon, Ebay, Mercado libre y más. Las acciones que podemos realizar en esta UI son:
- consultar el nivel de confianza de un miembro en la comunidad antes de realizar una transacción.
- Ver a los mejores vendedores por plataforma.
- Crear una cuenta usando tu cuenta de mainet.
- Iniciar sesión usando tu cuenta de mainet y tu contraseña.
- Ver el perfíl de los vendedores/compradores donde podremos ver:
- Cuanta gente confía o desconfía en el/ella.
- Su cantidad de ventas/compras.
- Los comentarios de otros usuarios sobre esta persona.
- Poder evaluar a este usuarios.
- Buscar a los usuarios por su id de mainet.
- Evaluar a los demás usuarios, usando su id, el número de transacción de venta/compra, evaluarlo como vendedor/comprador y comentarios sobre el usuario.
Estos diseños se pueden encontrar y navegar por ellos aquí: https://marvelapp.com/prototype/7541b96/screen/81825604