PART OF HYPERLEDGER MEETUP MEXICO CITY @ TEC CCM
Este proyecto fue hecho para propósitos educacionales y para el 'Blockchain Workshop' del ITESM CCM.
El proyecto es una Red de Negocios de 'Blockchain' en Hyperledger Composer para vender casas. La idea es que personas tienen una forma de verificar fácil y directamente quién es el dueño de cada casa, de poner una casa a la venta y de crear acuerdos de compra. Todas las transacciones son grabadas en el Blockchain de Fabric y son inmutables.
- Para más información acerca de Hyperledger Composer.
- Para más información acerca de Hyperledger Fabric
Si quieres instalar Composer de manera local, da click aquí
Detalles de los participantes:
{
"email": String, // ID
"firstName": String,
"lastName": String,
}
Detalles de los activos: Los activos son los elementos que son intercambiados, modificados, leídos, etc por los participantes.
{
"houseId": String,
"houseAddress": {
"street": String,
"postCode": String,
"colonia": String,
"city": String
},
"price": Integer,
"info": String[],
"houseSize": String,
"onSale": Boolean,
"owner": Persona
}
{
"seller": Persona,
"buyer": Persona,
"houseInSale": Casa
}
El acuerdo de venta es utilizado para poder realizar una transacción de venta entre dos participantes.
Detalles de las transacciones:
{
"house": Casa
}
Permite que una casa esté disponible para venta.
{
"sA": Acuerdo de venta
}
Esta transacción se realiza cuando se quiere vender la casa, aquí se hace un cambio de "owner" dentro del activo Casa.
Playground es una herramienta de Hyperledger Composer para realizar pruebas visibles con las redes de negocio. Se puede usar de manera local o de manera remota. Para instalar de manera local puedes seguir este tutorial.
Aquí veremos un breve tutorial para probar una red de manera remota.
- Entra al siguiente link.
- Da click en "Deploy a New Business Network".
- Llena los datos que te pide: Nombre de la red, descripción y nombre de la tarjeta de adminitrador de red.
- Selecciona el tipo de red que desees probar. Puede ser una ya creada, o subir tu propio archivo .bna.
- Da click en "Deploy".
- Diviértete.
Se recomienda utilizar un sistema basado en Linux o MacOSX para su fácil instalación. Instalar los prerequisitos. Es esencial tener nvm, npm, node y Docker.
composer-cli son los comandos básicos de desarrollo de Composer. composer-rest-server ayuda a montar una API REST para poder interactuar con la red. generator-hyperledger-composer ayuda a generar esqueletos de desarrollo de red. yo es una herramienta para crear esqueletos de aplicaciones o de red.
npm install -g composer-cli
npm install -g composer-rest-server
npm install -g generator-hyperledger-composer
npm install -g yo
npm install -g composer-playground
- En un directorio (~/fabric-dev-servers recomendado), descargar el archivo .zip con las herraminetas:
mkdir ~/fabric-dev-servers && cd ~/fabric-dev-servers
curl -O https://raw.githubusercontent.com/hyperledger/composer-tools/master/packages/fabric-dev-servers/fabric-dev-servers.tar.gz
tar -xvf fabric-dev-servers.tar.gz
- Usar los scripts para descargar Hyperledger Fabric de manera local.
cd ~/fabric-dev-servers
export FABRIC_VERSION=hlfv12
./downloadFabric.sh
- Si es la primera vez que se instala el ambiente, hay que crear una PeerAdmin card:
cd ~/fabric-dev-servers
export FABRIC_VERSION=hlfv12
./startFabric.sh
./createPeerAdminCard.sh
Al terminar de usar Fabric, se puede detener y quitar Fabric:
./stopFabric.sh
./teardownFabric.sh
Si se utiliza el comando de teardown, hay que volver a crear una PeerAdminCard la próxima vez que se use.
NOTA: Si se quiere reinstalar una nueva versión o estás usando una versión anterior de Composer, se deben de matar y eliminar los contenedores de Docker:
docker kill $(docker ps -q)
docker rm $(docker ps -aq)
docker rmi $(docker images dev-* -q)
- Para empezar la red:
- Hay que crear el archivo .bna:
composer archive create -t dir -n .
- Empezar el ambiente de Composer:
composer network install -c PeerAdmin@hlfv1 -a house-selling-network@0.0.2.bna
- Comenzar con la red de negocios:
composer network start -n house-selling-network -V 0.0.2 -c PeerAdmin@hlfv1 -A admin -S adminpw --file networkadmin.card
- Importar la identidad de administrador para poder usarla:
composer card import --file networkadmin.card
- Para probar si la red está funcionando, se puede hacer un ping:
composer network ping -c admin@house-selling-network