Hyperledger Tela V1.4.6 (a) de forma manual estructuras de red Fabric (basado en la primera red)

  Si usted no tiene un entorno completo Hyperledger Tela, consulte: Hyperledger Tela (a) medio en la base V2.0 para construir (lo mismo se aplica a la versión V1.4, tome nota del reemplazo Tela imagen binaria y el número de versión, ver la parte inferior de este documento). Tela actual última versión V2.0 Beta bate, si usted quiere construir la versión más reciente de la red de la tela, por favor refiérase https:////www.cnblogs.com/always-kaixuan/p/12416157.html . Tenga en cuenta que la versión actual se encuentra todavía en V2.0 beta, trate por los individuos, se encontró que el despliegue del código de cadena de Java se ha dado para tratar de resolver sin éxito, así que antes de la versión oficial 2.0 no ha sido anunciado, se recomienda implementar V1.4 + versión. Después de tener un entorno básico, puede implementar el trabajo de la red de la tela. Se puede hacer referencia a la página web oficial del documento por parte de los tutoriales primera red, archivos de secuencias de comandos que utilizan la red bloque de la cadena de inicio rápido que se suministra. Sin embargo, con el fin de construir una red de tela a medida, es necesario entender la operación específica realizada por el script.


primera red guiones tutorial byfn.sh de la siguiente manera:

Uso:
byfn.sh <modo> [-c <nombre del canal>] [-t <timeout>] [-d <retraso>] [-f <ventana acoplable de composición del archivo>] [-s <dbtype>] [- l <idioma>] [-o <tipo-consenso>] [-i <imagetag>] [-a] [-n] [-v]
<modo> - uno de 'arriba', 'abajo', 'reinicio' , 'generar' o 'actualizar'
- 'hasta' - abrir la red con cargador de muelle de composición de arriba
- 'abajo' - borrar la red con plumón ventana acoplable de composición del
- 'reinicio' - reiniciar la red
- 'generar' - generar requerido certificados y bloque génesis
- 'mejorado' - mejorar la red de la versión 1.3.x a 1.4.0
-c <nombre del canal> - nombre del canal para su uso (por defecto "mychannel")
-t <timeout>- la duración de tiempo de espera CLI en segundos (por defecto 10)
-d <retardo> - duración de retardo en segundos (por defecto 3)
-f <ventana acoplable de composición del archivo> - especificar qué ventana acoplable de composición del uso de archivos (por defecto es de composición del cargador de muelle-cli.yaml)
-s <dbtype> - la base de datos central para su uso: goleveldb (por defecto) o couchdb
-l <idioma > - el idioma chaincode: golang (por defecto) o nodo
-o <tipo de consenso> - el tipo de consenso del servicio de pedidos: en solitario (por defecto), kafka, o etcdraft
-i <imagetag> - la etiqueta que se utilizará para poner en marcha la red (por defecto "último")
-a - autoridades de certificación de lanzamiento (no hay autoridades de certificación son lanzados por defecto)
-n - no implemente chaincode (abstore chaincode se despliega por defecto)
-v - verbosa modo
byfn.sh -h (imprimir este mensaje)

Típicamente, uno primero generar los certificados necesarios y
bloque de génesis, a continuación, llevar hasta la red. p.ej:

byfn.sh generar -c mychannel
byfn.sh hasta -c mychannel -s couchdb
byfn.sh hasta -c mychannel -s -i couchdb 1.4.0
byfn.sh hasta -l nodo
byfn.sh abajo -c mychannel
byfn.sh actualización mychannel -c

Tomando todos los valores predeterminados:
byfn.sh generar
byfn.sh arriba
abajo byfn.sh

 

Utilice una secuencia de comandos para iniciar la red funciona como sigue:

① en el directorio primera red

cd tela-muestras / primera red   

② aperturas de red (el proceso que comprende: a partir de contenedores, para crear un canal, se añade el canal, ancla nodo actualizado tejido, embalaje de código de cadena, el código de cadena de la instalación, el código de cadena de instancias, el código de cadena de llamadas)

./byfn.sh hasta -l -o nodo etcdraft -s couchdb # instalar la versión en idioma nodo del código de cadena chaincode_example02, utilizar los servicios de pedidos Raft en lugar de en solitario, permitirá a la base de datos de consulta couchdb (soportes ricos)

# ./Byfn.sh hasta -n -a -o etcdraft -s couchdb código de cadena # chaincode_example02 no está instalado, habilitado para servicio de CA, que los servicios de pedidos Raft en lugar de en solitario, permitirá a la base de datos couchdb (soportes de consulta poderoso)

 

de manera equivalente como la implementación manual de red Fabric (habilitado CA, couchdb utilizado):

