¿Qué es?
Este es un ejemplo de "moneda" (un token de Ethereum) que se distribuye a varios cargos públicos españoles para que tengan una toma de contacto de primera mano con las criptomonedas y los contratos inteligentes (smart contracts).
El token implementa el estandar ERC20 de Ethereum.
Está escrito a mano desde cero, sin utilizar librerías (como OpenZeppelin) para que alguien que no ha visto nunca el código de un Token de Ethereum pueda entenderlo.
Datos curiosos:
- Hay un total de 47.000 millones de Ayusos en circulación.
- Tocamos a 1000 ayupos por cada español ;-)
- Un Ayuso puede tener hasta 6 decimales, en vez de los 2 decimales del Euro.
- ¿Porqué seis decimales? porque sí.
La circulación total es de 47 mil millones de tokens (tocamos a 1000 ayusos por cada español). Y admite 6 decimales.
Fases
1 - Fase inicial - distribución limitada
En la primera fase se mandan varias 'paper wallet' de Ethereum a distintos políticos españoles sin contraprestación alguna. El hecho de recibir estas paper wallet no supone la aceptación de estos Tokens. Para aceptar un token de forma efectiva, la dirección tiene que disponer de Ethereum y transferir esos tokens a otra dirección...
El valor del token al enviarse es de cero (0) euros.
2 - Faucet
En una segunda fase el token se pone a disposición de todos los usuarios de la red Ethereum. El mecanismo de distribución es un "Faucet", que consiste en que cada interesado puede solicitar de un smart contract que se le envíen por una sola vez una cantidad de Ayusos (limitado a 1000 por dirección). El costes de recibir de esos Ayusos es a cargo del interesado, y consiste exclusivamente en el pago a los mineros del "gas" que se utiliza en el smart contract.
Durante esta fase para evitar el acopio de Tokens, se ha limitado el número de tokens por cada dirección ethereum a 10.000.
Para test / desarrollo de DAPP hay que tener un blockchain de prueba en funcionamiento.
Para esto hay que ejecutar:
brownie console
Eth-brownie despliega un blockchain de test con las direcciones de los contratos y una de test listas para usarse.
Los contratos se despliegan ejecutando:
brownie run deploy --network development|mainnet|ropsten
Si queremos desplegar un contrato usando una dirección concreta tenemos que crear la variable de entorno PRIVATE_KEY con la clave privada (en hexadecimal) correspondiente a la wallet desde la que desplegamos los contratos.