Giter VIP home page Giter VIP logo

lab-fabric-basic's Introduction

lab-fabric-basic

Material para laboratorio HLF, basado en Hyperledger Fabric y SmartContracts tanto en Node.js como Golang

Requisitos

Requisitos base (ejecución):

Requisitos desarrollo:

Nota: para ambientes Windows, Docker funciona de forma nativa sólo para Windows 10 Pro o Windows Server 2016, ya que requiere las funciones de Hyper-V. En otras versiones de Windows, se debe usar la versión antigua de Docker que se basa en VirtualBox.

Iniciar ambiente

Para iniciar el entorno, hay 3 directorio:

  • chaincode: contiene 2 smartcontracts, uno Node y el otro Golang. Aprendan Golang, que es el hijo ilegítimo de C mezclado con otros lenguajes.
  • client: aplicación Node.js de tipo API REST que es además un cliente Fabric 1.3. Tiene las funciones que permiten crear canales, unir Peers a los canales, instalar/instanciar SmartContacts, solicitar querys sobre dichos SCs y hacer invocaciones de Transacciones.
  • network: contiene el material criptográfico para levantar la red, junto con el archivo de Docker que mágicamente les levantará una red Fabric con la organización cabrona de la red llamada MainOrg, y 2 organizaciones que no pueden administrar llamadas Org1 y Org2. Hay 2 scripts:
    • setup.sh: borra cualquier instancia previa de la red, limpia contenedores y descarga las imágenes Docker que van a necesitar (y algunas que no van a necesitar)
    • load.sh: una vez que la red esté andando (ver más abajo), este script genera 2 canales, une a los Peers a los canales e instala los 2 SmartContracts de ejemplo, y por último llama a la consulta llamada “ping” de cada uno, para forzar su instanciación.

El flujo para iniciar el ambiente local es:

  • Abrir una shell y ejecutar:
cd network
sh ./setup.sh
docker-compose up -d
cd ..
cd client
npm install
node server.js

Esto dejará tomada la shell por el proceso Node

  • Abrir otra shell y ejecutar:
cd network
sh ./load.sh

Esto creará 2 channels (1 privado, otro público), unirá el peer de la organización administradora a los 2 channels y a las otras 2 organizaciones al channel público.

Desarrollo

La API Node.js provee de las siguientes funciones (todas por POST):

  • /channels/create: crea un channel, mediante una transacción inicial previamente creada usando configtx de Fabric Tools
  • /channels/update: permite reconfigurar un channel existente usando una transacción de reconfiguración creada usando configtxlator de Fabric Tools
  • /channels/join: permite a un Peer unirse a un canal especificado
  • /smartcontract/install: instala/actualiza e instancia un smartcontract dado
  • /smartcontract/invoke: invoca una transacción sobre un smartcontract, obtiene el endorsement necesario y solicita commit de dicha transacción
  • /smartcontract/query: invoca una función de un smartcontact en modo query (no se genera commit de datos)

En el archivo network/devchannel/test_chaincode.txt hay ejemplos de llamadas a smartcontracts que se dejan como ejemplo y que son instalados por el scrit load.sh.

Para agregar nuevos smartcontracts, se debe editar el archivo client/config/smartcontracts.json y agregar la configuración necesaria.

lab-fabric-basic's People

Contributors

malarcon-79 avatar malarcon-bcs avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.