Ⅰ uso cryptogen generar un certificado y una clave, se coloca en el directorio cripto-config

cryptogen generar --config =. / cripto-config.yaml

Uso Ⅱ herramienta configtxgen montaje configurado para generar 4 (genesis.block, channel.tx, Org1MSPanchors.tx, Org2MSPanchors.tx), colocado bajo el directorio de canal-artefactos

① exportación FABRIC_CFG_PATH = $ PWD

② configtxgen -profile TwoOrgsOrdererGenesis -channelID byfn-sys-canal -outputBlock bloque de creación del sistema de generación # ./channel-artifacts/genesis.block, utilizando la clasificación predeterminado en solitario, channelID es el nombre del sistema de canales

# Configtxgen -profile SampleMultiNodeEtcdRaft -channelID ./channel-artifacts/genesis.block # usar el servicio de pedidos Balsa byfn-sys-canal -outputBlock

③ CHANNEL_NAME exportación = mychannel # canales proporcionados por el nombre de variable de entorno

configtxgen -profile TwoOrgsChannel -outputCreateChannelTx ./channel-artifacts/channel.tx -channelID $ CHANNEL_NAME # Crear un channel.tx transacción configuración de canales

ancla transacción Org1MSPanchors.tx nodos ④ configtxgen -profile TwoOrgsChannel -outputAnchorPeersUpdate ./channel-artifacts/Org1MSPanchors.tx -channelID $ CHANNEL_NAME -asOrg Org1MSP # Org1 crear una actualización sobre el canal de organización

nodos de anclaje transacción Org2MSPanchors.tx ORG2 configtxgen -profile TwoOrgsChannel -outputAnchorPeersUpdate ./channel-artifacts/Org2MSPanchors.tx -channelID $ CHANNEL_NAME -asOrg Org2MSP # Creación de una actualización sobre el canal de organización

Creación Ⅲ canal, el nodo de grupo se une al canal, y actualizar nodo de anclaje de la organización

① ventana acoplable de composición del -f ventana acoplable de composición del-cli.yaml hasta -d #不启用CA,不启动couchdb
# cargador de muelle de composición del -f ventana acoplable de composición del cli.yaml-f-ventana acoplable componer-couch.yaml hasta -d启用couchdb

② ventana acoplable ejecutivo -es cli bash # recipiente en la CLI

Configurar las variables de entorno, de manera que el contenedor como CLI peer0.org1.example.com nodo de ejecución, las operaciones posteriores requieren una gran cantidad de cambiar constantemente las variables de entorno a un nodo de grupo diferente para realizar operaciones relacionadas, nodo peer0.org1.example.com ambiente contenedor cli configuración variables de forma predeterminada, peer0.org1.example.com variable de entorno como sigue,

CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/users/[email protected]/msp CORE_PEER_ADDRESS = peer0.org1.example.com: 7051 CORE_PEER_LOCALMSPID = "Org1MSP" CORE_PEER_TLS_ROOTCERT_FILE = / opt / gopath / src / github.com / hyperledger / tela / pares / crypto / peerOrganizations / org1.example.com / peers / peer0.org1.example.com / TLS / ca.crt

Para facilitar la visualización, este nodo se da primero, mientras que peer0.org2.example.com variables de entorno:

CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/users/[email protected]/msp
CORE_PEER_ADDRESS = peer0.org2.example.com: 9051
CORE_PEER_LOCALMSPID = "Org2MSP"
CORE_PEER_TLS_ROOTCERT_FILE = / opt / GOPATH / src / github.com / hyperledger / Tela / uso del par / Crypto / peerOrganizations / org2.example.com / compañeros / peer0.org2.example.com / TLS / en ca.crt

③ la transacción configuración de canal de transmisión para el nodo para crear canales

exportación CHANNEL_NAME = mychannel # Establecer el nombre del canal en forma de variables de entorno para el comando

canal de pares crear -o orderer.example.com:7050 -c -f $ CHANNEL_NAME ./channel-artifacts/channel.tx --tls --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/ crypto / ordererOrganizations / example.com / orderers / orderer.example.com / MSP / tlscacerts / tlsca.example.com-cert.pem

④ conmutación de variables de entorno, ejecutar repetidamente el siguiente comando será añadido a todos los canales linfáticos

pares de canales se unen a - b mychannel . bloquear

⑤ cambiar las variables de entorno, ejecutar repetidamente el siguiente comando para actualizar el nodo de anclaje del tejido

actualización del canal de pares -o orderer.example.com:7050 -c -f $ CHANNEL_NAME ./channel-artifacts/${CORE_PEER_LOCALMSPID}anchors.tx --tls --cafile /opt/gopath/src/github.com/hyperledger/ tela / pares / crypto / ordererOrganizations / example.com / orderers / orderer.example.com / MSP / tlscacerts / tlsca.example.com-cert.pem

Ⅲ instalación, ejemplos de código de cadena (instanciación, nodo y java lleva más tiempo lleva a cabo initu otra transacción a causa del código de cadena de accionamiento del contenedor), para código de cadena chaincode_example02 Ejemplo

① conmutación de variables de entorno, el mando repetidamente, los diferentes nodos en el código de cadena instaladas

chaincode pares instalar -n MYCC -v 1,0 -p github.com/chaincode/chaincode_example02/go/ #Golang

pares chaincode install MYCC -n -v 1,0 -l nodo -p /opt/gopath/src/github.com/chaincode/chaincode_example02/node/ # Node.js

chaincode pares instalar -n MYCC -v 1,0 -l java -p /opt/gopath/src/github.com/chaincode/chaincode_example02/java/ #java

②  conmutación de variables de entorno, el mando repetidamente, los ejemplos del código de cadena en diferentes nodos

mirar chaincode instantiate -o orderer.example.com:7050 --tls --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com /msp/tlscacerts/tlsca.example.com-cert.pem -C $ CHANNEL_NAME -n MYCC -v 1,0 -c '{ "Args": [ "init", "a", "100", "b"," 200" ]}' -P "Y ( 'Org1MSP.peer', 'Org2MSP.peer')" #Golang

mirar chaincode instantiate -o orderer.example.com:7050 --tls --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com /msp/tlscacerts/tlsca.example.com-cert.pem -C $ CHANNEL_NAME -n MYCC -l nodo -v 1,0 -c '{ "Args": [ "init", "a", "100", "b ", "200"]}' -P "Y ( 'Org1MSP.peer', 'Org2MSP.peer')" # Node.js

mirar chaincode instantiate -o orderer.example.com:7050 --tls --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com /msp/tlscacerts/tlsca.example.com-cert.pem -C $ CHANNEL_NAME -n MYCC -l java -v 1,0 -c '{ "Args": [ "init", "a", "100", "b ", "200"]}' -P "Y ( 'Org1MSP.peer', 'Org2MSP.peer')" #java

③ clave de la investigación 'a' Valor en la base de datos de estado

consulta de pares chaincode -C $ CHANNEL_NAME -n MYCC -c '{ "Args": [ "consulta", "A"]}'

función ④ llamada 'invoke', una transferencia a una 10 b

mirar chaincode invocación -o orderer.example.com:7050 --tls cierto /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example --cafile. com / MSP / tlscacerts / tlsca.example.com-cert.pem -C $ CHANNEL_NAME -n MYCC --peerAddresses peer0.org1.example.com:7051 --tlsRootCertFiles /opt/gopath/src/github.com/hyperledger/ tela / compañeros / crypto / peerOrganizations / org1.example.com / compañeros / peer0.org1.example.com / TLS / ca.crt --peerAddresses peer0.org2.example.com:9051 --tlsRootCertFiles / opt / gopath / src /github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt -c '{ "Args": [ "invoke"," a", "b", "10"]}'

Tela base de datos predeterminada para LevelDB, el apoyo LevelDB sólo para analizar los datos, CLAVE, y couchdb admite el uso de consultas ricos, puede consulta basada en un atributo de valor, código de cadena caso marbles02 muestra cómo utilizar la consulta rica en este par prueba de código de cadena caso marbles02 (usando ventana acoplable contenedor web de composición, añadir el archivo yaml couchdb correspondiente a los pasos restantes los mismos que anteriormente)

estibador ejecutivo -es cli bash # recipiente en la CLI

exportación CHANNEL_NAME = mychannel # nombre del canal

① instalación, ejemplos de código de cadena (-L en el presente documento por el nodo y el nodo instanciación versión de idioma código de cadena, por defecto de montaje para ir y venir -p necesidad del código de cadena única versión especificar el github.com/chaincode/marbles02/go ruta relativa) ( la política de respaldo designado "OR ( 'Org1MSP.peer', 'Org2MSP.peer')", por lo que la instalación y sólo en peer0.org1.example.com ejemplos de código de cadena puede)

chaincode pares instalar -n mármoles -l nodo -v 1,0 -p /opt/gopath/src/github.com/chaincode/marbles02/node

mirar chaincode instantiate -o orderer.example.com:7050 --tls --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com /msp/tlscacerts/tlsca.example.com-cert.pem -C $ CHANNEL_NAME -n mármoles -l nodo -v 1,0 -c '{ "Args": [ "init"]}' -P "OR ( 'Org1MSP. pares', 'Org2MSP.peer')"

② crear algunos mármoles y los transfirió (puede introducir en el navegador http: // localhost: 5984 / _utils vista de estado de base de datos couchdb)

mirar chaincode invocación -o orderer.example.com:7050 --tls --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com /msp/tlscacerts/tlsca.example.com-cert.pem -C $ CHANNEL_NAME -n mármoles -c '{ "Args": [ "initMarble", "marble1", "azul", "35", "tom"] }' chaincode pares de invocación -o orderer.example.com:7050 --tls --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example .com / MSP / tlscacerts / tlsca.example.com-cert.pem -C $ CHANNEL_NAME -n mármoles -c '{ "Args": [ "initMarble", "marble2", "rojo", "50", "tom "]}' chaincode pares de invocación -o orderer.example.com:7050 --tls --cafile / opt / gopath / src / gitHub.com / hyperledger / tela / compañeros / crypto / ordererOrganizations / example.com / orderers / orderer.example.com / MSP / tlscacerts / tlsca.example.com-cert.pem -C $ CHANNEL_NAME -n mármoles -c '{ "Args ": [" initMarble", "marble3", "azul", "70", "tom"]}' chaincode pares de invocación -o orderer.example.com:7050 --tls --cafile / opt / gopath / src / github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem -C $ CHANNEL_NAME -n mármoles -c '{ "Args": [ "transferMarble", "marble2", "Jerry"]}' chaincode pares de invocación -o orderer.example.com:7050 --tls --cafile /opt/gopath/src/github.com/hyperledger/ tela / pares / crypto / ordererOrganizations / example.com / orderers / orderer.example.com / MSP / tlscacerts / tlsca.example.com-cert.pem -C $ CHANNEL_NAME -n mármoles -c '{ "Args": [ "transferMarblesBasedOnColor", "azul", "Jerry"]}' chaincode pares de invocación -o orderer.example.com:7050 --tls --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem - C $ CHANNEL_NAME -n mármoles -c '{ "Args:" [ "borrar", "marble1"]}'pem -C $ CHANNEL_NAME -n mármoles -c '{ "Args:" [ "Borrar", "marble1"]}'pem -C $ CHANNEL_NAME -n mármoles -c '{ "Args:" [ "Borrar", "marble1"]}'

③ consulta

consulta de pares chaincode -C $ CHANNEL_NAME -n mármoles -c '{ "Args": [ "readMarble", "marble2"]}' # canicas por marble2 nombre de la consulta

consulta de pares chaincode -C $ CHANNEL_NAME -n mármoles -c '{ "Args": [ "" "marble1 getHistoryForMarble"]}' canicas historia # concreto de búsqueda

consulta de pares chaincode -C $ CHANNEL_NAME -n mármoles -c '{ 'Args': [ 'queryMarblesByOwner', 'Jerry']}' # También puede realizar consultas sobre el contenido rico en datos, como las consultas por mármoles propietario

 

otros:

① cadena actualización código: versión modificada, instalado en el código de cadena nodo nuevo:

pares chaincode instalar -n elecData -l nodo -v 1,1 -p /opt/gopath/src/github.com/chaincode/always/ElecData

comando de actualización y creación de instancias comandos sustancialmente el mismo, sólo tiene que actualizar instantiate

pares chaincode actualizar -o orderer.example.com:7050 --tls --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com /msp/tlscacerts/tlsca.example.com-cert.pem -C $ CHANNEL_NAME -n elecData -l nodo -v 1,1 -c '{ "Args": [ "instantiate"]}' -P "OR ( 'Org1MSP. pares', 'Org2MSP.peer')"

 ② ver el registro de:

logs acoplables -f cli # ver la red información de la transacción a través de registros de contenedores de la CLI

formato de código de cadena de comando de código de cadena contenedor # Ver registro ventana acoplable registros

código de cadena ③ FabricV1.4 JS web oficial

https://hyperledger.github.io/fabric-chaincode-node/release-1.4/api/
https://github.com/hyperledger/fabric-chaincode-node/tree/v1.4.5
https: //hyperledger.github .IO / tela-chaincode-nodo /

④ Tela JS SDK1.4 web oficial
https://github.com/hyperledger/fabric-sdk-node
https://hyperledger.github.io/fabric-sdk-node/release-1.4/index.html

⑤-muestras de tela dirección: https: //github.com/hyperledger/fabric-samples

⑥ V1.4 archivos binarios y las secuencias de comandos de instalación de imagen: rizo -sSL http://bit.ly/2ysbOFE | fiesta -s - 1.4.6 1.4.6 0.4.18

Simple rizo -sSL http://bit.ly/2ysbOFE | fiesta -s versión actual siempre se instala por defecto, por lo que es necesario especificar un número de versión 1.4

 

 

 

 

Supongo que te gusta

Origin www.cnblogs.com/always-kaixuan/p/12468374.html
Recomendado
Clasificación