diff --git a/hyperledger/1.0.1/Dockerfile b/hyperledger/1.0.1/Dockerfile new file mode 100644 index 00000000..777eeb4a --- /dev/null +++ b/hyperledger/1.0.1/Dockerfile @@ -0,0 +1,24 @@ +# yeasy/hyperledger-fabric-peer:dev +# Dockerfile for developing Hyperledger peer image. This actually follow +# yeasy/hyperledger-fabric-peer image and add local source code to build the +# fabric binaries. +# Data is stored under /var/hyperledger/db and /var/hyperledger/production + +FROM yeasy/hyperledger-fabric-base:latest +LABEL maintainer "Baohua Yang " + +EXPOSE 7051 + +# ENV CORE_PEER_MSPCONFIGPATH $FABRIC_CFG_PATH/msp + +COPY $GOPATH/src/github.com/hyperledger/fabric /go/src/github.com/hyperledger/ + +# install fabric peer and copy sampleconfigs +RUN cd $FABRIC_ROOT/peer \ + && CGO_CFLAGS=" " go install -ldflags "$LD_FLAGS -linkmode external -extldflags '-static -lpthread'" \ + && go clean + +# This will start with joining the default chain "testchainid" +# Use `peer node start --peer-defaultchain=false` will join no channel by default. +# Then need to manually create a chain with `peer channel create -c test_chain`, then join with `peer channel join -b test_chain.block`. +CMD ["peer","node","start"] diff --git a/hyperledger/1.0.1/Makefile b/hyperledger/1.0.1/Makefile new file mode 100644 index 00000000..3664830c --- /dev/null +++ b/hyperledger/1.0.1/Makefile @@ -0,0 +1,117 @@ +COMPOSE_FILE="docker-compose-2orgs-4peers.yaml" +COMPOSE_DEV_FILE="docker-compose-dev.yaml" + +all: + @echo "Please make sure u have setup Docker and pulled images by 'make setup'." + sleep 2 + + @echo "Restarting network..." + make restart + + make init + sleep 2 + + make test_cc + sleep 1 + + make lscc + sleep 1 + + make qscc + sleep 1 + + make stop + +dev: + @echo "Please make sure u have setup Docker and pulled images by 'make setup'." + sleep 2 + + @echo "Restarting dev network..." + make dev_restart + + make dev_init + sleep 2 + + make test_peer0 + sleep 1 + + make lscc + sleep 1 + + make qscc + sleep 1 + + make dev_stop + +ready: + make stop + make start + sleep 3 + + make init + sleep 3 + + make test_cc + @echo "Now the fabric network is ready to play" + @echo "run 'make cli' to enter into the fabric-cli container." + @echo "run 'make stop' when done." + +setup: # setup the environment + bash scripts/setup_Docker.sh # Install Docker, Docker-Compose + bash scripts/download_images.sh # Pull required Docker images + +start: # bootup the fabric network + @echo "Start a fabric network with 2-org-4-peer" + docker-compose -f ${COMPOSE_FILE} up -d # Start a fabric network + +init: # initialize the fabric network + @echo "Install and instantiate cc example02 on the fabric network" + docker exec -it fabric-cli bash -c "cd /tmp; bash scripts/initialize_all.sh" + +test_cc: # test chaincode + @echo "Invoke and query cc example02 on all peers" + docker exec -it fabric-cli bash -c "cd /tmp; bash scripts/test_cc_all.sh" + +test_peer0: # test single peer + @echo "Invoke and query cc example02 on single peer0" + docker exec -it fabric-cli bash -c "cd /tmp; bash scripts/test_cc_peer0.sh" + +qscc: # test qscc quries + docker exec -it fabric-cli bash -c "cd /tmp; bash scripts/test_qscc.sh" + +lscc: # test lscc quries + docker exec -it fabric-cli bash -c "cd /tmp; bash scripts/test_lscc.sh" + +stop: # stop the fabric network + @echo "Stop the fabric network" + docker-compose -f ${COMPOSE_FILE} down # Stop a fabric network + +restart: stop start + +clean: # clean up environment + @echo "Clean all images and containers" + bash scripts/clean_env.sh + +cli: # enter the cli container + docker exec -it fabric-cli bash + +ps: # show existing docker images + docker ps -a + +logs: # show logs + docker-compose -f ${COMPOSE_FILE} logs -f --tail 200 + +dev_start: # start fabric network for dev + @echo "Start a fabric network with 1 peer for dev" + docker-compose -f ${COMPOSE_DEV_FILE} up -d + +dev_init: # initialize the fabric network + @echo "Install and instantiate cc example02 on the fabric dev network" + docker exec -it fabric-cli bash -c "cd /tmp; bash scripts/initialize_peer0.sh" + +dev_stop: # stop the fabric network for dev + @echo "Stop the fabric network with 1 peer for dev" + docker-compose -f ${COMPOSE_DEV_FILE} down + +dev_restart: dev_stop dev_start + diff --git a/hyperledger/1.0.1/README.md b/hyperledger/1.0.1/README.md new file mode 100644 index 00000000..261ccc54 --- /dev/null +++ b/hyperledger/1.0.1/README.md @@ -0,0 +1,144 @@ +# Hyperledger fabric 1.0 + +Here we show steps on how to setup a fabric 1.0 network on Linux (e.g., Ubuntu/Debian), and then use it to run chaincode tests. + +If you're not familiar with Docker and Blockchain technology yet, feel free to have a look at 2 books (in CN): + +* [Docker Practice](https://github.com/yeasy/docker_practice) +* [Blockchain Guide](https://github.com/yeasy/blockchain_guide) + + +## Pass-through + +The following command will run the entire process (start a fabric network, create channel, test chaincode and stop it.) pass-through. + +```sh +$ make setup # install docker/compose, and pull required images +$ make all +``` + +tldr :) + +`make all` actually call following command sequentially. + +* `make start` +* `make init` +* `make test_cc` +* `make stop` + +Otherwise, if u wanna know more or run the command manually, then go on reading the following part. + +## Environment Setup + +The following scripts will setup the environment by installing Docker, Docker-Compose and download required docker images. + +```sh +$ make setup # setup environment +``` + +If you want to setup the environment manually, then have a look at [manually setup](docs/setup.md). + +## Bootup Fabric Network + +Start a 4 peer (belonging to 2 organizations) fabric network. + +```sh +$ make start # Start a fabric network +``` +The script actually uses docker-compose to boot up the fabric network with several containers. + +There will be 7 running containers, include 4 peers, 1 cli, 1 ca and 1 orderer. + +```bash +$ make ps +CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES +1dc3f2557bdc hyperledger/fabric-tools "bash -c 'while tr..." 25 minutes ago Up 25 minutes fabric-cli +5e5f37a0ed3c hyperledger/fabric-peer "peer node start" 25 minutes ago Up 25 minutes 7050/tcp, 7054-7059/tcp, 0.0.0.0:8051->7051/tcp, 0.0.0.0:8052->7052/tcp, 0.0.0.0:8053->7053/tcp peer1.org1.example.com +6cce94da6392 hyperledger/fabric-peer "peer node start" 25 minutes ago Up 25 minutes 7050/tcp, 7054-7059/tcp, 0.0.0.0:9051->7051/tcp, 0.0.0.0:9052->7052/tcp, 0.0.0.0:9053->7053/tcp peer0.org2.example.com +e36c5e8d56c5 hyperledger/fabric-peer "peer node start" 25 minutes ago Up 25 minutes 7050/tcp, 7054-7059/tcp, 0.0.0.0:7051-7053->7051-7053/tcp peer0.org1.example.com +1fdd3d2b6527 hyperledger/fabric-orderer "orderer start" 25 minutes ago Up 25 minutes 0.0.0.0:7050->7050/tcp orderer.example.com +8af323340651 hyperledger/fabric-ca "fabric-ca-server ..." 25 minutes ago Up 25 minutes 0.0.0.0:7054->7054/tcp fabric-ca +e41d8bca7fe5 hyperledger/fabric-peer "peer node start" 25 minutes ago Up 25 minutes 7050/tcp, 7054-7059/tcp, 0.0.0.0:10051->7051/tcp, 0.0.0.0:10052->7052/tcp, 0.0.0.0:10053->7053/tcp peer1.org2.example.com +``` + +### Initialize Fabric network + +```bash +$ make init # Start a fabric network +``` + +The command actually calls the `./scripts/initialize.sh` script in the `fabric-cli` container to: + +* create a new application channel `businesschannel` +* join all peers into the channel +* install and instantiate chaincode `example02` for testing + +This script only needs to be executed once. + +You should see result like the following if the initialization is successful. + +```bash +============================================== +==========initialize businesschannel========== +============================================== + +Channel name : businesschannel +Creating channel... + +... + +===================== All GOOD, initialization completed ===================== +``` + +And there will be new chaincode container generated in the system, looks like + +```bash +$ make ps +CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES +9971c9fd1971 dev-peer1.org2.example.com-mycc-1.0 "chaincode -peer.a..." 54 seconds ago Up 53 seconds dev-peer1.org2.example.com-mycc-1.0 +e3092961b81b dev-peer1.org1.example.com-mycc-1.0 "chaincode -peer.a..." About a minute ago Up About a minute dev-peer1.org1.example.com-mycc-1.0 +57d3555f56e5 dev-peer0.org2.example.com-mycc-1.0 "chaincode -peer.a..." About a minute ago Up About a minute dev-peer0.org2.example.com-mycc-1.0 +c9974dbc21d9 dev-peer0.org1.example.com-mycc-1.0 "chaincode -peer.a..." 23 minutes ago Up 23 minutes dev-peer0.org1.example.com-mycc-1.0 +``` + + +## Test Chaincode + +```bash +$ make test_cc # test invoke and query with chaincode +``` + +More details, see [chaincode test](docs/chaincode_test.md). + + +## Stop the network + +```bash +$ make stop # stop the fabric network +``` + +## Clean environment + +Clean all related containers and images. + +```bash +$ make clean # clean the environment +``` + +## More to learn + +Topics | Description +-- | -- +[Detailed Explanation](./docs/detailed_steps.md) | Explain in detail how a 1-peer network start and test. +[Fetch blocks](docs/peer_cmds.md) | Fetch blocks using `peer channel fetch` cmd. +[Use Events](./docs/events.md) | Get events with block-listener +[Artifacts Generation](docs/artifacts_generation.md) | Will explain the usage of `cryptogen` and `configtxgen` to prepare the artifacts for booting the fabric network. +[couchDB](docs/couchdb_usage.md) | Use couchDB as the state DB. +[kafka](./kafka/README.md) | Use kafka as the orderering backend +[configtxlator](docs/configtxlator.md) | Use configtxlator to convert the configurations +[WIP] [Some verification tests](docs/verification_test.md) | + + +## Acknowledgement +* [Hyperledger Fabric](https://github.com/hyperledger/fabric/) project. +* [Hyperledger Fabric Getting Started](http://hyperledger-fabric.readthedocs.io/en/latest/getting_started.html). diff --git a/hyperledger/1.0.1/artifacts_generation/add-org.sh b/hyperledger/1.0.1/artifacts_generation/add-org.sh new file mode 100644 index 00000000..960462ca --- /dev/null +++ b/hyperledger/1.0.1/artifacts_generation/add-org.sh @@ -0,0 +1,28 @@ +#! /bin/bash + +echo "replace configtx.yaml and crypto-config.yaml" +cp ./peer/example2/configtx.yaml ./peer +cp ./peer/example2/crypto-config.yaml ./peer + +echo "replace auto-test script " +cp ./peer/example2/new-channel-auto-test-5-peers.sh ./peer/scripts + +echo "replace configtx.yaml" +cp ./peer/configtx.yaml /etc/hyperledger/fabric + +echo "Generate new certificates" + +cryptogen generate --config=./peer/crypto-config.yaml --output ./peer/crypto + +echo "Generate new certificates" +configtxgen -profile TwoOrgsOrdererGenesis -outputBlock ./peer/channel-artifacts/orderer_genesis.block + +echo "Create the configuration tx" +CHANNEL_NAME=newchannel +configtxgen -profile TwoOrgsChannel -outputCreateChannelTx ./peer/channel-artifacts/channel.tx -channelID ${CHANNEL_NAME} + +echo "Define the anchor peer for Org1 on the channel" +configtxgen -profile TwoOrgsChannel -outputAnchorPeersUpdate ./peer/channel-artifacts/Org1MSPanchors.tx -channelID ${CHANNEL_NAME} -asOrg Org1MSP +configtxgen -profile TwoOrgsChannel -outputAnchorPeersUpdate ./peer/channel-artifacts/Org2MSPanchors.tx -channelID ${CHANNEL_NAME} -asOrg Org2MSP +configtxgen -profile TwoOrgsChannel -outputAnchorPeersUpdate ./peer/channel-artifacts/Org3MSPanchors.tx -channelID ${CHANNEL_NAME} -asOrg Org3MSP + diff --git a/hyperledger/1.0.1/artifacts_generation/configtx.yaml b/hyperledger/1.0.1/artifacts_generation/configtx.yaml new file mode 100644 index 00000000..ca067b6c --- /dev/null +++ b/hyperledger/1.0.1/artifacts_generation/configtx.yaml @@ -0,0 +1,216 @@ +# Copyright IBM Corp. All Rights Reserved. +# +# SPDX-License-Identifier: Apache-2.0 +# + +--- +################################################################################ +# +# Profile +# +# - Different configuration profiles may be encoded here to be specified +# as parameters to the configtxgen tool +# +################################################################################ +Profiles: + + TwoOrgsOrdererGenesis: + Orderer: + <<: *OrdererDefaults + Organizations: + - *OrdererOrg + Consortiums: + SampleConsortium: + Organizations: + - *Org1 + - *Org2 + - *Org3 + TwoOrgsChannel: + Consortium: SampleConsortium + Application: + <<: *ApplicationDefaults + Organizations: + - *Org1 + - *Org2 + - *Org3 + +################################################################################ +# +# Section: Organizations +# +# - This section defines the different organizational identities which will +# be referenced later in the configuration. +# +################################################################################ +Organizations: + + # SampleOrg defines an MSP using the sampleconfig. It should never be used + # in production but may be used as a template for other definitions + - &OrdererOrg + # DefaultOrg defines the organization which is used in the sampleconfig + # of the fabric.git development environment + Name: OrdererOrg + + # ID to load the MSP definition as + ID: OrdererMSP + + # MSPDir is the filesystem path which contains the MSP configuration + MSPDir: crypto-config/ordererOrganizations/example.com/msp + + # BCCSP (Blockchain crypto provider): Select which crypto implementation or + # library to use + BCCSP: + Default: SW + SW: + Hash: SHA2 + Security: 256 + # Location of Key Store. If this is unset, a location will + # be chosen using 'MSPDir'/keystore + FileKeyStore: + KeyStore: + + - &Org1 + # DefaultOrg defines the organization which is used in the sampleconfig + # of the fabric.git development environment + Name: Org1MSP + + # ID to load the MSP definition as + ID: Org1MSP + + MSPDir: crypto-config/peerOrganizations/org1.example.com/msp + + # BCCSP (Blockchain crypto provider): Select which crypto implementation or + # library to use + BCCSP: + Default: SW + SW: + Hash: SHA2 + Security: 256 + # Location of Key Store. If this is unset, a location will + # be chosen using 'MSPDir'/keystore + FileKeyStore: + KeyStore: + + AnchorPeers: + # AnchorPeers defines the location of peers which can be used + # for cross org gossip communication. Note, this value is only + # encoded in the genesis block in the Application section context + - Host: peer0.org1.example.com + Port: 7051 + + - &Org2 + # DefaultOrg defines the organization which is used in the sampleconfig + # of the fabric.git development environment + Name: Org2MSP + + # ID to load the MSP definition as + ID: Org2MSP + + MSPDir: crypto-config/peerOrganizations/org2.example.com/msp + + # BCCSP (Blockchain crypto provider): Select which crypto implementation or + # library to use + BCCSP: + Default: SW + SW: + Hash: SHA2 + Security: 256 + # Location of Key Store. If this is unset, a location will + # be chosen using 'MSPDir'/keystore + FileKeyStore: + KeyStore: + + AnchorPeers: + # AnchorPeers defines the location of peers which can be used + # for cross org gossip communication. Note, this value is only + # encoded in the genesis block in the Application section context + - Host: peer0.org2.example.com + Port: 7051 + + - &Org3 + # DefaultOrg defines the organization which is used in the sampleconfig + # of the fabric.git development environment + Name: Org3MSP + + # ID to load the MSP definition as + ID: Org3MSP + + MSPDir: crypto-config/peerOrganizations/org3.example.com/msp + + # BCCSP (Blockchain crypto provider): Select which crypto implementation or + # library to use + BCCSP: + Default: SW + SW: + Hash: SHA2 + Security: 256 + # Location of Key Store. If this is unset, a location will + # be chosen using 'MSPDir'/keystore + FileKeyStore: + KeyStore: + + AnchorPeers: + # AnchorPeers defines the location of peers which can be used + # for cross org gossip communication. Note, this value is only + # encoded in the genesis block in the Application section context + - Host: peer0.org3.example.com + Port: 7051 + +################################################################################ +# +# SECTION: Orderer +# +# - This section defines the values to encode into a config transaction or +# genesis block for orderer related parameters +# +################################################################################ +Orderer: &OrdererDefaults + + # Orderer Type: The orderer implementation to start + # Available types are "solo" and "kafka" + OrdererType: solo + + Addresses: + - orderer.example.com:7050 + + # Batch Timeout: The amount of time to wait before creating a batch + BatchTimeout: 2s + + # Batch Size: Controls the number of messages batched into a block + BatchSize: + + # Max Message Count: The maximum number of messages to permit in a batch + MaxMessageCount: 10 + + # Absolute Max Bytes: The absolute maximum number of bytes allowed for + # the serialized messages in a batch. + AbsoluteMaxBytes: 99 MB + + # Preferred Max Bytes: The preferred maximum number of bytes allowed for + # the serialized messages in a batch. A message larger than the preferred + # max bytes will result in a batch larger than preferred max bytes. + PreferredMaxBytes: 512 KB + + Kafka: + # Brokers: A list of Kafka brokers to which the orderer connects + # NOTE: Use IP:port notation + Brokers: + - 127.0.0.1:9092 + + # Organizations is the list of orgs which are defined as participants on + # the orderer side of the network + Organizations: + +################################################################################ +# +# SECTION: Application +# +# - This section defines the values to encode into a config transaction or +# genesis block for application related parameters +# +################################################################################ +Application: &ApplicationDefaults + + # Organizations is the list of orgs which are defined as participants on + # the application side of the network + Organizations: diff --git a/hyperledger/1.0.1/artifacts_generation/crypto-config.yaml b/hyperledger/1.0.1/artifacts_generation/crypto-config.yaml new file mode 100644 index 00000000..636986fd --- /dev/null +++ b/hyperledger/1.0.1/artifacts_generation/crypto-config.yaml @@ -0,0 +1,82 @@ +# --------------------------------------------------------------------------- +# "OrdererOrgs" - Definition of organizations managing orderer nodes +# --------------------------------------------------------------------------- +OrdererOrgs: + # --------------------------------------------------------------------------- + # Orderer + # --------------------------------------------------------------------------- + - Name: Orderer + Domain: example.com + # --------------------------------------------------------------------------- + # "Specs" - See PeerOrgs below for complete description + # --------------------------------------------------------------------------- + Specs: + - Hostname: orderer +# --------------------------------------------------------------------------- +# "PeerOrgs" - Definition of organizations managing peer nodes +# --------------------------------------------------------------------------- +PeerOrgs: + # --------------------------------------------------------------------------- + # Org1 + # --------------------------------------------------------------------------- + - Name: Org1 + Domain: org1.example.com + # --------------------------------------------------------------------------- + # "Specs" + # --------------------------------------------------------------------------- + # Uncomment this section to enable the explicit definition of hosts in your + # configuration. Most users will want to use Template, below + # + # Specs is an array of Spec entries. Each Spec entry consists of two fields: + # - Hostname: (Required) The desired hostname, sans the domain. + # - CommonName: (Optional) Specifies the template or explicit override for + # the CN. By default, this is the template: + # + # "{{.Hostname}}.{{.Domain}}" + # + # which obtains its values from the Spec.Hostname and + # Org.Domain, respectively. + # --------------------------------------------------------------------------- + # Specs: + # - Hostname: foo # implicitly "foo.org1.example.com" + # CommonName: foo27.org5.example.com # overrides Hostname-based FQDN set above + # - Hostname: bar + # - Hostname: baz + # --------------------------------------------------------------------------- + # "Template" + # --------------------------------------------------------------------------- + # Allows for the definition of 1 or more hosts that are created sequentially + # from a template. By default, this looks like "peer%d" from 0 to Count-1. + # You may override the number of nodes (Count), the starting index (Start) + # or the template used to construct the name (Hostname). + # + # Note: Template and Specs are not mutually exclusive. You may define both + # sections and the aggregate nodes will be created for you. Take care with + # name collisions + # --------------------------------------------------------------------------- + Template: + Count: 2 + # Start: 5 + # Hostname: {{.Prefix}}{{.Index}} # default + # --------------------------------------------------------------------------- + # "Users" + # --------------------------------------------------------------------------- + # Count: The number of user accounts _in addition_ to Admin + # --------------------------------------------------------------------------- + Users: + Count: 1 + # --------------------------------------------------------------------------- + # Org2: See "Org1" for full specification + # --------------------------------------------------------------------------- + - Name: Org2 + Domain: org2.example.com + Template: + Count: 2 + Users: + Count: 1 + - Name: Org3 + Domain: org3.example.com + Template: + Count: 1 + Users: + Count: 1 diff --git a/hyperledger/1.0.1/artifacts_generation/docker-compose-2orgs.yml b/hyperledger/1.0.1/artifacts_generation/docker-compose-2orgs.yml new file mode 100644 index 00000000..b9d9e0ee --- /dev/null +++ b/hyperledger/1.0.1/artifacts_generation/docker-compose-2orgs.yml @@ -0,0 +1,94 @@ +# https://github.com/yeasy/docker-compose-files/tree/master/hyperledger +# This compose file will start a Hyperledger Fabric 1.0 MVE, including +# * ca +# * orderer +# * peer +# * sdk for testing + +version: '2.0' + +services: + ca: + image: hyperledger/fabric-ca + container_name: fabric-ca + hostname: ca + # command: /go/src/github.com/hyperledger/fabric-ca/bin/ca server start -ca testdata/ec.pem -ca-key testdata/ec-key.pem -config testdata/testconfig.json + ports: + - "7054:7054" + command: fabric-ca-server start -b admin:adminpw + + orderer.example.com: # There can be multiple orderers + container_name: orderer.example.com + extends: + file: peer-base.yml + service: orderer.example.com + + peer0.org1.example.com: + extends: + file: peer-base.yml + service: peer0.org1.example.com + container_name: peer0.org1.example.com + + peer1.org1.example.com: + extends: + file: peer-base.yml + service: peer1.org1.example.com + container_name: peer1.org1.example.com + + peer0.org2.example.com: + extends: + file: peer-base.yml + service: peer0.org2.example.com + container_name: peer0.org2.example.com + + peer1.org2.example.com: + extends: + file: peer-base.yml + service: peer1.org2.example.com + container_name: peer1.org2.example.com + + peer0.org3.example.com: + extends: + file: peer-base.yml + service: peer0.org3.example.com + container_name: peer0.org3.example.com + + cli: + extends: + file: peer.yml + service: peer + container_name: fabric-cli + hostname: cli + environment: + - CORE_PEER_ID=cli + - CORE_PEER_ADDRESS=peer0.org1.example.com:7051 + - CORE_PEER_LOCALMSPID=Org1MSP + - CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp + - CORE_PEER_TLS_ENABLED=false # to enable TLS, change to true + - CORE_PEER_TLS_CERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/server.crt + - CORE_PEER_TLS_KEY_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/server.key + - CORE_PEER_TLS_ROOTCERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt + links: + - peer0.org1.example.com + - orderer.example.com + volumes: + #- ./e2e_cli/examples:/opt/gopath/src/github.com/hyperledger/fabric/examples + - ./e2e_cli/crypto-config:/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ + - ./e2e_cli/crypto-config:/etc/hyperledger/fabric/crypto-config + - ./example2:/opt/gopath/src/github.com/hyperledger/fabric/peer/example2 + - ./scripts:/opt/gopath/src/github.com/hyperledger/fabric/peer/scripts/ + - ./e2e_cli/channel-artifacts:/opt/gopath/src/github.com/hyperledger/fabric/peer/channel-artifacts + - ./e2e_cli/configtx.yaml:/opt/gopath/src/github.com/hyperledger/fabric/peer/configtx.yaml + - ./e2e_cli/crypto-config.yaml:/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto-config.yaml + depends_on: + - orderer.example.com + - peer0.org1.example.com + - peer1.org1.example.com + - peer0.org2.example.com + - peer1.org2.example.com + command: bash -c 'while true; do sleep 20170504; done' + +#networks: +# default: +# external: +# name: hyperledger_fabric diff --git a/hyperledger/1.0.1/artifacts_generation/generateArtifacts.sh b/hyperledger/1.0.1/artifacts_generation/generateArtifacts.sh new file mode 100644 index 00000000..c78bff00 --- /dev/null +++ b/hyperledger/1.0.1/artifacts_generation/generateArtifacts.sh @@ -0,0 +1,103 @@ +#!/bin/bash +x +# +# Copyright IBM Corp. All Rights Reserved. +# +# SPDX-License-Identifier: Apache-2.0 +# + + +#set -e + +CHANNEL_NAME=$1 +: ${CHANNEL_NAME:="mychannel"} +echo $CHANNEL_NAME + +export FABRIC_ROOT=$PWD/../.. +export FABRIC_CFG_PATH=$PWD +echo + +OS_ARCH=$(echo "$(uname -s|tr '[:upper:]' '[:lower:]'|sed 's/mingw64_nt.*/windows/')-$(uname -m | sed 's/x86_64/amd64/g')" | awk '{print tolower($0)}') + +## Using docker-compose template replace private key file names with constants +function replacePrivateKey () { + ARCH=`uname -s | grep Darwin` + if [ "$ARCH" == "Darwin" ]; then + OPTS="-it" + else + OPTS="-i" + fi + + cp docker-compose-e2e-template.yaml docker-compose-e2e.yaml + + CURRENT_DIR=$PWD + cd crypto-config/peerOrganizations/org1.example.com/ca/ + PRIV_KEY=$(ls *_sk) + cd $CURRENT_DIR + sed $OPTS "s/CA1_PRIVATE_KEY/${PRIV_KEY}/g" docker-compose-e2e.yaml + cd crypto-config/peerOrganizations/org2.example.com/ca/ + PRIV_KEY=$(ls *_sk) + cd $CURRENT_DIR + sed $OPTS "s/CA2_PRIVATE_KEY/${PRIV_KEY}/g" docker-compose-e2e.yaml +} + +## Generates Org certs using cryptogen tool +function generateCerts (){ + CRYPTOGEN=$FABRIC_ROOT/release/$OS_ARCH/bin/cryptogen + + if [ -f "$CRYPTOGEN" ]; then + echo "Using cryptogen -> $CRYPTOGEN" + else + echo "Building cryptogen" + make -C $FABRIC_ROOT release + fi + + echo + echo "##########################################################" + echo "##### Generate certificates using cryptogen tool #########" + echo "##########################################################" + $CRYPTOGEN generate --config=./crypto-config.yaml + echo +} + +## Generate orderer genesis block , channel configuration transaction and anchor peer update transactions +function generateChannelArtifacts() { + + CONFIGTXGEN=$FABRIC_ROOT/release/$OS_ARCH/bin/configtxgen + if [ -f "$CONFIGTXGEN" ]; then + echo "Using configtxgen -> $CONFIGTXGEN" + else + echo "Building configtxgen" + make -C $FABRIC_ROOT release + fi + + echo "##########################################################" + echo "######### Generating Orderer Genesis block ##############" + echo "##########################################################" + # Note: For some unknown reason (at least for now) the block file can't be + # named orderer.genesis.block or the orderer will fail to launch! + $CONFIGTXGEN -profile TwoOrgsOrdererGenesis -outputBlock ./channel-artifacts/genesis.block + + echo + echo "#################################################################" + echo "### Generating channel configuration transaction 'channel.tx' ###" + echo "#################################################################" + $CONFIGTXGEN -profile TwoOrgsChannel -outputCreateChannelTx ./channel-artifacts/channel.tx -channelID $CHANNEL_NAME + + echo + echo "#################################################################" + echo "####### Generating anchor peer update for Org1MSP ##########" + echo "#################################################################" + $CONFIGTXGEN -profile TwoOrgsChannel -outputAnchorPeersUpdate ./channel-artifacts/Org1MSPanchors.tx -channelID $CHANNEL_NAME -asOrg Org1MSP + + echo + echo "#################################################################" + echo "####### Generating anchor peer update for Org2MSP ##########" + echo "#################################################################" + $CONFIGTXGEN -profile TwoOrgsChannel -outputAnchorPeersUpdate ./channel-artifacts/Org2MSPanchors.tx -channelID $CHANNEL_NAME -asOrg Org2MSP + echo +} + +generateCerts +replacePrivateKey +generateChannelArtifacts + diff --git a/hyperledger/1.0.1/artifacts_generation/peer-base.yml b/hyperledger/1.0.1/artifacts_generation/peer-base.yml new file mode 100644 index 00000000..f8845e69 --- /dev/null +++ b/hyperledger/1.0.1/artifacts_generation/peer-base.yml @@ -0,0 +1,155 @@ +version: '2' + +services: + + orderer.example.com: # There can be multiple orderers + image: hyperledger/fabric-orderer + container_name: orderer.example.com + hostname: orderer.example.com + environment: + - ORDERER_GENERAL_LOGLEVEL=INFO + - ORDERER_GENERAL_LISTENADDRESS=0.0.0.0 + - ORDERER_GENERAL_GENESISMETHOD=file + - ORDERER_GENERAL_GENESISFILE=/var/hyperledger/orderer/orderer.genesis.block #Need to be confirm orderer.block + - ORDERER_GENERAL_LOCALMSPID=OrdererMSP + - ORDERER_GENERAL_LOCALMSPDIR=/var/hyperledger/orderer/msp + - ORDERER_GENERAL_LEDGERTYPE=ram + - ORDERER_GENERAL_BATCHTIMEOUT=10s + - ORDERER_GENERAL_MAXMESSAGECOUNT=10 + - ORDERER_GENERAL_MAXWINDOWSIZE=1000 + - ORDERER_GENERAL_LISTENPORT=7050 + - ORDERER_RAMLEDGER_HISTORY_SIZE=100 + - ORDERER_GENERAL_TLS_ENABLED=false # to enable TLS, make this true + - ORDERER_GENERAL_TLS_PRIVATEKEY=/var/hyperledger/orderer/tls/server.key + - ORDERER_GENERAL_TLS_CERTIFICATE=/var/hyperledger/orderer/tls/server.crt + - ORDERER_GENERAL_TLS_ROOTCAS=[/var/hyperledger/orderer/tls/ca.crt] + ports: + - "7050:7050" + volumes: + - ./e2e_cli/channel-artifacts/orderer.genesis.block:/var/hyperledger/orderer/orderer.genesis.block + - ./e2e_cli/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp:/var/hyperledger/orderer/msp + - ./e2e_cli/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/tls/:/var/hyperledger/orderer/tls + command: orderer + + peer0.org1.example.com: + extends: + file: peer.yml + service: peer + container_name: peer0.org1.example.com + hostname: peer0.org1.example.com + environment: + - CORE_PEER_ID=peer0.org1.example.com + - CORE_PEER_ADDRESS=peer0.org1.example.com:7051 + - CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer0.org1.example.com:7051 + - CORE_PEER_GOSSIP_ORGLEADER=true + - CORE_PEER_LOCALMSPID=Org1MSP + - CORE_PEER_TLS_CERT_FILE=/etc/hyperledger/fabric/tls/server.crt + - CORE_PEER_TLS_KEY_FILE=/etc/hyperledger/fabric/tls/server.key + - CORE_PEER_TLS_ROOTCERT_FILE=/etc/hyperledger/fabric/tls/ca.crt + ports: + - 7051:7051 + - 7053:7053 + volumes: + - ./e2e_cli/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp:/etc/hyperledger/fabric/msp + - ./e2e_cli/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls:/etc/hyperledger/fabric/tls + command: peer node start --peer-defaultchain=false + + peer1.org1.example.com: + extends: + file: peer.yml + service: peer + container_name: peer1.org1.example.com + hostname: peer1.org1.example.com + environment: + - CORE_PEER_ID=peer1.org1.example.com + - CORE_PEER_ADDRESS=peer1.org1.example.com:7051 + - CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer1.org1.example.com:7051 + - CORE_PEER_GOSSIP_BOOTSTRAP=peer0.org1.example.com:7051 + - CORE_PEER_LOCALMSPID=Org1MSP + - CORE_PEER_GOSSIP_ORGLEADER=true + # - CORE_PEER_COMMITTER_LEDGER_ORDERER=orderer.example.com:7050 + - CORE_PEER_TLS_CERT_FILE=/etc/hyperledger/fabric/tls/server.crt + - CORE_PEER_TLS_KEY_FILE=/etc/hyperledger/fabric/tls/server.key + - CORE_PEER_TLS_ROOTCERT_FILE=/etc/hyperledger/fabric/tls/ca.crt + ports: + - 8051:7051 + - 8053:7053 + volumes: + - ./e2e_cli/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/msp:/etc/hyperledger/fabric/msp + - ./e2e_cli/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/tls:/etc/hyperledger/fabric/tls + command: peer node start --peer-defaultchain=false + + peer0.org2.example.com: + extends: + file: peer.yml + service: peer + container_name: peer0.org2.example.com + hostname: peer0.org2.example.com + environment: + - CORE_PEER_ID=peer0.org2.example.com + - CORE_PEER_ADDRESS=peer0.org2.example.com:7051 + - CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer0.org2.example.com:7051 + - CORE_PEER_GOSSIP_BOOTSTRAP=peer0.org2.example.com:7051 + - CORE_PEER_LOCALMSPID=Org2MSP + - CORE_PEER_GOSSIP_ORGLEADER=true + # - CORE_PEER_COMMITTER_LEDGER_ORDERER=orderer.example.com:7050 + - CORE_PEER_TLS_CERT_FILE=/etc/hyperledger/fabric/tls/server.crt + - CORE_PEER_TLS_KEY_FILE=/etc/hyperledger/fabric/tls/server.key + - CORE_PEER_TLS_ROOTCERT_FILE=/etc/hyperledger/fabric/tls/ca.crt + ports: + - 9051:7051 + - 9053:7053 + volumes: + - ./e2e_cli/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/msp:/etc/hyperledger/fabric/msp + - ./e2e_cli/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls:/etc/hyperledger/fabric/tls + command: peer node start --peer-defaultchain=false + + peer1.org2.example.com: + extends: + file: peer.yml + service: peer + container_name: peer1.org2.example.com + hostname: peer1.org2.example.com + environment: + - CORE_PEER_ID=peer1.org2.example.com + - CORE_PEER_ADDRESS=peer1.org2.example.com:7051 + - CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer1.org2.example.com:7051 + - CORE_PEER_GOSSIP_BOOTSTRAP=peer1.org2.example.com:7051 + - CORE_PEER_LOCALMSPID=Org2MSP + - CORE_PEER_GOSSIP_ORGLEADER=true + # - CORE_PEER_COMMITTER_LEDGER_ORDERER=orderer.example.com:7050 + - CORE_PEER_TLS_CERT_FILE=/etc/hyperledger/fabric/tls/server.crt + - CORE_PEER_TLS_KEY_FILE=/etc/hyperledger/fabric/tls/server.key + - CORE_PEER_TLS_ROOTCERT_FILE=/etc/hyperledger/fabric/tls/ca.crt + ports: + - 10051:7051 + - 10053:7053 + volumes: + - ./e2e_cli/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/msp:/etc/hyperledger/fabric/msp + - ./e2e_cli/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/tls:/etc/hyperledger/fabric/tls + command: peer node start --peer-defaultchain=false + + peer0.org3.example.com: + extends: + file: peer.yml + service: peer + container_name: peer0.org3.example.com + hostname: peer0.org3.example.com + environment: + - CORE_PEER_ID=peer0.org3.example.com + - CORE_PEER_ADDRESS=peer0.org3.example.com:7051 + - CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer0.org3.example.com:7051 + - CORE_PEER_GOSSIP_BOOTSTRAP=peer0.org3.example.com:7051 + - CORE_PEER_LOCALMSPID=Org3MSP + - CORE_PEER_GOSSIP_ORGLEADER=true + # - CORE_PEER_COMMITTER_LEDGER_ORDERER=orderer.example.com:7050 + - CORE_PEER_TLS_CERT_FILE=/etc/hyperledger/fabric/tls/server.crt + - CORE_PEER_TLS_KEY_FILE=/etc/hyperledger/fabric/tls/server.key + - CORE_PEER_TLS_ROOTCERT_FILE=/etc/hyperledger/fabric/tls/ca.crt + ports: + - 11051:7051 + - 11053:7053 + volumes: + - ./e2e_cli/crypto-config/peerOrganizations/org3.example.com/peers/peer0.org3.example.com/msp:/etc/hyperledger/fabric/msp + - ./e2e_cli/crypto-config/peerOrganizations/org3.example.com/peers/peer0.org3.example.com/tls:/etc/hyperledger/fabric/tls + command: peer node start --peer-defaultchain=false diff --git a/hyperledger/1.0.1/artifacts_generation/test-5-peers.sh b/hyperledger/1.0.1/artifacts_generation/test-5-peers.sh new file mode 100644 index 00000000..3fb8a722 --- /dev/null +++ b/hyperledger/1.0.1/artifacts_generation/test-5-peers.sh @@ -0,0 +1,247 @@ +#!/bin/bash + +echo +echo " ____ _____ _ ____ _____ _____ ____ _____ " +echo "/ ___| |_ _| / \ | _ \ |_ _| | ____| |___ \ | ____|" +echo "\___ \ | | / _ \ | |_) | | | _____ | _| __) | | _| " +echo " ___) | | | / ___ \ | _ < | | |_____| | |___ / __/ | |___ " +echo "|____/ |_| /_/ \_\ |_| \_\ |_| |_____| |_____| |_____|" +echo + +CHANNEL_NAME="$1" +: ${CHANNEL_NAME:="testchannel"} +: ${TIMEOUT:="60"} +COUNTER=1 +MAX_RETRY=5 +ORDERER_CA=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/cacerts/ca.example.com-cert.pem + +echo "Channel name : "$CHANNEL_NAME + +verifyResult () { + if [ $1 -ne 0 ] ; then + echo "!!!!!!!!!!!!!!! "$2" !!!!!!!!!!!!!!!!" + echo "================== ERROR !!! FAILED to execute End-2-End Scenario ==================" + echo + exit 1 + fi +} + +setGlobals () { + + if [ $1 -eq 0 -o $1 -eq 1 ] ; then + CORE_PEER_LOCALMSPID="Org1MSP" + CORE_PEER_TLS_ROOTCERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt + CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp + if [ $1 -eq 0 ]; then + CORE_PEER_ADDRESS=peer0.org1.example.com:7051 + else + CORE_PEER_ADDRESS=peer1.org1.example.com:7051 + CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp + fi + elif [ $1 -eq 4 ] ; then + CORE_PEER_LOCALMSPID="Org3MSP" + CORE_PEER_TLS_ROOTCERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org3.example.com/peers/peer0.org3.example.com/tls/ca.crt + CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org3.example.com/users/Admin@org3.example.com/msp + CORE_PEER_ADDRESS=peer0.org3.example.com:7051 + else + CORE_PEER_LOCALMSPID="Org2MSP" + CORE_PEER_TLS_ROOTCERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt + CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp + if [ $1 -eq 2 ]; then + CORE_PEER_ADDRESS=peer0.org2.example.com:7051 + else + CORE_PEER_ADDRESS=peer1.org2.example.com:7051 + fi + fi + + env |grep CORE +} + +createChannel() { + setGlobals 0 + + if [ -z "$CORE_PEER_TLS_ENABLED" -o "$CORE_PEER_TLS_ENABLED" = "false" ]; then + peer channel create -o orderer.example.com:7050 -c $CHANNEL_NAME -f ./peer/channel-artifacts/channel.tx >&log.txt + else + peer channel create -o orderer.example.com:7050 -c $CHANNEL_NAME -f ./peer/channel-artifacts/channel.tx --tls $CORE_PEER_TLS_ENABLED --cafile $ORDERER_CA >&log.txt + fi + res=$? + cat log.txt + verifyResult $res "Channel creation failed" + echo "===================== Channel \"$CHANNEL_NAME\" is created successfully ===================== " + echo +} + +updateAnchorPeers() { + PEER=$1 + setGlobals $PEER + + if [ -z "$CORE_PEER_TLS_ENABLED" -o "$CORE_PEER_TLS_ENABLED" = "false" ]; then + peer channel create -o orderer.example.com:7050 -c $CHANNEL_NAME -f ./peer/channel-artifacts/${CORE_PEER_LOCALMSPID}anchors.tx >&log.txt + else + peer channel create -o orderer.example.com:7050 -c $CHANNEL_NAME -f ./peer/channel-artifacts/${CORE_PEER_LOCALMSPID}anchors.tx --tls $CORE_PEER_TLS_ENABLED --cafile $ORDERER_CA >&log.txt + fi + res=$? + cat log.txt + verifyResult $res "Anchor peer update failed" + echo "===================== Anchor peers for org \"$CORE_PEER_LOCALMSPID\" on \"$CHANNEL_NAME\" is updated successfully ===================== " + echo +} + +## Sometimes Join takes time hence RETRY atleast for 5 times +joinWithRetry () { + peer channel join -b $CHANNEL_NAME.block >&log.txt + res=$? + cat log.txt + if [ $res -ne 0 -a $COUNTER -lt $MAX_RETRY ]; then + COUNTER=` expr $COUNTER + 1` + echo "PEER$1 failed to join the channel, Retry after 2 seconds" + sleep 2 + joinWithRetry $1 + else + COUNTER=1 + fi + verifyResult $res "After $MAX_RETRY attempts, PEER$ch has failed to Join the Channel" +} + +joinChannel () { + for ch in 0 1 2 3 4; do + setGlobals $ch + joinWithRetry $ch + echo "===================== PEER$ch joined on the channel \"$CHANNEL_NAME\" ===================== " + sleep 2 + echo + done +} + +installChaincode () { + PEER=$1 + setGlobals $PEER + peer chaincode install -n mycc -v 1.0 -p github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02 >&log.txt + res=$? + cat log.txt + verifyResult $res "Chaincode installation on remote peer PEER$PEER has Failed" + echo "===================== Chaincode is installed on remote peer PEER$PEER ===================== " + echo +} + +instantiateChaincode () { + PEER=$1 + setGlobals $PEER + # while 'peer chaincode' command can get the orderer endpoint from the peer (if join was successful), + # lets supply it directly as we know it using the "-o" option + if [ -z "$CORE_PEER_TLS_ENABLED" -o "$CORE_PEER_TLS_ENABLED" = "false" ]; then + peer chaincode instantiate -o orderer.example.com:7050 -C $CHANNEL_NAME -n mycc -v 1.0 -c '{"Args":["init","a","100","b","200"]}' -P "OR ('Org1MSP.member','Org2MSP.member')" >&log.txt + else + peer chaincode instantiate -o orderer.example.com:7050 --tls $CORE_PEER_TLS_ENABLED --cafile $ORDERER_CA -C $CHANNEL_NAME -n mycc -v 1.0 -c '{"Args":["init","a","100","b","200"]}' -P "OR ('Org1MSP.member','Org2MSP.member')" >&log.txt + fi + res=$? + cat log.txt + verifyResult $res "Chaincode instantiation on PEER$PEER on channel '$CHANNEL_NAME' failed" + echo "===================== Chaincode Instantiation on PEER$PEER on channel '$CHANNEL_NAME' is successful ===================== " + echo +} + +chaincodeQuery () { + PEER=$1 + echo "===================== Querying on PEER$PEER on channel '$CHANNEL_NAME'... ===================== " + setGlobals $PEER + local rc=1 + local starttime=$(date +%s) + + # continue to poll + # we either get a successful response, or reach TIMEOUT + while test "$(($(date +%s)-starttime))" -lt "$TIMEOUT" -a $rc -ne 0 + do + sleep 3 + echo "Attempting to Query PEER$PEER ...$(($(date +%s)-starttime)) secs" + peer chaincode query -C $CHANNEL_NAME -n mycc -c '{"Args":["query","a"]}' >&log.txt + test $? -eq 0 && VALUE=$(cat log.txt | awk '/Query Result/ {print $NF}') + test "$VALUE" = "$2" && let rc=0 + done + echo + cat log.txt + if test $rc -eq 0 ; then + echo "===================== Query on PEER$PEER on channel '$CHANNEL_NAME' is successful ===================== " + else + echo "!!!!!!!!!!!!!!! Query result on PEER$PEER is INVALID !!!!!!!!!!!!!!!!" + echo "================== ERROR !!! FAILED to execute End-2-End Scenario ==================" + echo + exit 1 + fi +} + +chaincodeInvoke () { + PEER=$1 + setGlobals $PEER + # while 'peer chaincode' command can get the orderer endpoint from the peer (if join was successful), + # lets supply it directly as we know it using the "-o" option + if [ -z "$CORE_PEER_TLS_ENABLED" -o "$CORE_PEER_TLS_ENABLED" = "false" ]; then + peer chaincode invoke -o orderer.example.com:7050 -C $CHANNEL_NAME -n mycc -c '{"Args":["invoke","a","b","10"]}' >&log.txt + else + peer chaincode invoke -o orderer.example.com:7050 --tls $CORE_PEER_TLS_ENABLED --cafile $ORDERER_CA -C $CHANNEL_NAME -n mycc -c '{"Args":["invoke","a","b","10"]}' >&log.txt + fi + res=$? + cat log.txt + verifyResult $res "Invoke execution on PEER$PEER failed " + echo "===================== Invoke transaction on PEER$PEER on channel '$CHANNEL_NAME' is successful ===================== " + echo +} + +## Create channel +echo "Creating channel..." +createChannel + +## Join all the peers to the channel +echo "Having all peers join the channel..." +joinChannel + +## Set the anchor peers for each org in the channel +echo "Updating anchor peers using peer0/org1(peer0) for org1..." +updateAnchorPeers 0 +echo "Updating anchor peers using peer0/org2(peer2) for org2..." +updateAnchorPeers 2 + +updateAnchorPeers 4 + +## Install chaincode on Peer0/Org1 and Peer0/Org2 +echo "Installing chaincode on peer0/org1..." +installChaincode 0 +echo "Install chaincode on peer0/org2.." +installChaincode 2 +echo "Install chaincode on peer0/org3.." +installChaincode 4 + +#Instantiate chaincode on Peer0/Org2 +echo "Instantiating chaincode on peer0/org2..." +instantiateChaincode 2 + +#Query on chaincode on Peer0/Org1 +echo "Querying chaincode on peer0/org1..." +chaincodeQuery 0 100 + +#Invoke on chaincode on Peer0/Org1 +echo "Sending invoke transaction on peer0/org1..." +chaincodeInvoke 0 + +## Install chaincode on Peer1/Org2 +echo "Installing chaincode on peer1/org2..." +installChaincode 3 + +#Query on chaincode on Peer0/Org3, check if the result is 90 +echo "Querying chaincode on org2/peer1..." +chaincodeQuery 4 90 + +echo +echo "===================== All GOOD, End-2-End execution completed ===================== " +echo + +echo +echo " _____ _ _ ____ _____ ____ _____ " +echo "| ____| | \ | | | _ \ | ____| |___ \ | ____|" +echo "| _| | \| | | | | | _____ | _| __) | | _| " +echo "| |___ | |\ | | |_| | |_____| | |___ / __/ | |___ " +echo "|_____| |_| \_| |____/ |_____| |_____| |_____|" +echo + +exit 0 diff --git a/hyperledger/1.0.1/base.yaml b/hyperledger/1.0.1/base.yaml new file mode 100644 index 00000000..ef713428 --- /dev/null +++ b/hyperledger/1.0.1/base.yaml @@ -0,0 +1,133 @@ +# This is the default base file to config env and command +# Notice that chaincode is executed inside docker in default net mode +# https://github.com/yeasy/docker-compose-files + +# Depends on the hyperledger/fabric-peer image. + +version: '2' + +services: + ca-base: + #image: hyperledger/fabric-ca + image: yeasy/hyperledger-fabric-ca:1.0.1 + #image: hyperledger/fabric-ca:x86_64-1.0.1 + environment: + - FABRIC_CA_HOME=/etc/hyperledger/fabric-ca-server + - FABRIC_CA_SERVER_TLS_ENABLED=true + + orderer-base: + image: yeasy/hyperledger-fabric-orderer:1.0.1 + #image: hyperledger/fabric-orderer:x86_64-1.0.1 + environment: + - ORDERER_GENERAL_LOGLEVEL=DEBUG + - ORDERER_GENERAL_LISTENADDRESS=0.0.0.0 + - ORDERER_GENERAL_GENESISMETHOD=file + - ORDERER_GENERAL_GENESISFILE=/var/hyperledger/orderer/orderer.genesis.block + - ORDERER_GENERAL_LOCALMSPID=OrdererMSP + - ORDERER_GENERAL_LOCALMSPDIR=/var/hyperledger/orderer/msp + - ORDERER_GENERAL_LEDGERTYPE=file + - ORDERER_GENERAL_BATCHTIMEOUT=2s + - ORDERER_GENERAL_MAXMESSAGECOUNT=10 + - ORDERER_GENERAL_MAXWINDOWSIZE=1000 + - ORDERER_GENERAL_LISTENPORT=7050 + #- ORDERER_RAMLEDGER_HISTORY_SIZE=100 #only useful when use ram ledger + # enabled TLS + - ORDERER_GENERAL_TLS_ENABLED=true + - ORDERER_GENERAL_TLS_PRIVATEKEY=/var/hyperledger/orderer/tls/server.key + - ORDERER_GENERAL_TLS_CERTIFICATE=/var/hyperledger/orderer/tls/server.crt + - ORDERER_GENERAL_TLS_ROOTCAS=[/var/hyperledger/orderer/tls/ca.crt] + expose: + - "7050" # + command: orderer start + + peer-base: + image: yeasy/hyperledger-fabric-peer:1.0.1 + #image: hyperledger/fabric-peer:x86_64-1.0.1 + environment: + #- CORE_PEER_ID=peer0 + - CORE_PEER_ADDRESSAUTODETECT=false + - CORE_LOGGING_LEVEL=DEBUG + - CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE=101_default # uncomment this to use specific network + #- CORE_PEER_NETWORKID=dev + - CORE_PEER_GOSSIP_USELEADERELECTION=true + - CORE_PEER_GOSSIP_ORGLEADER=false # this node is the group leader, default to false + - CORE_PEER_PROFILE_ENABLED=false + - CORE_PEER_TLS_ENABLED=true + - CORE_PEER_TLS_CERT_FILE=/etc/hyperledger/fabric/tls/server.crt + - CORE_PEER_TLS_KEY_FILE=/etc/hyperledger/fabric/tls/server.key + - CORE_PEER_TLS_ROOTCERT_FILE=/etc/hyperledger/fabric/tls/ca.crt + expose: + - "7050" # Rest + - "7051" # Grpc + - "7052" # Peer CLI + - "7053" # Peer Event + - "7054" # eCAP + - "7055" # eCAA + - "7056" # tCAP + - "7057" # eCAA + - "7058" # tlsCAP + - "7059" # tlsCAA + volumes: # docker.sock is mapped as the default CORE_VM_ENDPOINT + - /var/run/docker.sock:/var/run/docker.sock + #volumes: + # - /var/run/:/host/var/run/ + command: peer node start + + peer-base-dev: + image: yeasy/hyperledger-fabric:1.0.1 + environment: + #- CORE_PEER_ID=peer0 + - CORE_PEER_ADDRESSAUTODETECT=false + - CORE_LOGGING_LEVEL=DEBUG + - CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE=101_default # uncomment this to use specific network + #- CORE_PEER_NETWORKID=dev + - CORE_PEER_GOSSIP_USELEADERELECTION=true + - CORE_PEER_GOSSIP_ORGLEADER=false # this node is the group leader, default to false + - CORE_PEER_PROFILE_ENABLED=false + - CORE_PEER_TLS_ENABLED=true + - CORE_PEER_TLS_CERT_FILE=/etc/hyperledger/fabric/tls/server.crt + - CORE_PEER_TLS_KEY_FILE=/etc/hyperledger/fabric/tls/server.key + - CORE_PEER_TLS_ROOTCERT_FILE=/etc/hyperledger/fabric/tls/ca.crt + expose: + - "7050" # Rest + - "7051" # Grpc + - "7052" # Peer CLI + - "7053" # Peer Event + - "7054" # eCAP + - "7055" # eCAA + - "7056" # tCAP + - "7057" # eCAA + - "7058" # tlsCAP + - "7059" # tlsCAA + volumes: # docker.sock is mapped as the default CORE_VM_ENDPOINT + - /var/run/docker.sock:/var/run/docker.sock + #volumes: + # - /var/run/:/host/var/run/ + command: bash -c 'bash /tmp/peer_build.sh; peer node start' + + cli-base: + image: yeasy/hyperledger-fabric:1.0.1 + #image: hyperledger/fabric-tools:x86_64-1.0.1 + tty: true + environment: + #- GOPATH=/opt/gopath + - CORE_LOGGING_LEVEL=DEBUG + - CORE_PEER_TLS_ENABLED=true # to enable TLS, change to true + - ORDERER_CA=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem + - CHANNEL_NAME:="businesschannel" + volumes: + #- ./scripts:/opt/gopath/src/github.com/hyperledger/fabric/peer/scripts/ + - ./scripts:/tmp/scripts + - ./e2e_cli/channel-artifacts:/tmp/channel-artifacts + - ./e2e_cli/configtx.yaml:/etc/hyperledger/fabric/configtx.yaml + - ./e2e_cli/crypto-config.yaml:/etc/hyperledger/fabric/crypto-config.yaml + - ./e2e_cli/crypto-config:/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto + - ./e2e_cli/examples:/opt/gopath/src/github.com/hyperledger/fabric/examples + working_dir: /opt/gopath/src/github.com/hyperledger/fabric/peer + command: bash -c 'while true; do sleep 20170504; done' + + couchdb-base: + #container_name: couchdb0 + image: hyperledger/fabric-couchdb:x86-64-1.0.1 + # Comment/Uncomment the port mapping if you want to hide/expose the CouchDB service, + # for example map it to utilize Fauxton User Interface in dev environments. diff --git a/hyperledger/1.0.1/docker-compose-1peer.yaml b/hyperledger/1.0.1/docker-compose-1peer.yaml new file mode 100644 index 00000000..e9d9c114 --- /dev/null +++ b/hyperledger/1.0.1/docker-compose-1peer.yaml @@ -0,0 +1,34 @@ +# https://github.com/yeasy/docker-compose-files/tree/master/hyperledger +# This compose file will start a Hyperledger Fabric 1.0 MVE, including +# * 1 ca +# * 1 orderer +# * 1 peers in 1 orgs +# * cli for testing + +version: '2.0' + +services: + ca: + extends: + file: docker-compose-base.yaml + service: ca + + cli: + extends: + file: docker-compose-base.yaml + service: cli + + orderer.example.com: # There can be multiple orderers + extends: + file: docker-compose-base.yaml + service: orderer.example.com + + peer0.org1.example.com: + extends: + file: docker-compose-base.yaml + service: peer0.org1.example.com + +#networks: +# default: +# external: +# name: hyperledger_fabric diff --git a/hyperledger/1.0.1/docker-compose-2orgs-4peers-couchdb.yaml b/hyperledger/1.0.1/docker-compose-2orgs-4peers-couchdb.yaml new file mode 100644 index 00000000..9c06add8 --- /dev/null +++ b/hyperledger/1.0.1/docker-compose-2orgs-4peers-couchdb.yaml @@ -0,0 +1,63 @@ + +version: '2' + +services: + couchdb0: + container_name: couchdb0 + image: hyperledger/fabric-couchdb:x86_64-1.0.0-beta + # Comment/Uncomment the port mapping if you want to hide/expose the CouchDB service, + # for example map it to utilize Fauxton User Interface in dev environments. + ports: + - "5984:5984" + + peer0.org1.example.com: + environment: + - CORE_LEDGER_STATE_STATEDATABASE=CouchDB + - CORE_LEDGER_STATE_COUCHDBCONFIG_COUCHDBADDRESS=couchdb0:5984 + depends_on: + - couchdb0 + + couchdb1: + container_name: couchdb1 + image: hyperledger/fabric-couchdb:x86_64-1.0.0-beta + # Comment/Uncomment the port mapping if you want to hide/expose the CouchDB service, + # for example map it to utilize Fauxton User Interface in dev environments. + ports: + - "6984:5984" + + peer1.org1.example.com: + environment: + - CORE_LEDGER_STATE_STATEDATABASE=CouchDB + - CORE_LEDGER_STATE_COUCHDBCONFIG_COUCHDBADDRESS=couchdb1:5984 + depends_on: + - couchdb1 + + couchdb2: + container_name: couchdb2 + image: hyperledger/fabric-couchdb:x86_64-1.0.0-beta + # Comment/Uncomment the port mapping if you want to hide/expose the CouchDB service, + # for example map it to utilize Fauxton User Interface in dev environments. + ports: + - "7984:5984" + + peer0.org2.example.com: + environment: + - CORE_LEDGER_STATE_STATEDATABASE=CouchDB + - CORE_LEDGER_STATE_COUCHDBCONFIG_COUCHDBADDRESS=couchdb2:5984 + depends_on: + - couchdb2 + + couchdb3: + container_name: couchdb3 + image: hyperledger/fabric-couchdb:x86_64-1.0.0-beta + # Comment/Uncomment the port mapping if you want to hide/expose the CouchDB service, + # for example map it to utilize Fauxton User Interface in dev environments. + ports: + - "8984:5984" + + peer1.org2.example.com: + environment: + - CORE_LEDGER_STATE_STATEDATABASE=CouchDB + - CORE_LEDGER_STATE_COUCHDBCONFIG_COUCHDBADDRESS=couchdb3:5984 + depends_on: + - couchdb3 diff --git a/hyperledger/1.0.1/docker-compose-2orgs-4peers-event.yaml b/hyperledger/1.0.1/docker-compose-2orgs-4peers-event.yaml new file mode 100644 index 00000000..d74cfeca --- /dev/null +++ b/hyperledger/1.0.1/docker-compose-2orgs-4peers-event.yaml @@ -0,0 +1,127 @@ +# https://github.com/yeasy/docker-compose-files/tree/master/hyperledger +# This compose file will start a Hyperledger Fabric 1.0 MVE, including +# * 1 ca +# * 1 orderer +# * 4 peers in 2 orgs +# * cli for testing + +version: '2.0' + +services: + ca: + image: yeasy/hyperledger-fabric-ca:1.0.1 + container_name: fabric-ca + hostname: ca + # command: /go/src/github.com/hyperledger/fabric-ca/bin/ca server start -ca testdata/ec.pem -ca-key testdata/ec-key.pem -config testdata/testconfig.json + ports: + - "7054:7054" + command: fabric-ca-server start -b admin:adminpw + + orderer.example.com: # There can be multiple orderers + extends: + file: docker-compose-base.yaml + service: orderer.example.com + + peer0.org1.example.com: + extends: + file: docker-compose-base.yaml + service: peer0.org1.example.com + + peer1.org1.example.com: + extends: + file: docker-compose-base.yaml + service: peer1.org1.example.com + + peer0.org2.example.com: + extends: + file: docker-compose-base.yaml + service: peer0.org2.example.com + + peer1.org2.example.com: + extends: + file: docker-compose-base.yaml + service: peer1.org2.example.com + + cli: + container_name: fabric-cli + hostname: fabric-cli + image: yeasy/hyperledger-fabric:1.0.1 + tty: true + environment: + - CORE_PEER_ID=fabric-cli + - CORE_LOGGING_LEVEL=DEBUG + - CORE_PEER_ADDRESS=peer0.org1.example.com:7051 # default to operate on peer0.org1 + - CORE_PEER_LOCALMSPID=Org1MSP + - CORE_PEER_TLS_ENABLED=false # event-listener doesn't support TLS + - CORE_PEER_TLS_CERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/server.crt + - CORE_PEER_TLS_KEY_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/server.key + - CORE_PEER_TLS_ROOTCERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt + - CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp + volumes: + #- ./e2e_cli/examples:/opt/gopath/src/github.com/hyperledger/fabric/examples + - ./e2e_cli/crypto-config:/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ + - ./scripts:/opt/gopath/src/github.com/hyperledger/fabric/peer/scripts/ + - ./e2e_cli/channel-artifacts:/opt/gopath/src/github.com/hyperledger/fabric/peer/channel-artifacts + - ./e2e_cli/crypto-config:/etc/hyperledger/fabric/crypto-config + - ./e2e_cli/configtx.yaml:/etc/hyperledger/fabric/configtx.yaml + - ./e2e_cli/crypto-config.yaml:/etc/hyperledger/fabric/peer/crypto-config.yaml + depends_on: + - orderer.example.com + - peer0.org1.example.com + - peer1.org1.example.com + - peer0.org2.example.com + - peer1.org2.example.com + links: + - orderer.example.com + - peer0.org1.example.com + - peer1.org1.example.com + - peer0.org2.example.com + - peer1.org2.example.com + working_dir: /opt/gopath/src/github.com/hyperledger/fabric/peer + command: bash -c 'while true; do sleep 20170504; done' + + event-listener: + container_name: fabric-event-listener + hostname: fabric-event-listener + image: yeasy/hyperledger-fabric:1.0.1 + tty: true + environment: + - CORE_PEER_ID=fabric-event-listener + - CORE_LOGGING_LEVEL=DEBUG + - CORE_PEER_ADDRESS=peer0.org1.example.com:7051 # default to operate on peer0.org1 + - CORE_PEER_LOCALMSPID=Org1MSP + - CORE_PEER_TLS_ENABLED=false # event-listener doesn't support TLS + - CORE_PEER_TLS_CERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/server.crt + - CORE_PEER_TLS_KEY_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/server.key + - CORE_PEER_TLS_ROOTCERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt + - CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp + volumes: + #- ./e2e_cli/examples:/opt/gopath/src/github.com/hyperledger/fabric/examples + - ./e2e_cli/crypto-config:/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ + - ./scripts:/opt/gopath/src/github.com/hyperledger/fabric/peer/scripts/ + - ./e2e_cli/channel-artifacts:/opt/gopath/src/github.com/hyperledger/fabric/peer/channel-artifacts + - ./e2e_cli/configtx.yaml:/etc/hyperledger/fabric/configtx.yaml + - ./e2e_cli/crypto-config.yaml:/etc/hyperledger/fabric/crypto-config.yaml + depends_on: + - orderer.example.com + - peer0.org1.example.com + - peer1.org1.example.com + - peer0.org2.example.com + - peer1.org2.example.com + links: + - orderer.example.com + - peer0.org1.example.com + - peer1.org1.example.com + - peer0.org2.example.com + - peer1.org2.example.com + working_dir: /opt/gopath/src/github.com/hyperledger/fabric/peer + command: bash -c 'block-listener -events-address=peer0.org1.example.com:7053 -events-mspdir=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/ -events-mspid=Org1MSP' + +#networks: +# default: +# external: +# name: hyperledger_fabric +#networks: +# default: +# external: +# name: hyperledger_fabric diff --git a/hyperledger/1.0.1/docker-compose-2orgs-4peers.yaml b/hyperledger/1.0.1/docker-compose-2orgs-4peers.yaml new file mode 100644 index 00000000..b11e357c --- /dev/null +++ b/hyperledger/1.0.1/docker-compose-2orgs-4peers.yaml @@ -0,0 +1,56 @@ +# https://github.com/yeasy/docker-compose-files/tree/master/hyperledger +# This compose file will start a Hyperledger Fabric 1.0 MVE, including +# * 1 ca +# * 1 orderer +# * 4 peers in 2 orgs +# * cli for testing + +version: '2.0' + +services: + ca.org1.example.com: + extends: + file: docker-compose-base.yaml + service: ca.org1.example.com + + ca.org2.example.com: + extends: + file: docker-compose-base.yaml + service: ca.org2.example.com + + cli: + extends: + file: docker-compose-base.yaml + service: cli + + orderer.example.com: # There can be multiple orderers + extends: + file: docker-compose-base.yaml + service: orderer.example.com + + + + peer0.org1.example.com: + extends: + file: docker-compose-base.yaml + service: peer0.org1.example.com + + peer1.org1.example.com: + extends: + file: docker-compose-base.yaml + service: peer1.org1.example.com + + peer0.org2.example.com: + extends: + file: docker-compose-base.yaml + service: peer0.org2.example.com + + peer1.org2.example.com: + extends: + file: docker-compose-base.yaml + service: peer1.org2.example.com + +#networks: +# default: +# external: +# name: hyperledger_fabric diff --git a/hyperledger/1.0.1/docker-compose-base.yaml b/hyperledger/1.0.1/docker-compose-base.yaml new file mode 100644 index 00000000..e2686cc2 --- /dev/null +++ b/hyperledger/1.0.1/docker-compose-base.yaml @@ -0,0 +1,168 @@ +# Base compose files for: + +# ca +# orderer.example.com +# cli +# peer0.org1.example.com +# peer1.org1.example.com +# peer0.org2.example.com +# peer1.org2.example.com + + +version: '2' # v3 does not support 'extends' yet + +services: + ca.org1.example.com: + #image: yeasy/hyperledger-fabric-ca:1.0.1 + #image: hyperledger/fabric-ca:x86_64-1.0.1 + extends: + file: base.yaml + service: ca-base + container_name: ca.org1.example.com + hostname: ca.org1.example.com + environment: + - FABRIC_CA_SERVER_CA_NAME=ca-org1 + - FABRIC_CA_SERVER_TLS_CERTFILE=/etc/hyperledger/fabric-ca-server-config/ca.org1.example.com-cert.pem + - FABRIC_CA_SERVER_TLS_KEYFILE=/etc/hyperledger/fabric-ca-server-config/c843d3f021118963ce5d340e95286e8869bb7bd051454cd4166aa2887a2ad451_sk + ports: + - "7054:7054" + volumes: + - ./e2e_cli/crypto-config/peerOrganizations/org1.example.com/ca/:/etc/hyperledger/fabric-ca-server-config + command: sh -c 'fabric-ca-server start --ca.certfile /etc/hyperledger/fabric-ca-server-config/ca.org1.example.com-cert.pem --ca.keyfile /etc/hyperledger/fabric-ca-server-config/c843d3f021118963ce5d340e95286e8869bb7bd051454cd4166aa2887a2ad451_sk -b admin:adminpw -d' + + ca.org2.example.com: + #image: yeasy/hyperledger-fabric-ca:1.0.1 + #image: hyperledger/fabric-ca:x86_64-1.0.1 + extends: + file: base.yaml + service: ca-base + container_name: ca.org2.example.com + hostname: ca.org2.example.com + environment: + - FABRIC_CA_SERVER_CA_NAME=ca-org2 + - FABRIC_CA_SERVER_TLS_CERTFILE=/etc/hyperledger/fabric-ca-server-config/ca.org2.example.com-cert.pem + - FABRIC_CA_SERVER_TLS_KEYFILE=/etc/hyperledger/fabric-ca-server-config/1ee551a8753171c0377366e96a1d7ec01afddb868c9483cc501b6f8ac7ae752f_sk + ports: + - "8054:7054" + volumes: + - ./e2e_cli/crypto-config/peerOrganizations/org2.example.com/ca/:/etc/hyperledger/fabric-ca-server-config + command: sh -c 'fabric-ca-server start --ca.certfile /etc/hyperledger/fabric-ca-server-config/ca.org2.example.com-cert.pem --ca.keyfile /etc/hyperledger/fabric-ca-server-config/1ee551a8753171c0377366e96a1d7ec01afddb868c9483cc501b6f8ac7ae752f_sk -b admin:adminpw -d' + + + orderer.example.com: # There can be multiple orderers + extends: + file: base.yaml + service: orderer-base + container_name: orderer.example.com + hostname: orderer.example.com + ports: + - "7050:7050" + volumes: + - ./e2e_cli/channel-artifacts/orderer.genesis.block:/var/hyperledger/orderer/orderer.genesis.block + - ./e2e_cli/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp:/var/hyperledger/orderer/msp + - ./e2e_cli/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/tls/:/var/hyperledger/orderer/tls + command: orderer start + + cli: + #image: yeasy/hyperledger-fabric:1.0.1 + #image: hyperledger/fabric-tools:x86_64-1.0.1 + extends: + file: base.yaml + service: cli-base + container_name: fabric-cli + hostname: fabric-cli + tty: true + environment: + #- GOPATH=/opt/gopath + - CORE_PEER_ID=fabric-cli + - CORE_PEER_ADDRESS=peer0.org1.example.com:7051 # default to operate on peer0.org1 + - CORE_PEER_LOCALMSPID=Org1MSP + - CORE_PEER_TLS_CERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/server.crt + - CORE_PEER_TLS_KEY_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/server.key + - CORE_PEER_TLS_ROOTCERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt + - CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp + +## following are peer nodes ## + + peer0.org1.example.com: + extends: + file: base.yaml + service: peer-base + container_name: peer0.org1.example.com + hostname: peer0.org1.example.com + environment: + - CORE_PEER_ID=peer0.org1.example.com + - CORE_PEER_ADDRESS=peer0.org1.example.com:7051 + - CORE_PEER_CHAINCODELISTENADDRESS=peer0.org1.example.com:7052 + - CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer0.org1.example.com:7051 + - CORE_PEER_LOCALMSPID=Org1MSP + volumes: + - ./e2e_cli/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp:/etc/hyperledger/fabric/msp + - ./e2e_cli/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls:/etc/hyperledger/fabric/tls + ports: + - 7051:7051 + - 7052:7052 + - 7053:7053 + + peer1.org1.example.com: + extends: + file: base.yaml + service: peer-base + container_name: peer1.org1.example.com + hostname: peer1.org1.example.com + environment: + - CORE_PEER_ID=peer1.org1.example.com + - CORE_PEER_ADDRESS=peer1.org1.example.com:7051 + - CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer1.org1.example.com:7051 + - CORE_PEER_CHAINCODELISTENADDRESS=peer1.org1.example.com:7052 + - CORE_PEER_GOSSIP_BOOTSTRAP=peer0.org1.example.com:7051 + - CORE_PEER_LOCALMSPID=Org1MSP + volumes: + - ./e2e_cli/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/msp:/etc/hyperledger/fabric/msp + - ./e2e_cli/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/tls:/etc/hyperledger/fabric/tls + ports: + - 8051:7051 + - 8052:7052 + - 8053:7053 + + peer0.org2.example.com: + extends: + file: base.yaml + service: peer-base + container_name: peer0.org2.example.com + hostname: peer0.org2.example.com + environment: + - CORE_PEER_ID=peer0.org2.example.com + - CORE_PEER_ADDRESS=peer0.org2.example.com:7051 + - CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer0.org2.example.com:7051 + - CORE_PEER_CHAINCODELISTENADDRESS=peer0.org2.example.com:7052 + - CORE_PEER_GOSSIP_BOOTSTRAP=peer0.org2.example.com:7051 + - CORE_PEER_LOCALMSPID=Org2MSP + volumes: + - ./e2e_cli/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/msp:/etc/hyperledger/fabric/msp + - ./e2e_cli/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls:/etc/hyperledger/fabric/tls + ports: + - 9051:7051 + - 9052:7052 + - 9053:7053 + + peer1.org2.example.com: + extends: + file: base.yaml + service: peer-base + container_name: peer1.org2.example.com + hostname: peer1.org2.example.com + environment: + - CORE_PEER_ID=peer1.org2.example.com + - CORE_PEER_ADDRESS=peer1.org2.example.com:7051 + - CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer1.org2.example.com:7051 + - CORE_PEER_CHAINCODELISTENADDRESS=peer1.org2.example.com:7052 + - CORE_PEER_GOSSIP_BOOTSTRAP=peer1.org2.example.com:7051 + - CORE_PEER_LOCALMSPID=Org2MSP + volumes: + - ./e2e_cli/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/msp:/etc/hyperledger/fabric/msp + - ./e2e_cli/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/tls:/etc/hyperledger/fabric/tls + ports: + - 10051:7051 + - 10052:7052 + - 10053:7053 diff --git a/hyperledger/1.0.1/docker-compose-dev.yaml b/hyperledger/1.0.1/docker-compose-dev.yaml new file mode 100644 index 00000000..101d574f --- /dev/null +++ b/hyperledger/1.0.1/docker-compose-dev.yaml @@ -0,0 +1,84 @@ +# https://github.com/yeasy/docker-compose-files/tree/master/hyperledger +# This compose file will start a Hyperledger Fabric 1.0 MVE, including +# * 1 ca +# * 1 orderer +# * 1 peer +# * cli for testing + +version: '2.0' + +services: + ca.example.com: # not used currently + extends: + file: base.yaml + service: ca-base + container_name: ca.example.com + hostname: ca.example.com + # command: /go/src/github.com/hyperledger/fabric-ca/bin/ca server start -ca testdata/ec.pem -ca-key testdata/ec-key.pem -config testdata/testconfig.json + ports: + - "7054:7054" + command: fabric-ca-server start -b admin:adminpw + + orderer.example.com: # There can be multiple orderers + extends: + file: base.yaml + service: orderer-base + container_name: orderer.example.com + hostname: orderer.example.com + ports: + - "7050:7050" + volumes: + - ./e2e_cli/channel-artifacts/orderer.genesis.block:/var/hyperledger/orderer/orderer.genesis.block + - ./e2e_cli/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp:/var/hyperledger/orderer/msp + - ./e2e_cli/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/tls/:/var/hyperledger/orderer/tls + command: orderer start + + cli: + #extends: + # file: peer-base-dev.yaml + # service: peer-base + #image: yeasy/hyperledger-fabric:1.0.1 + extends: + file: base.yaml + service: cli-base + container_name: fabric-cli + hostname: fabric-cli + tty: true + environment: + - CORE_PEER_ID=fabric-cli + - CORE_PEER_ADDRESS=peer0.org1.example.com:7051 # default to operate on peer0.org1 + - CORE_PEER_LOCALMSPID=Org1MSP + - CORE_PEER_TLS_CERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/server.crt + - CORE_PEER_TLS_KEY_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/server.key + - CORE_PEER_TLS_ROOTCERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt + - CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp + volumes: + - $GOPATH/src/github.com/hyperledger/fabric:/opt/gopath/src/github.com/hyperledger/fabric + - /tmp/:/tmp/ + + peer0.org1.example.com: + extends: + file: base.yaml + service: peer-base-dev + container_name: peer0.org1.example.com + hostname: peer0.org1.example.com + environment: + - CORE_PEER_ID=peer0.org1.example.com + - CORE_PEER_ADDRESS=peer0.org1.example.com:7051 + - CORE_PEER_CHAINCODELISTENADDRESS=peer0.org1.example.com:7052 + - CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer0.org1.example.com:7051 + - CORE_PEER_LOCALMSPID=Org1MSP + volumes: + - ./e2e_cli/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp:/etc/hyperledger/fabric/msp + - ./e2e_cli/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls:/etc/hyperledger/fabric/tls + ports: + - 7051:7051 + - 7052:7052 + - 7053:7053 + command: bash -c 'bash /tmp/peer_build.sh; peer node start' + #command: peer node start + +#networks: +# default: +# external: +# name: hyperledger_fabric diff --git a/hyperledger/1.0.1/docker-compose.yaml b/hyperledger/1.0.1/docker-compose.yaml new file mode 100644 index 00000000..b6f8de2a --- /dev/null +++ b/hyperledger/1.0.1/docker-compose.yaml @@ -0,0 +1,77 @@ +# https://github.com/yeasy/docker-compose-files/tree/master/hyperledger +# This compose file will start a Hyperledger Fabric 1.0 MVE, including +# * ca +# * orderer +# * peer +# * sdk for testing + +# all peers will join the default testchainid channel after bootup + +version: '2.0' + +services: + ca: + image: yeasy/hyperledger-fabric-ca:1.0.1 + container_name: fabric-ca + hostname: ca + # command: /go/src/github.com/hyperledger/fabric-ca/bin/ca server start -ca testdata/ec.pem -ca-key testdata/ec-key.pem -config testdata/testconfig.json + ports: + - "7054:7054" + command: fabric-ca-server start -b admin:adminpw + + orderer0: # There can be multiple orderers + image: yeasy/hyperledger-fabric-orderer:1.0.1 + container_name: fabric-orderer0 + hostname: orderer0 + environment: + - ORDERER_GENERAL_LEDGERTYPE=file + - ORDERER_GENERAL_BATCHTIMEOUT=10s + - ORDERER_GENERAL_MAXMESSAGECOUNT=10 + - ORDERER_GENERAL_MAXWINDOWSIZE=1000 + - ORDERER_GENERAL_LISTENADDRESS=0.0.0.0 + - ORDERER_GENERAL_LISTENPORT=7050 + - ORDERER_RAMLEDGER_HISTORY_SIZE=100 + - CONFIGTX_ORDERER_ORDERERTYPE=solo + ports: + - "7050:7050" + command: orderer + + peer0: + extends: + file: peer-base.yaml + service: peer + container_name: fabric-peer0 + hostname: peer0 + environment: + - CORE_PEER_ID=peer0 + - CORE_PEER_GOSSIP_ORGLEADER=true + links: + - orderer0 + ports: + - 7051:7051 + depends_on: + - orderer0 + command: peer node start -o orderer0:7050 + + cli: + extends: + file: peer-base.yaml + service: peer + container_name: fabric-cli + hostname: cli + environment: + - CORE_PEER_ID=cli + - CORE_PEER_ADDRESS=peer0:7051 + #- CORE_PEER_LOCALMSPID=Org0MSP + links: + - peer0 + - orderer0 + depends_on: + - peer0 + - orderer0 + command: bash -c 'while true; do sleep 20170504; done' + +#networks: +# default: +# external: +# name: hyperledger_fabric diff --git a/hyperledger/1.0.1/docs/artifacts_generation.md b/hyperledger/1.0.1/docs/artifacts_generation.md new file mode 100644 index 00000000..59345df4 --- /dev/null +++ b/hyperledger/1.0.1/docs/artifacts_generation.md @@ -0,0 +1,276 @@ +## Usage of cryptogen and configtxgen + +To bootup a fabric network, we need: + +* crypto_config: crypto keys/certs for all organizations, see `e2e_cli/crypto-config` +* orderer_genesis.block: genesis block to bootup orderer, see `e2e_cli/channel-artifacts` +* channel.tx: transaction to create an application channel, see `e2e_cli/channel-artifacts` +* Org1MSPanchors.tx, Org2MSPanchors.tx: Transaction to update anchor config in Org1 and Org2, see `e2e_cli/channel-artifacts` + +### Generate crypto-config using cryptogen + +```bash +$ cryptogen generate --config=/etc/hyperledger/fabric/crypto-config.yaml --output ./crypto-config +``` +cryptogen will read configuration from `crypto-config.yaml`, by default it was put under `/etc/hyperledger/fabric/`. + +Then put the generated `crypto-config` under `/etc/hyperledger/fabric/`. + + +### Generate blocks/txs using [configtxgen](http://hyperledger-fabric.readthedocs.io/en/latest/configtxgen.html?highlight=crypto#) + +By default, configtxgen will read configuration from `/etc/hyperledger/fabric/configtx.yaml`, Please customize the configtx.yaml file before running. + +#### Create orderer genesis block + +```bash +$ configtxgen -profile TwoOrgsOrdererGenesis -outputBlock ./channel-artifacts/orderer.genesis.block +``` + +#### Create channel transaction artifact + +```bash +$ CHANNEL_NAME=businesschannel +$ configtxgen -profile TwoOrgsChannel -outputCreateChannelTx ./channel-artifacts/channel.tx -channelID ${CHANNEL_NAME} +``` + +`channel.tx` is used for creating a new application channel `businesschannel` + +#### Update anchor peer for Organizations on the channel + +Choose peer peer0.org1.example.com as org1's anchor peer, and peer0.org2.example.com as org2's anchor peer. + +```bash +$ configtxgen -profile TwoOrgsChannel -outputAnchorPeersUpdate ./channel-artifacts/Org1MSPanchors.tx -channelID ${CHANNEL_NAME} -asOrg Org1MSP +``` + +```bash +$ configtxgen -profile TwoOrgsChannel -outputAnchorPeersUpdate ./channel-artifacts/Org2MSPanchors.tx -channelID ${CHANNEL_NAME} -asOrg Org2MSP +``` + +> more details refer to Example2 + +### Examples + +#### Example1: how to add and re-join a new channel + +This example will explain how to add a new channel without change basic topology that desigend in configtx.yaml and crypto-config.yaml. +start a fabric network with `docker-compose-1peer.yaml`, and into container fabric-cli + +* 1 Regenerate `channel.tx` using with new channel name + +Create channel configuration for the to-be-created `testchannel`. + +```bash +$ root@cli: CHANNEL_NAME=testchannel +$ root@cli: configtxgen -profile TwoOrgsChannel -outputCreateChannelTx ./channel-artifacts/channel.tx -channelID ${CHANNEL_NAME} +``` + +* 2 regenerate anchor peer configuratoin for Organizations + +```bash +$ root@cli: configtxgen -profile TwoOrgsChannel -outputAnchorPeersUpdate ./channel-artifacts/Org1MSPanchors.tx -channelID ${CHANNEL_NAME} -asOrg Org1MSP + +$ root@cli: configtxgen -profile TwoOrgsChannel -outputAnchorPeersUpdate ./channel-artifacts/Org2MSPanchors.tx -channelID ${CHANNEL_NAME} -asOrg Org2MSP +``` + +* (optional)execute auto-test script + + You can skip this step, this will quickly check whether the network works, and also you can verify manually. +```bash +$ root@cli: bash ./peer/scripts/test_1peer.sh testchannel +``` + +* 3 Create new channel + +```bash +$ root@cli: peer channel create -o orderer.example.com:7050 -c ${CHANNEL_NAME} -f ./channel-artifacts/channel.tx +``` + +check whether genrated new block `testchannel.block` + +```bash +root@cli: ls testchannel.block +testchannel.block +``` + +* 4 Join new channel + + Join peer0.org1.example.com to the new channel + +```bash +$ root@cli: peer channel join -b ${CHANNEL_NAME}.block -o orderer.example.com:7050 + +Peer joined the channel! +``` + +check whether success + +```bash +$ root@cli: peer channel list + +Channels peers has joined to: + testchannel +``` + +* 5 Update anchor peer + +```bash +$ root@cli: peer channel create -o orderer.example.com:7050 -c ${CHANNEL_NAME} -f ./channel-artifacts/Org1MSPanchors.tx +``` + +* 6 Install + +```bash +peer chaincode install -n mycc -v 1.0 -p github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02 +``` + +* 7 Instantiate + +```bash +root@cli: peer chaincode instantiate -o orderer.example.com:7050 -C ${CHANNEL_NAME} -n mycc -v 1.0 -c '{"Args":["init","a","100","b","200"]}' -P "OR ('Org1MSP.member')" +``` + +* 8 Query + +```bash +root@cli: peer chaincode query -C ${CHANNEL_NAME} -n mycc -c '{"Args":["query","a"]}' +``` + +The output should be: + +```bash +Query Result: 100 +UTC [main] main -> INFO 008 Exiting..... +``` + + + +#### Example2: how to add an organization or peer + +This example will explain how to add a new org or peer with changed the basic topology that desigend in configtx.yaml and crypto-config.yaml. + +##### all-in-one + +We privide some instance in current directory, in this case we add a new organization `Org3` and new peer `peer0.org3.example.com`. + +* 1 Generate necessary config and certs + +```bash +$ sudo docker-compose -f docker-compose-2orgs-4peers-event.yaml up +$ docker exec -it fabric-cli bash +$ root@cli: ./scripts/add-org.sh +``` + +> ** notice: For docker-compose-file clean, we did not mount these in the container, you need to mount yourself. + +* 2 Re-setup network + +```bash +echo "clean containers...." +docker rm -f `docker ps -aq` + +echo "clean images ..." +docker rmi -f `docker images|grep mycc-1.0|awk '{print $3}'` +``` + +```bash +$ sudo docker-compose -f docker-compose-2orgs-4peers-event.yaml up +``` + +* 3 execute auto-test + + Throuth this script to test whether the network works. +```bash +$ root@cli: bash ./scripts/test-5-peers.sh newchannel +``` + +The final output may look like following + +```bash +===================== Query on PEER4 on channel 'newchannel' is successful ===================== + +===================== All GOOD, End-2-End execution completed ===================== + +``` + + +##### manually + +* 1 Modify config + + modify configtx.yaml, crypto-cnfig.yaml and docker-compose files to adapt new change. and replace old file. + +* 2 Bootstrap network with `docker-compose-2orgs-4peers-event.yaml` + +```bash +$ docker-compose -f docker-compose-2orgs-4peers-event.yaml up +``` + +> notes:You may encounter some errors at startup and some peers can't start up, It's innocuous, ignore it, +because we will restart later, and now we just use tools in cli container. + + +* 3 Generate new certificates + +```bash +$ cryptogen generate --config=/etc/hyperledger/fabric/crypto-config.yaml --output ./crypto +``` + +* 4 Create the genesis block + +```bash +root@cli: configtxgen -profile TwoOrgsOrdererGenesis -outputBlock ./channel-artifacts/orderer_genesis.block +``` + +* 5 Create the configuration tx + +```bash +root@cli: CHANNEL_NAME=newchannel +root@cli: configtxgen -profile TwoOrgsChannel -outputCreateChannelTx ./channel-artifacts/channel.tx -channelID ${CHANNEL_NAME} +``` +`channel.tx` is used for generating new channel `newchannel` + +* 6 Define the anchor peer for Orgs on the channel + +```bash +root@cli: configtxgen -profile TwoOrgsChannel -outputAnchorPeersUpdate ./channel-artifacts/Org1MSPanchors.tx -channelID ${CHANNEL_NAME} -asOrg Org1MSP + +root@cli: configtxgen -profile TwoOrgsChannel -outputAnchorPeersUpdate ./channel-artifacts/Org2MSPanchors.tx -channelID ${CHANNEL_NAME} -asOrg Org2MSP + +root@cli: configtxgen -profile TwoOrgsChannel -outputAnchorPeersUpdate ./channel-artifacts/Org3MSPanchors.tx -channelID ${CHANNEL_NAME} -asOrg Org3MSP +``` + +* 7 Restart network + + As we have changed the configtx.yaml and regenerate `orderer_genesis.block`, + we'd better restart orderering service or all the service. + now we clean all the old service and boot a new network. + +```bash +echo "clean containers...." +docker rm -f `docker ps -aq` + +echo "clean images ..." +docker rmi -f `docker images|grep mycc-1.0|awk '{print $3}'` +``` + +```bash +$ sudo docker-compose -f docker-compose-2orgs.yml up +``` + +* 8 Execute auto-test script + + Until this step, we complete the network re-setup, and then we will test whether it works. + +```bash +$ root@cli: bash ./scripts/test-5-peers.sh +``` + +If the network works well. the output may looklike: + +```bash + +===================== All GOOD, End-2-End execution completed ===================== + +``` diff --git a/hyperledger/1.0.1/docs/chaincode_test.md b/hyperledger/1.0.1/docs/chaincode_test.md new file mode 100644 index 00000000..985d6fd6 --- /dev/null +++ b/hyperledger/1.0.1/docs/chaincode_test.md @@ -0,0 +1,35 @@ +## Chaincode Tests + +All the test command needs to be executed inside the `fabric-cli` container. + +Use the following command to login into the container fabric-cli + +```bash +$ docker exec -it fabric-cli bash +``` + +After finish the chaincode tests, you can log-out by `exit`. + + +### Chaincode Operations + +You can execute some chaincode operations, such as `query` or `invoke`, +and you can modify the parameters and execute this script repeatedly. + +```bash +$ bash ./scripts/test_4peers.sh #execute in container fabric-cli +``` + +You should see the following output: + +```bash +UTC [msp] GetLocalMSP -> DEBU 004 Returning existing local MSP +UTC [msp] GetDefaultSigningIdentity -> DEBU 005 Obtaining default signing identity +UTC [msp/identity] Sign -> DEBU 006 Sign: plaintext: 0AB7070A6D08031A0C08C3EAE9C90510...6D7963631A0A0A0571756572790A0161 +UTC [msp/identity] Sign -> DEBU 007 Sign: digest: FA308EF50C4812BADB60D58CE15C1CF41089EFB93B27D46885D92C92F55E98A0 +Query Result: 80 +UTC [main] main -> INFO 008 Exiting..... +===================== Query on PEER3 on channel 'businesschannel' is successful ===================== + +===================== All GOOD, End-2-End execution completed ===================== +``` diff --git a/hyperledger/1.0.1/docs/configtxlator.md b/hyperledger/1.0.1/docs/configtxlator.md new file mode 100644 index 00000000..c9617b01 --- /dev/null +++ b/hyperledger/1.0.1/docs/configtxlator.md @@ -0,0 +1,195 @@ +## Start the configtxlator + +First start a fabric network with docker-compose-2orgs-4peers.yaml, and make sure the network can work, +then we will use `configtxlator` to start an http server listening on the designated port and process request. + +```bash +$ docker exec -it fab-cli bash +$ configtxlator start +UTC [configtxlator] startServer -> INFO 001 Serving HTTP requests on 0.0.0.0:7059 + +``` +This logs appears, indicating startup successful. + +## Function + +### translation + +#### /protolator/decode/{msgName} + +Any of the configuration related protos, including `common.Block`, `common.Envelope`, `common.ConfigEnvelope`, +`common.ConfigUpdateEnvelope`, `common.Configuration`, and `common.ConfigUpdate` are valid targets for these URLs. +this will produces human readable version of config, such as translate to json + +Execute following command in new terminal, +```bash +$ docker exec -it fabric-cli bash +$ cd channel-artifacts +$ curl -X POST --data-binary @businesschannel_0.block http://127.0.0.1:7059/protolator/decode/common.Block > businesschannel_0.json +``` + +for channel.tx, use following msgType. + +```bash +curl -X POST --data-binary @channel.tx http://127.0.0.1:7059/protolator/decode/common.Envelope > channel.json +``` + +#### /protolator/encode/{msgName} + +And we can transform json to proto. +```bash +$ curl -X POST --data-binary @businesschannel_0.json http://127.0.0.1:7059/protolator/encode/common.Block > businesschannel_0.block +``` + +### Re-Configuration example + +1. here we will introduce how to re-configuration config.block, first fetch the block and translate it to json. + +```bash +$ ORDERER_CA=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem + +$ peer channel fetch config -o orderer.example.com:7050 -c businesschannel --tls $CORE_PEER_TLS_ENABLED --cafile $ORDERER_CA|xargs mv true config_block.pb + +$ peer channel fetch config config_block.pb -o orderer.example.com:7050 -c businesschannel # with no-tls + +$ curl -X POST --data-binary @config_block.pb http://127.0.0.1:7059/protolator/decode/common.Block > config_block.json +``` + +2. Extract the config section from the block: + +```bash +$ apt-get install jq +$ jq .data.data[0].payload.data.config config_block.json > config.json +``` + +3. edit the config.json, set the batch size to 11, and saving it as update_config.json + +```bash +4. $ jq ".channel_group.groups.Orderer.values.BatchSize.value.max_message_count = 11" config.json > updated_config.json +``` + +5. Re-encode both the original config, and the updated config into proto: + +```bash +$ curl -X POST --data-binary @config.json http://127.0.0.1:7059/protolator/encode/common.Config > config.pb +$ curl -X POST --data-binary @updated_config.json http://127.0.0.1:7059/protolator/encode/common.Config > updated_config.pb +``` + +6. send them to the configtxlator service to compute the config update which transitions between the two. + +```bash +$ curl -X POST -F original=@config.pb -F updated=@updated_config.pb http://127.0.0.1:7059/configtxlator/compute/update-from-configs -F channel=businesschannel > config_update.pb +``` + +7. we decode the ConfigUpdate so that we may work with it as text: +```bash +$ curl -X POST --data-binary @config_update.pb http://127.0.0.1:7059/protolator/decode/common.ConfigUpdate > config_update.json +``` + +8. Then, we wrap it in an envelope message: + +```bash +$ echo '{"payload":{"header":{"channel_header":{"channel_id":"businesschannel", "type":2}},"data":{"config_update":'$(cat config_update.json)'}}}' > config_update_as_envelope.json +``` + +9. Next, convert it back into the proto form of a full fledged config transaction: + +```bash +$ curl -X POST --data-binary @config_update_as_envelope.json http://127.0.0.1:7059/protolator/encode/common.Envelope > config_update_as_envelope.pb +```` + +10. Finally, submit the config update transaction to ordering to perform a config update. + +```bash +$ CORE_PEER_LOCALMSPID=OrdererMSP +$ CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/users/Admin@example.com/msp + +$ peer channel update -o orderer.example.com:7050 -c businesschannel -f config_update_as_envelope.pb --tls $CORE_PEER_TLS_ENABLED --cafile $ORDERER_CA +$ peer channel update -f config_update_as_envelope.pb -o orderer.example.com:7050 -c businesschannel # with no-tls +``` + +### [WIP]Add an organization + +1. Execute `configtxgen` to generate `channel.tx` + +```bash +$ ORDERER_GENERAL_GENESISPROFILE=SampleDevModSolo #Change this env before start ordering service. +``` + +```bash +$ docker exec -it fabric-cli bash +$ configtxgen -profile SampleDevModSolo -outputCreateChannelTx ./channel-artifacts/channel.tx -channelID businesschannel +``` + +2. create channel use channel.tx, then we will get block businesschannel.block + +```bash +$ peer channel create -o orderer.example.com:7050 -c businesschannel -f ./channel-artifacts/channel.tx +``` + +3. Start configtxlator + +```bash +$ docker exec -it fabric-cli bash +$ configtxlator start +``` + +4. In a new window, decoding current genesis block + +```bash +$ curl -X POST --data-binary @businesschannel.block http://127.0.0.1:7059/protolator/decode/common.Block > businesschannel.json +``` + +5. Extract current config + +```bash +jq .data.data[0].payload.data.config businesschannel.json > config.json +``` + +6. generating new config + +```bash +jq '. * {"channel_group":{"groups":{"Application":{"groups":{"ExampleOrg": .channel_group.groups.Application.groups.SampleOrg}}}}}' config.json | +jq '.channel_group.groups.Application.groups.ExampleOrg.values.MSP.value.config.name = "ExampleOrg"' > update_config.json +``` + +7. Translate config.json and update_config.json to proto + +```bash +curl -X POST --data-binary @config.json http://127.0.0.1:7059/protolator/encode/common.Config > config.pb +curl -X POST --data-binary @update_config.json http://127.0.0.1:7059/protolator/encode/common.Config > update_config.pb +``` + +8. Computing config update + +```bash +curl -X POST -F original=@config.pb -F updated=@update_config.pb http://127.0.0.1:7059/configtxlator/compute/update-from-configs -F channel=businesschannel > config_update.pb +``` + +9. Decoding config update + +```bash +curl -X POST --data-binary @config_update.pb http://127.0.0.1:7059/protolator/decode/common.ConfigUpdate > config_update.json +``` + +10. Generating config update envelope + +```bash +echo '{"payload":{"header":{"channel_header":{"channel_id":"businesschannel", "type":2}},"data":{"config_update":'$(cat config_update.json)'}}}' > config_update_in_envelope.json +``` + +11. Next, convert it back into the proto form of a full fledged config transaction: + +```bash +curl -X POST --data-binary @config_update_in_envelope.json http://127.0.0.1:7059/protolator/encode/common.Envelope > config_update_in_envelope.pb +``` + +12. Sending config update to channel + +```bash +$ CORE_PEER_LOCALMSPID=OrdererMSP +$ CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/users/Admin@example.com/msp + +$ peer channel update -o orderer.example.com:7050 -c businesschannel -f config_update_in_envelope.pb --tls $CORE_PEER_TLS_ENABLED --cafile $ORDERER_CA +$ (optional)peer channel update -f config_update_as_envelope.pb -o orderer.example.com:7050 -c businesschannel # with no-tls +``` \ No newline at end of file diff --git a/hyperledger/1.0.1/docs/couchdb_usage.md b/hyperledger/1.0.1/docs/couchdb_usage.md new file mode 100644 index 00000000..8708d9f9 --- /dev/null +++ b/hyperledger/1.0.1/docs/couchdb_usage.md @@ -0,0 +1,32 @@ + +### Start network with CouchDB + +```bash +docker-compose -f docker-compose-2orgs-4peers.yaml -f docker-compose-2orgs-4peers-couchdb.yaml up +``` + +To use CouchDB instead of the default database leveldb, The same chaincode functions are available with CouchDB, however, there is the +added ability to perform rich and complex queries against the state database +data content contingent upon the chaincode data being modeled as JSON + +### Test chaincode_example02 + +```bash +docker exec -it fabric-cli bash + +bash ./scripts/initialize.sh + +bash ./scripts/test_4peers.sh +``` + +You can use chaincode_example02 chaincode against the CouchDB state database +using the steps outlined above, however in order to exercise the CouchDB query +capabilities you will need to use a chaincode that has data modeled as JSON. +(e.g. marbles02) + +### [WIP] [Test example marbles02](https://github.com/hyperledger/fabric/blob/master/examples/chaincode/go/marbles02/marbles_chaincode.go) + +### Interact with CouchDb by WEB-UI + +The browser is `http://localhost:5984/_utils`, then you will find a database named `businesschannel` + \ No newline at end of file diff --git a/hyperledger/1.0.1/docs/detailed_steps.md b/hyperledger/1.0.1/docs/detailed_steps.md new file mode 100644 index 00000000..1448f355 --- /dev/null +++ b/hyperledger/1.0.1/docs/detailed_steps.md @@ -0,0 +1,122 @@ +## Use default channel + +By default, all the peer will join the default chain of `testchainid`. + +```bash +$ docker exec -it fabric-cli bash +$ peer channel list +Channels peers has joined to: + testchainid +UTC [main] main -> INFO 001 Exiting..... +``` + +After the cluster is synced successfully, you can validate by install/instantiate, invoking or querying chaincode from the container or from the host. + +### install&instantiate +Use `docker exec -it fabric-cli bash` to open a bash inside container `fabric-cli`, which will accept our chaincode testing commands of `install&instantiate`, `invoke` and `query`. + +Inside the container, run the following command to install a new chaincode of the example02. The chaincode will initialize two accounts: `a` and `b`, with value of `100` and `200`. + +```bash +$ peer chaincode install -v 1.0 -n test_cc -p github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02 +``` +This will take a while, and the result may look like following. + +```bash +[golang-platform] writeGopathSrc -> INFO 001 rootDirectory = /go/src +container] WriteFolderToTarPackage -> INFO 002 rootDirectory = /go/src +[main] main -> INFO 003 Exiting..... +``` + +Then instantiate the chaincode test_cc on defaule channel testchainid. +```bash +$ peer chaincode instantiate -v 1.0 -n test_cc -c '{"Args":["init","a","100","b","200"]}' -o orderer0:7050 +``` + +This will take a while, and the result may look like following: + +```bash +UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 001 Using default escc +UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 002 Using default vscc +UTC [main] main -> INFO 003 Exiting..... +``` + +There should be no error in the return log, and in the peer nodes's output. +Wait several seconds till the deploy is finished. + +If the `peer chaincode install` and `peer chaincode instantiate` commands are executed successfully, there will generate a new chaincode container, besides the 4 existing one, name like `dev-peer0-test_cc-1.0`. +```bash +$ docker ps +CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES +cf7bf529f214 dev-peer0-test_cc-1.0 "chaincode -peer.a..." 58 seconds ago Up 58 seconds dev-peer0-test_cc-1.0 +44b6870b0802 hyperledger/fabric-peer "bash -c 'while tr..." 14 minutes ago Up 14 minutes 7050-7059/tcp fabric-cli +ed2c4927c0ed hyperledger/fabric-peer "peer node start -..." 14 minutes ago Up 14 minutes 7050/tcp, 7052-7059/tcp, 0.0.0.0:7051->7051/tcp fabric-peer0 +af5ba8f213bb hyperledger/fabric-orderer "orderer" 14 minutes ago Up 14 minutes 0.0.0.0:7050->7050/tcp fabric-orderer0 +bbe31b98445f hyperledger/fabric-ca "fabric-ca-server ..." 14 minutes ago Up 14 minutes 7054/tcp, 0.0.0.0:7054->7054/tcp fabric-ca + +``` + +And will also generate a new chaincode image, name like `dev-peer0-test_cc-1.0`. +```bash +$ docker images +REPOSITORY TAG IMAGE ID CREATED SIZE +dev-peer0-test_cc-1.0 latest 84e5422eead5 About a minute ago 176 MB +... +``` + +### Query +Inside the container, query the existing value of `a` and `b`. + +*Notice that the query method can be called by invoke a transaction.* + +```bash +$ peer chaincode query -n test_cc -c '{"Args":["query","a"]}' +``` + +The final output may look like the following, with a payload value of `100`. + +```bash +Query Result: 100 +[main] main -> INFO 001 Exiting..... +``` + +Query the value of `b` + +```bash +$ peer chaincode query -n test_cc -c '{"Args":["query","b"]}' -o orderer0:7050 +``` + +The final output may look like the following, with a payload value of `200`. + +```bash +Query Result: 200 +[main] main -> INFO 001 Exiting..... +``` + + +### Invoke +Inside the container, invoke a transaction to transfer `10` from `a` to `b`. + +```bash +$ peer chaincode invoke -n test_cc -c '{"Args":["invoke","a","b","10"]}' -o orderer0:7050 +``` + +The final result may look like the following, the response should be `OK`. + +```bash +[chaincodeCmd] chaincodeInvokeOrQuery -> INFO 001 Invoke result: version:1 response: payload:"\n \215\263\337\322u\323?\242t$s\035l\270Ta\270\270+l6\322X\346\365k\020\215Phy\260\022C\n<\002\004lccc\001\007test_cc\004\001\001\001\001\000\000\007test_cc\002\001a\004\001\001\001\001\001b\004\001\001\001\001\002\001a\000\00290\001b\000\003210\000\032\003\010\310\001" endorsement: +[main] main -> INFO 002 Exiting..... +``` + +### Query +Query again the existing value of `a` and `b`. + +```bash +$ peer chaincode query -n test_cc -c '{"Args":["query","a"]}' +``` +The new value of `a` should be 90. + +```bash +$ peer chaincode query -n test_cc -c '{"Args":["query","b"]}' +``` +The new value of `b` should be 210. \ No newline at end of file diff --git a/hyperledger/1.0.1/docs/docker-compose-1peer-usage.md b/hyperledger/1.0.1/docs/docker-compose-1peer-usage.md new file mode 100644 index 00000000..c73b58ac --- /dev/null +++ b/hyperledger/1.0.1/docs/docker-compose-1peer-usage.md @@ -0,0 +1,221 @@ +### Explain 1-peer usage step by step + +This section will show you how to operate the chaincode in detail. +first start fabric network with `docker-compose-1peer.yaml`, and we will obtain the basic environmet that can be operated. + +```bash +$ docker-compose -f docker-compose-1peer.yaml up +``` + +There will be 4 containers running successfully. + +```bash +$ docker ps +CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES +6688f290a9b9 hyperledger/fabric-peer "bash -c 'while tr..." About a minute ago Up About a minute 7050-7059/tcp fabric-cli +6ddbbd972ac3 hyperledger/fabric-peer "peer node start -..." About a minute ago Up About a minute 7050/tcp, 0.0.0.0:7051->7051/tcp, 7052/tcp, 7054-7059/tcp, 0.0.0.0:7053->7053/tcp peer0.org1.example.com +4afc759e0dc9 hyperledger/fabric-orderer "orderer" About a minute ago Up About a minute 0.0.0.0:7050->7050/tcp orderer.example.com +bea1154c7162 hyperledger/fabric-ca "fabric-ca-server ..." About a minute ago Up About a minute 7054/tcp, 0.0.0.0:7054->7054/tcp fabric-ca +``` + + +#### Create artifacts + +**This step can be safely skipped.**. + +As we already put the needed artifacts `orderer.genesis.block` and `channel.tx` under `e2e_cli/channel-artifacts/`. + +Detailed steps in [GenerateArtifacts](artifacts_generation.md) explains the creation of `orderer.genesis.block` (needed by orderering service) and `channel.tx` (needed by cli to create new channel) and crypto related configuration files. + +#### Create new channel + +Create a new channel named `mychannel` with the existing `channel.tx` file. + +```bash +$ docker exec -it fabric-cli bash +``` +Into the container and execute following commands: + +```bash +$ CHANNEL_NAME="businesschannel" +$ peer channel create -o orderer.example.com:7050 -c ${CHANNEL_NAME} -f ./channel-artifacts/channel.tx +``` +The cmd will return lots of info, which is the content of the configuration block. + +And a block with the same name of the channel will be created locally. + +```bash +$ ls businesschannel.block +businesschannel.block +``` + +Check the log output of `orderer.example.com`, should find some message like + +```bash +orderer.example.com | UTC [orderer/multichain] newChain -> INFO 004 Created and starting new chain newchannel +``` + +#### Join the channel + +Use the following command to join `peer0.org1.example.com` the channel + +```bash +$ peer channel join -b ${CHANNEL_NAME}.block + +Peer joined the channel! +``` + +Will receive the `Peer joined the channel!` response if succeed. + +Then use the following command, we will find the channels that peers joined. + +```bash +$ peer channel list +Channels peers has joined to: + mychannel +2017-04-11 03:44:40.313 UTC [main] main -> INFO 001 Exiting..... +``` + +#### Update anchor peers + +The `configtx.yaml` file contains the definitions for our sample network and presents the topology of the network components - three members (OrdererOrg, Org1 & Org2), But in this MVE, we just use OrdererOrg and Org1, org1 has only peer(pee0.org1), and chose it as anchor peers for Org1. + +```bash +$ peer channel create -o orderer.example.com:7050 -c ${CHANNEL_NAME} -f ./channel-artifacts/Org1MSPanchors.tx +``` + +#### Install&Instantiate + +First `install` a chaincode named `mycc` to `peer0`. + +```bash +$ peer chaincode install -n mycc -v 1.0 -p github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02 +``` + +This will take a while, and the result may look like following. + +```bash +UTC [golang-platform] writeGopathSrc -> INFO 004 rootDirectory = /go/src +UTC [container] WriteFolderToTarPackage -> INFO 005 rootDirectory = /go/src +UTC [main] main -> INFO 006 Exiting..... +``` + +Then `instantiate` the chaincode mycc on channel `mychannel`, with initial args and the endorsement policy. + +```bash +$ peer chaincode instantiate -o orderer.example.com:7050 -C ${CHANNEL_NAME} -n mycc -v 1.0 -c '{"Args":["init","a","100","b","200"]}' -P "OR ('Org1MSP.member')" +``` + +This will take a while, and the result may look like following: + +```bash +UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 004 Using default escc +UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 005 Using default vscc +UTC [main] main -> INFO 006 Exiting..... +``` + +Now in the system, there will be a new `dev-peer0.org1.example.com-mycc-1.0` image and a `dev-peer0.org1.example.com-mycc-1.0` chaincode container. + +```bash +crluser@baas-test2:~$ docker ps +CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES +7aa088c76597 dev-peer0.org1.example.com-mycc-1.0 "chaincode -peer.a..." 10 seconds ago Up 9 seconds dev-peer0.org1.example.com-mycc-1.0 +eb1d9c73b26b hyperledger/fabric-peer "bash -c 'while tr..." About a minute ago Up About a minute 7050-7059/tcp fabric-cli +2d6fd4f61e2b hyperledger/fabric-peer "peer node start -..." About a minute ago Up About a minute 7050/tcp, 0.0.0.0:7051->7051/tcp, 7052/tcp, 7054-7059/tcp, 0.0.0.0:7053->7053/tcp peer0.org1.example.com +832dcc64cc1b hyperledger/fabric-orderer "orderer" About a minute ago Up About a minute 0.0.0.0:7050->7050/tcp orderer.example.com +c87095528f76 hyperledger/fabric-ca "fabric-ca-server ..." About a minute ago Up About a minute 7054/tcp, 0.0.0.0:7054->7054/tcp fabric-ca +``` + +#### Query + +Query the existing value of `a` and `b`. + +```bash +$ peer chaincode query -C ${CHANNEL_NAME} -n mycc -c '{"Args":["query","a"]}' +``` + +The result may look like following, with a payload value of `100`. +```bash +Query Result: 100 +[main] main -> INFO 001 Exiting..... +``` + +```bash +$ peer chaincode query -C ${CHANNEL_NAME} -n mycc -c '{"Args":["query","a"]}' +``` + +The result may look like following, with a payload value of `200`. + +```bash +Query Result: 200 +[main] main -> INFO 001 Exiting..... +``` + + +#### Invoke + +Inside the container, invoke a transaction to transfer `10` from `a` to `b`. + +```bash +$ peer chaincode invoke -o orderer.example.com:7050 -C ${CHANNEL_NAME} -n mycc -c '{"Args":["invoke","a","b","10"]}' +``` + +The result may look like following: + +```bash +UTC [chaincodeCmd] chaincodeInvokeOrQuery -> INFO 001 Invoke result: version:1 response: payload:"\n qm\251\207\312\277\256\261b\317:\300\000\014\203`\005\304\254\304,$a\360\327\010\342\342/y]\323\022X\nQ\022\031\n\004lccc\022\021\n\017\n\007test_cc\022\004\010\001\020\001\0224\n\007test_cc\022)\n\t\n\001a\022\004\010\001\020\001\n\t\n\001b\022\004\010\001\020\001\032\007\n\001a\032\00290\032\010\n\001b\032\003210\032\003\010\310\001" endorsement:\277\251j\021$\250\237H\353\377\331:\230\362n\216\224~\033\240\006\367%\002 \014\240|h\346\250\356\372\353\301;#\372\027\276!\252F\334/\221\210\254\215\363\235\341v\217\236\274<" > +2017-04-06 09:47:15.993 UTC [main] main -> INFO 002 Exiting..... +``` + +#### Query + +And then query the value of `a` and `b`. + + +```bash +$ peer chaincode query -C ${CHANNEL_NAME} -n mycc -c '{"Args":["query","a"]}' +``` + +```bash +Query Result: 90 +[main] main -> INFO 001 Exiting..... +``` +The value of `a` should be `90`. + + +```bash +$ peer chaincode query -C ${CHANNEL_NAME} -n mycc -c '{"Args":["query","b"]}' +``` + +The value of `b` should be `210` + +```bash +Query Result: 210 +[main] main -> INFO 001 Exiting..... +``` + +Finally, the output of the chaincode containers may look like following. + +```bash +$ docker logs -f dev-peer0.org1.example.com-mycc-1.0 +ex02 Init +Aval = 100, Bval = 200 +ex02 Invoke +Query Response:{"Name":"a","Amount":"100"} +ex02 Invoke +Aval = 90, Bval = 210 +ex02 Invoke +Query Response:{"Name":"b","Amount":"210"} +ex02 Invoke +Query Response:{"Name":"a","Amount":"90"} + +``` + +#### (optional) All-in-one testing operation + +Run this script will check whether the MVE bootstrap success. + +```bash +$ docker exec -it fabric-cli bash +$ bash ./scripts/test_1peer.sh +``` \ No newline at end of file diff --git a/hyperledger/1.0.1/docs/events.md b/hyperledger/1.0.1/docs/events.md new file mode 100644 index 00000000..a0e02dab --- /dev/null +++ b/hyperledger/1.0.1/docs/events.md @@ -0,0 +1,33 @@ +## Events +Events didn't support TLS, so make sure TLS has been disabled by setting *_TLS_ENABLED=false in peer-base.yaml and orderer-base.yaml +Next, start the network with following command: +```bash +$ bash scripts/start_fabric.sh docker-compose-2orgs-4peers-event.yaml +``` + +when the network starts successfully, we started a block-listener in container `fabric-event-listener`. +so observe the output of the service fabric-event-listener. + +Listening logs at a new terminal, + +```bash +$ docker logs -f fabric-event-listener +``` + +So when we do chaincode operations in container `fabric-cli`, + +```bash +$ docker exec -it fabric-cli bash +$ bash ./scripts/initialize.sh +``` + +then we will get some events at listening terminal looks like following: + +```bash +Received block +-------------- +Received transaction from channel businesschannel: + [header: latest tag +################################################## + +#Set ARCH variable i.e ppc64le,s390x,x86_64,i386 +ARCH=`uname -m` + +dockerFabricPull() { + local FABRIC_TAG=$1 + for IMAGES in peer orderer couchdb ccenv javaenv kafka tools zookeeper; do + echo "==> FABRIC IMAGE: $IMAGES" + echo + docker pull hyperledger/fabric-$IMAGES:$FABRIC_TAG + docker tag hyperledger/fabric-$IMAGES:$FABRIC_TAG hyperledger/fabric-$IMAGES + done +} + +dockerCaPull() { + local CA_TAG=$1 + echo "==> FABRIC CA IMAGE" + echo + docker pull hyperledger/fabric-ca:$CA_TAG + docker tag hyperledger/fabric-ca:$CA_TAG hyperledger/fabric-ca +} +usage() { + echo "Description " + echo + echo "Pulls docker images from hyperledger dockerhub repository" + echo "tag as hyperledger/fabric-:latest" + echo + echo "USAGE: " + echo + echo "./download-dockerimages.sh [-c ] [-f ]" + echo " -c fabric-ca docker image tag" + echo " -f fabric docker image tag" + echo + echo + echo "EXAMPLE:" + echo "./download-dockerimages.sh -c x86_64-1.0.0-beta -f x86_64-1.0.0-beta" + echo + echo "By default, pulls fabric-ca and fabric 1.0.0-beta docker images" + echo "from hyperledger dockerhub" + exit 0 +} + +while getopts "\?hc:f:" opt; do + case "$opt" in + c) CA_TAG="$OPTARG" + echo "Pull CA IMAGES" + ;; + + f) FABRIC_TAG="$OPTARG" + echo "Pull FABRIC TAG" + ;; + \?|h) usage + echo "Print Usage" + ;; + esac +done + +: ${CA_TAG:="$ARCH-1.0.0-beta"} +: ${FABRIC_TAG:="$ARCH-1.0.0-beta"} + +echo "===> Pulling fabric Images" +dockerFabricPull ${FABRIC_TAG} + +echo "===> Pulling fabric ca Image" +dockerCaPull ${CA_TAG} +echo +echo "===> List out hyperledger docker images" +docker images | grep hyperledger* diff --git a/hyperledger/1.0.1/e2e_cli/end-to-end.rst b/hyperledger/1.0.1/e2e_cli/end-to-end.rst new file mode 100644 index 00000000..9f187339 --- /dev/null +++ b/hyperledger/1.0.1/e2e_cli/end-to-end.rst @@ -0,0 +1,912 @@ +End-to-End Flow +=============== + +The end-to-end verification provisions a sample Fabric network consisting of +two organizations, each maintaining two peers, and a Kafka-based ordering service. + +This verification makes use of two fundamental tools, which are necessary to +create a functioning transactional network with digital signature validation +and access control: + +* cryptogen - generates the x509 certificates used to identify and authenticate the various components in the network. +* configtxgen - generates the requisite configuration artifacts for orderer bootstrap and channel creation. + +Each tool consumes a configuration yaml file, within which we specify the topology +of our network (cryptogen) and the location of our certificates for various +configuration operations (configtxgen). Once the tools have been successfully run, +we are able to launch our network. More detail on the tools and the structure of +the network will be provided later in this document. For now, let's get going... + +Prerequisites +------------- + +- `Git client `__ +- `Docker `__ - v1.12 or higher +- `Docker Compose `__ - v1.8 or higher +- `Homebrew `__ - OSX only +- `Xcode `__ - OSX only (this can take upwards of an hour) +- `Docker Toolbox `__ - Windows users only +- `Go `__ - 1.7 or higher + +On Windows machines you will also need the following which provides a better alternative to the Windows command prompt: + +- `Git Bash `__ + +.. note:: On older versions of Windows, such as Windows 7, you + typically get this as part of installing Docker + Toolbox. However experience has shown this to be a poor + development environment with limited functionality. It is + suitable to run docker based scenarios, such as + :doc:`getting_started`, but you may not be able to find a + suitable ``make`` command to successfuly go through the + scenario described here. + +Setting the $GOPATH +^^^^^^^^^^^^^^^^^^^ +Make sure you have properly setup your Host's `GOPATH environment +variable `__. This is necessary for the +code to compile properly. + +Now create the following directory structure and ``cd`` into it: + +.. code:: bash + + mkdir -p $GOPATH/src/github.com/hyperledger + cd $GOPATH/src/github.com/hyperledger + +- Clone the Fabric code base into this path. + +.. code:: bash + + git clone http://gerrit.hyperledger.org/r/fabric + +or though a mirrored repository in github: + +.. code:: bash + + git clone https://github.com/hyperledger/fabric.git + +- If you are running OSX, perform the following: + +.. code:: bash + + brew install gnu-tar --with-default-names + brew install libtool + +Build the binaries +^^^^^^^^^^^^^^^^^^ + +- Now make the platform-specific binaries for ``cryptogen`` and ``configtxgen``. + +.. code:: bash + + cd $GOPATH/src/github.com/hyperledger/fabric + # ensure sure you are in the /fabric directory where the Makefile resides + make release + +This will output platform-specific binaries into the ``fabric/release`` folder. + +- Next, make the Fabric images. This typically takes between five to ten minutes, so + be patient: + +.. code:: bash + + # make sure you are in the /fabric directory + make docker + +Execute a ``docker images`` command in your terminal. If the images compiled +successfully, you should see an output similar to the following: + +.. code:: bash + + REPOSITORY TAG IMAGE ID CREATED SIZE + hyperledger/fabric-couchdb latest e2df4dd39ca9 38 minutes ago 1.51 GB + hyperledger/fabric-couchdb x86_64-1.0.0-beta e2df4dd39ca9 38 minutes ago 1.51 GB + hyperledger/fabric-kafka latest 08af4d797266 40 minutes ago 1.3 GB + hyperledger/fabric-kafka x86_64-1.0.0-beta 08af4d797266 40 minutes ago 1.3 GB + hyperledger/fabric-zookeeper latest 444e9e695367 40 minutes ago 1.31 GB + hyperledger/fabric-zookeeper x86_64-1.0.0-beta 444e9e695367 40 minutes ago 1.31 GB + hyperledger/fabric-testenv latest 8678d3101930 41 minutes ago 1.41 GB + hyperledger/fabric-testenv x86_64-1.0.0-beta 8678d3101930 41 minutes ago 1.41 GB + hyperledger/fabric-buildenv latest 60911392c82e 41 minutes ago 1.33 GB + hyperledger/fabric-buildenv x86_64-1.0.0-beta 60911392c82e 41 minutes ago 1.33 GB + hyperledger/fabric-orderer latest 2afab937b9cc 41 minutes ago 182 MB + hyperledger/fabric-orderer x86_64-1.0.0-beta 2afab937b9cc 41 minutes ago 182 MB + hyperledger/fabric-peer latest 9560e58e8089 41 minutes ago 185 MB + hyperledger/fabric-peer x86_64-1.0.0-beta 9560e58e8089 41 minutes ago 185 MB + hyperledger/fabric-javaenv latest 881ca5219fad 42 minutes ago 1.43 GB + hyperledger/fabric-javaenv x86_64-1.0.0-beta 881ca5219fad 42 minutes ago 1.43 GB + hyperledger/fabric-ccenv latest 28af77ffe9e9 43 minutes ago 1.29 GB + hyperledger/fabric-ccenv x86_64-1.0.0-beta 28af77ffe9e9 43 minutes ago 1.29 GB + hyperledger/fabric-baseimage x86_64-0.3.0 f4751a503f02 3 months ago 1.27 GB + hyperledger/fabric-baseos x86_64-0.3.0 c3a4cf3b3350 3 months ago 161 MB + +If you failed to compile the ``fabric-testenv`` image, then you can +perform a ``make clean`` followed by another ``make docker``. + +Cryptogen Tool +-------------- +We will use the cryptogen tool to generate the cryptographic material (x509 certs) +for our various network entities. The certificates are based on a standard PKI +implementation where validation is achieved by reaching a common trust anchor. + +How does it work? +^^^^^^^^^^^^^^^^^ + +Cryptogen consumes a file - ``crypto-config.yaml`` - that contains the network +topology and allows us to generate a library of certificates for both the +Organizations and the components that belong to those Organizations. Each +Organization is provisioned a unique root certificate (``ca-cert``), that binds +specific components (peers and orderers) to that Org. Transactions and communications +within Fabric are signed by an entity's private key (``keystore``), and then verified +by means of a public key (``signcerts``). You will notice a "count" variable within +this file. We use this to specify the number of peers per Organization; in our +case it's two peers per Org. The rest of this template is extremely +self-explanatory. + +After we run the tool, the certs will be parked in a folder titled ``crypto-config``. + +Configuration Transaction Generator +----------------------------------- + +The `configtxgen +tool `__ +is used to create four artifacts: orderer **bootstrap block**, fabric +**channel configuration transaction**, and two **anchor peer transactions** - one +for each Peer Org. + +The orderer block is the genesis block for the ordering service, and the +channel transaction file is broadcast to the orderer at channel creation +time. The anchor peer transactions, as the name might suggest, specify each +Org's anchor peer on this channel. + +How does it work? +^^^^^^^^^^^^^^^^^ + +Configtxgen consumes a file - ``configtx.yaml`` - that contains the definitions +for the sample network. There are three members - one Orderer Org (``OrdererOrg``) +and two Peer Orgs (``Org1`` & ``Org2``) each managing and maintaining two peer nodes. +This file also specifies a consortium - ``SampleConsortium`` - consisting of our +two Peer Orgs. Pay specific attention to the "Profiles" section at the top of +this file. You will notice that we have two unique headers. One for the orderer genesis +block - ``TwoOrgsOrdererGenesis`` - and one for our channel - ``TwoOrgsChannel``. +These headers are important, as we will pass them in as arguments when we create +our artifacts. This file also contains two additional specifications that are worth +noting. Firstly, we specify the anchor peers for each Peer Org +(``peer0.org1.example.com`` & ``peer0.org2.example.com``). Secondly, we point to +the location of the MSP directory for each member, in turn allowing us to store the +root certificates for each Org in the orderer genesis block. This is a critical +concept. Now any network entity communicating with the ordering service can have +its digital signature verified. + +For ease of use, a script - ``generateArtifacts.sh`` - is provided. The +script will generate the crypto material and our four configuration artifacts, and +subsequently output these files into the ``channel-artifacts`` folder. + +Run the shell script +^^^^^^^^^^^^^^^^^^^^ + +Make sure you are in the ``examples/e2e_cli`` directory where the script resides. +Decide upon a unique name for your channel and replace the parm +with a name of your choice. The script will fail if you do not supply a name. + +.. code:: bash + + cd examples/e2e_cli + ./generateArtifacts.sh + +The output of the script is somewhat verbose, as it generates the crypto +libraries and multiple artifacts. However, you will notice five distinct +and self-explanatory messages in your terminal. They are as follows: + +.. code:: bash + + ########################################################## + ##### Generate certificates using cryptogen tool ######### + ########################################################## + + ########################################################## + ######### Generating Orderer Genesis block ############## + ########################################################## + + ################################################################# + ### Generating channel configuration transaction 'channel.tx' ### + ################################################################# + + ################################################################# + ####### Generating anchor peer update for Org0MSP ########## + ################################################################# + + ################################################################# + ####### Generating anchor peer update for Org1MSP ########## + ################################################################# + + +These configuration transactions will bundle the crypto material for the +participating members and their network components and output an orderer +genesis block and three channel transaction artifacts. These artifacts are +required to successfully bootstrap a Fabric network and create a channel to +transact upon. + +Manually generate the artifacts (optional) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +You can refer to the ``generateArtifacts.sh`` script for the commands, however +for the sake of convenience we will also provide them here. + +First, let's set the environment variable for our platform architecture. +This command will detect your OS and use the appropriate binaries for the subsequent steps: + +.. code:: bash + + # for power or z + os_arch=$(echo "$(uname -s)-$(uname -m)" | awk '{print tolower($0)}') + + # for linux, osx or windows + os_arch=$(echo "$(uname -s)-amd64" | awk '{print tolower($0)}') + +Check to make sure it is set properly: + +.. code:: bash + + echo $os_arch + +Now let's run the tool. Our platform specific binary is in the ``release`` +directory, so we need to provide the relative path to where the tool resides. +Make sure you are in ``examples/e2e_cli``: + +.. code:: bash + + ./../../release/$os_arch/bin/cryptogen generate --config=./crypto-config.yaml + +You will likely see the following warning. It's innocuous, ignore it: + +.. code:: bash + + [bccsp] GetDefault -> WARN 001 Before using BCCSP, please call InitFactories(). Falling back to bootBCCSP. + +Next, we need to tell the ``configtxgen`` tool where to look for the +``configtx.yaml`` file that it needs to ingest. We will tell it look in our +present working directory: + +.. code:: bash + + FABRIC_CFG_PATH=$PWD + +Create the orderer genesis block: + +.. code:: bash + + ./../../release/$os_arch/bin/configtxgen -profile TwoOrgsOrdererGenesis -outputBlock ./channel-artifacts/genesis.block + +You can ignore the logs regarding intermediate certs, we are not using them in +this crypto implementation. + +Create the channel transaction artifact: + +.. code:: bash + + # make sure to set the parm + ./../../release/$os_arch/bin/configtxgen -profile TwoOrgsChannel -outputCreateChannelTx ./channel-artifacts/channel.tx -channelID + +Define the anchor peer for Org1 on the channel: + +.. code:: bash + + # make sure to set the parm + ./../../release/$os_arch/bin/configtxgen -profile TwoOrgsChannel -outputAnchorPeersUpdate ./channel-artifacts/Org1MSPanchors.tx -channelID -asOrg Org1MSP + +Define the anchor peer for Org2 on the channel: + +.. code:: bash + + # make sure to set the parm + ./../../release/$os_arch/bin/configtxgen -profile TwoOrgsChannel -outputAnchorPeersUpdate ./channel-artifacts/Org2MSPanchors.tx -channelID -asOrg Org2MSP + +Run the end-to-end test with Docker +----------------------------------- + +Make sure you are in the ``/e2e_cli`` directory. Then use docker-compose +to spawn the network entities and drive the tests. Notice that you can set a +``TIMEOUT`` variable (specified in seconds) so that your cli container does not +exit after the script completes. You can choose any value: + +.. code:: bash + + # the TIMEOUT variable is optional + CHANNEL_NAME= TIMEOUT= docker-compose -f docker-compose-cli.yaml up -d + +If you created a unique channel name, be sure to pass in that parameter. +For example, + +.. code:: bash + + CHANNEL_NAME=abc TIMEOUT=1000 docker-compose -f docker-compose-cli.yaml up -d + +Wait, 60 seconds or so. Behind the scenes, there are transactions being sent +to the peers. Execute a ``docker ps`` to view your active containers. +You should see an output identical to the following: + +.. code:: bash + + CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES + b568de3fe931 dev-peer1.org2.example.com-mycc-1.0 "chaincode -peer.a..." 4 minutes ago Up 4 minutes dev-peer1.org2.example.com-mycc-1.0 + 17c1c82087e7 dev-peer0.org1.example.com-mycc-1.0 "chaincode -peer.a..." 4 minutes ago Up 4 minutes dev-peer0.org1.example.com-mycc-1.0 + 0e1c5034c47b dev-peer0.org2.example.com-mycc-1.0 "chaincode -peer.a..." 4 minutes ago Up 4 minutes dev-peer0.org2.example.com-mycc-1.0 + 71339e7e1d38 hyperledger/fabric-peer "peer node start -..." 5 minutes ago Up 5 minutes 0.0.0.0:8051->7051/tcp, 0.0.0.0:8053->7053/tcp peer1.org1.example.com + add6113ffdcf hyperledger/fabric-peer "peer node start -..." 5 minutes ago Up 5 minutes 0.0.0.0:10051->7051/tcp, 0.0.0.0:10053->7053/tcp peer1.org2.example.com + 689396c0e520 hyperledger/fabric-peer "peer node start -..." 5 minutes ago Up 5 minutes 0.0.0.0:7051->7051/tcp, 0.0.0.0:7053->7053/tcp peer0.org1.example.com + 65424407a653 hyperledger/fabric-orderer "orderer" 5 minutes ago Up 5 minutes 0.0.0.0:7050->7050/tcp orderer.example.com + ce14853db660 hyperledger/fabric-peer "peer node start -..." 5 minutes ago Up 5 minutes 0.0.0.0:9051->7051/tcp, 0.0.0.0:9053->7053/tcp peer0.org2.example.com + +If you set a moderately high ``TIMEOUT`` value, then you will see your cli +container as well. + +What's happening behind the scenes? +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +- A script - ``script.sh`` - is baked inside the CLI container. The + script drives the ``createChannel`` command against the supplied channel name + and uses the channel.tx file for channel configuration. + +- The output of ``createChannel`` is a genesis block - + ``.block`` - which gets stored on the peers' file systems and contains + the channel configuration specified from channel.tx. + +- The ``joinChannel`` command is exercised for all four peers, which takes as + input the previously generated genesis block. This command instructs the + peers to join ```` and create a chain starting with ``.block``. + +- Now we have a channel consisting of four peers, and two + organizations. This is our ``TwoOrgsChannel`` profile. + +- ``peer0.org1.example.com`` and ``peer1.org1.example.com`` belong to Org1; + ``peer0.org2.example.com`` and ``peer1.org2.example.com`` belong to Org2 + +- These relationships are defined through the ``crypto-config.yaml`` and + the MSP path is specified in our docker compose. + +- The anchor peers for Org1MSP (``peer0.org1.example.com``) and + Org2MSP (``peer0.org2.example.com``) are then updated. We do this by passing + the ``Org1MSPanchors.tx`` and ``Org2MSPanchors.tx`` artifacts to the ordering + service along with the name of our channel. + +- A chaincode - **chaincode_example02** - is installed on ``peer0.org1.example.com`` and + ``peer0.org2.example.com`` + +- The chaincode is then "instantiated" on ``peer0.org2.example.com``. Instantiation + adds the chaincode to the channel, starts the container for the target peer, + and initializes the key value pairs associated with the chaincode. The initial + values for this example are ["a","100" "b","200"]. This "instantiation" results + in a container by the name of ``dev-peer0.org2.example.com-mycc-1.0`` starting. + +- The instantiation also passes in an argument for the endorsement + policy. The policy is defined as + ``-P "OR ('Org1MSP.member','Org2MSP.member')"``, meaning that any + transaction must be endorsed by a peer tied to Org1 or Org2. + +- A query against the value of "a" is issued to ``peer0.org1.example.com``. The + chaincode was previously installed on ``peer0.org1.example.com``, so this will start + a container for Org1 peer0 by the name of ``dev-peer0.org1.example.com-mycc-1.0``. The result + of the query is also returned. No write operations have occurred, so + a query against "a" will still return a value of "100". + +- An invoke is sent to ``peer0.org1.example.com`` to move "10" from "a" to "b" + +- The chaincode is then installed on ``peer1.org2.example.com`` + +- A query is sent to ``peer1.org2.example.com`` for the value of "a". This starts a + third chaincode container by the name of ``dev-peer1.org2.example.com-mycc-1.0``. A + value of 90 is returned, correctly reflecting the previous + transaction during which the value for key "a" was modified by 10. + +What does this demonstrate? +^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Chaincode **MUST** be installed on a peer in order for it to +successfully perform read/write operations against the ledger. +Furthermore, a chaincode container is not started for a peer until an ``init`` or +traditional transaction - read/write - is performed against that chaincode (e.g. query for +the value of "a"). The transaction causes the container to start. Also, +all peers in a channel maintain an exact copy of the ledger which +comprises the blockchain to store the immutable, sequenced record in +blocks, as well as a state database to maintain current fabric state. +This includes those peers that do not have chaincode installed on them +(like ``peer1.org1.example.com`` in the above example) . Finally, the chaincode is accessible +after it is installed (like ``peer1.org2.example.com`` in the above example) because it +has already been instantiated. + +How do I see these transactions? +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Check the logs for the CLI docker container. + +.. code:: bash + + docker logs -f cli + +You should see the following output: + +.. code:: bash + + 2017-05-16 17:08:01.366 UTC [msp] GetLocalMSP -> DEBU 004 Returning existing local MSP + 2017-05-16 17:08:01.366 UTC [msp] GetDefaultSigningIdentity -> DEBU 005 Obtaining default signing identity + 2017-05-16 17:08:01.366 UTC [msp/identity] Sign -> DEBU 006 Sign: plaintext: 0AB1070A6708031A0C08F1E3ECC80510...6D7963631A0A0A0571756572790A0161 + 2017-05-16 17:08:01.367 UTC [msp/identity] Sign -> DEBU 007 Sign: digest: E61DB37F4E8B0D32C9FE10E3936BA9B8CD278FAA1F3320B08712164248285C54 + Query Result: 90 + 2017-05-16 17:08:15.158 UTC [main] main -> INFO 008 Exiting..... + ===================== Query on PEER3 on channel 'mychannel' is successful ===================== + + ===================== All GOOD, End-2-End execution completed ===================== + + + _____ _ _ ____ _____ ____ _____ + | ____| | \ | | | _ \ | ____| |___ \ | ____| + | _| | \| | | | | | _____ | _| __) | | _| + | |___ | |\ | | |_| | |_____| | |___ / __/ | |___ + |_____| |_| \_| |____/ |_____| |_____| |_____| + +How can I see the chaincode logs? +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Inspect the individual chaincode containers to see the separate +transactions executed against each container. Here is the combined +output from each container: + +.. code:: bash + + $ docker logs dev-peer0.org2.example.com-mycc-1.0 + 04:30:45.947 [BCCSP_FACTORY] DEBU : Initialize BCCSP [SW] + ex02 Init + Aval = 100, Bval = 200 + + $ docker logs dev-peer0.org1.example.com-mycc-1.0 + 04:31:10.569 [BCCSP_FACTORY] DEBU : Initialize BCCSP [SW] + ex02 Invoke + Query Response:{"Name":"a","Amount":"100"} + ex02 Invoke + Aval = 90, Bval = 210 + + $ docker logs dev-peer1.org2.example.com-mycc-1.0 + 04:31:30.420 [BCCSP_FACTORY] DEBU : Initialize BCCSP [SW] + ex02 Invoke + Query Response:{"Name":"a","Amount":"90"} + +All in one +^^^^^^^^^^ + +You can also generate the artifacts and crypto, and drive the tests using a single +shell script. The ``cryptogen``, ``configtxgen`` and ``docker-compose`` commands are +embedded in the script. If you choose not to supply a channel ID, then the +script will use a default name of ``mychannel``. The cli timeout parameter +is an optional value; if you choose not to set it, then your cli container +will exit upon conclusion of the script. + +.. code:: bash + + ./network_setup.sh up + +OR + +.. code:: bash + + ./network_setup.sh up + +Understanding the docker-compose topology +----------------------------------------- + +The ``e2e_cli`` folder offers us two flavors of docker-compose files, both of which +are extended from the ``docker-compose-base.yaml``. Our first flavor, +``docker-compose-cli.yaml``, provides us with a CLI container, along with an orderer, +four peers, and the optional couchDB containers. We use this docker-compose for +the entirety of the instructions on this page. + +The second flavor, ``docker-compose-e2e.yaml``, is constructed to run end-to-end tests +using the Node.js SDK. Aside from functioning with the SDK, its primary differentiation +is that there are containers for the fabric-ca servers. As a result, we are able +to send REST calls to the organizational CAs for user registration and enrollment. + +If you want to use the ``docker-compose-e2e.yaml`` without first running the +**All in one** script, then we will need to make four slight modifications. +We need to point to the private keys for our Organization's CA's. You can locate +these values in your crypto-config folder. For example, to locate the private +key for Org1 we would follow this path - ``crypto-config/peerOrganizations/org1.example.com/ca/``. +The private key is a long hash value followed by ``_sk``. The path for Org2 +would be - ``crypto-config/peerOrganizations/org2.example.com/ca/``. + +In the ``docker-compose-e2e.yaml`` update the FABRIC_CA_SERVER_TLS_KEYFILE variable +for ca0 and ca1. You also need to edit the path that is provided in the command +to start the ca server. You are providing the same private key twice for each +CA container. + +Manually exercise the commands +------------------------------ + +Exit the currently-running containers: + +.. code:: bash + + docker rm -f $(docker ps -aq) + +Execute a ``docker images`` command in your terminal to view the +chaincode images. They will look similar to the following: + +.. code:: bash + + REPOSITORY TAG IMAGE ID CREATED SIZE + dev-peer1.org2.example.com-mycc-1.0 latest 4bc5e9b5dd97 5 seconds ago 176 MB + dev-peer0.org1.example.com-mycc-1.0 latest 6f2aeb032076 22 seconds ago 176 MB + dev-peer0.org2.example.com-mycc-1.0 latest 509b8e393cc6 39 seconds ago 176 MB + +Remove these images: + +.. code:: bash + + docker rmi + +For example: + +.. code:: bash + + docker rmi -f 4bc 6f2 509 + +Ensure you have the configuration artifacts. If you deleted them, run +the shell script again: + +.. code:: bash + + # remember to supply a channel ID + ./generateArtifacts.sh + +Modify the docker-compose file +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Open the ``docker-compose-cli.yaml`` file and comment out the command to run +``script.sh``. Navigate down to the cli container and place a ``#`` to the +left of the command. For example: + +.. code:: bash + + working_dir: /opt/gopath/src/github.com/hyperledger/fabric/peer + # command: /bin/bash -c './scripts/script.sh ${CHANNEL_NAME}; sleep $TIMEOUT' + +Save the file and return to the ``/e2e_cli`` directory. + +Now restart your network: + +.. code:: bash + + # make sure you are in the /e2e_cli directory where your docker-compose script resides + CHANNEL_NAME= TIMEOUT= docker-compose -f docker-compose-cli.yaml up -d + +If you want to see the realtime logs for your network, then do not supply the ``-d`` flag. +If you let the logs stream, then you will need to open a second terminal to execute the CLI calls. + +Command syntax +^^^^^^^^^^^^^^ + +Refer to the create and join commands in the ``script.sh`` for the exact syntax. + +For the following CLI commands against `peer0.org1.example.com` to work, we need +to preface our commands with the four environment variables given below. These +variables for ``peer0.org1.example.com`` are baked into the CLI container, +therefore we can operate without passing them. **HOWEVER**, if you want to send +calls to other peers or the orderer, then you will need to provide these +values accordingly. Inspect the ``docker-compose-base.yaml`` for the specific +paths: + +.. code:: bash + + # Environment variables for PEER0 + + CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp + CORE_PEER_ADDRESS=peer0.org1.example.com:7051 + CORE_PEER_LOCALMSPID="Org1MSP" + CORE_PEER_TLS_ROOTCERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt + +Create channel +^^^^^^^^^^^^^^ + +Exec into the cli container: + +.. code:: bash + + docker exec -it cli bash + +If successful you should see the following: + +.. code:: bash + + root@0d78bb69300d:/opt/gopath/src/github.com/hyperledger/fabric/peer# + +Specify your channel name with the ``-c`` flag. Specify your channel +configuration transaction with the ``-f`` flag. In this case it is +``channel.tx``, however you can mount your own configuration transaction +with a different name. + +.. code:: bash + + # the channel.tx file is mounted in the channel-artifacts directory within your cli container + # as a result, we pass the full path for the file + # we also pass the path for the orderer ca-cert in order to verify the TLS handshake + # be sure to replace the $CHANNEL_NAME variable appropriately + + peer channel create -o orderer.example.com:7050 -c $CHANNEL_NAME -f ./channel-artifacts/channel.tx --tls $CORE_PEER_TLS_ENABLED --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/cacerts/ca.example.com-cert.pem + + +.. note:: You will remain in the CLI container for the remainder of + these manual commands. You must also remember to preface all commands + with the corresponding environment variables when targeting a peer other than + ``peer0.org1.example.com``. + +Join channel +^^^^^^^^^^^^ + +Join specific peers to the channel + +.. code:: bash + + # By default, this joins ``peer0.org1.example.com`` only + # the channel.block was returned by the previous command + + peer channel join -b + +You can make other peers join the channel as necessary by making appropriate +changes in the four environment variables. + +Install chaincode onto a remote peer +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Install the sample go code onto one of the four peer nodes + +.. code:: bash + + peer chaincode install -n mycc -v 1.0 -p github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02 + +Instantiate chaincode and define the endorsement policy +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Instantiate the chaincode on a peer. This will launch a chaincode +container for the targeted peer and set the endorsement policy for the +chaincode. In this snippet, we define the policy as requiring an +endorsement from one peer node that is a part of either ``Org1`` or ``Org2``. +The command is: + +.. code:: bash + + # be sure to replace the $CHANNEL_NAME environment variable + # if you did not install your chaincode with a name of mycc, then modify that argument as well + + peer chaincode instantiate -o orderer.example.com:7050 --tls $CORE_PEER_TLS_ENABLED --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/cacerts/ca.example.com-cert.pem -C $CHANNEL_NAME -n mycc -v 1.0 -p github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02 -c '{"Args":["init","a", "100", "b","200"]}' -P "OR ('Org1MSP.member','Org2MSP.member')" + +See the `endorsement +policies `__ +documentation for more details on policy implementation. + +Invoke chaincode +^^^^^^^^^^^^^^^^ + +.. code:: bash + + # be sure to set the -C and -n flags appropriately + peer chaincode invoke -o orderer.example.com:7050 --tls $CORE_PEER_TLS_ENABLED --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/cacerts/ca.example.com-cert.pem -C $CHANNEL_NAME -n mycc -c '{"Args":["invoke","a","b","10"]}' + +Make sure to wait a few seconds for the operation to complete. + +Query chaincode +^^^^^^^^^^^^^^^ + +.. code:: bash + + # be sure to set the -C and -n flags appropriately + peer chaincode query -C $CHANNEL_NAME -n mycc -c '{"Args":["query","a"]}' + +The result of the above command should be the following: + +.. code:: bash + + Query Result: 90 + +Feel free to start over and manipulate the key value pairs and subsequent +invocations. + +Using CouchDB +------------- + +The state database can be switched from the default (goleveldb) to CouchDB. +The same chaincode functions are available with CouchDB, however, there is the +added ability to perform rich and complex queries against the state database +data content contingent upon the chaincode data being modeled as JSON. + +To use CouchDB instead of the default database (goleveldb), follow the same +procedure in the **Manually exercise the commands** section, except when starting +the network pass the couchdb docker-compose as well: + +.. code:: bash + + # make sure you are in the /e2e_cli directory where your docker-compose script resides + CHANNEL_NAME= TIMEOUT= docker-compose -f docker-compose-cli.yaml -f docker-compose-couch.yaml up -d + +**chaincode_example02** should now work using CouchDB underneath. + +.. note:: If you choose to implement mapping of the fabric-couchdb container + port to a host port, please make sure you are aware of the security + implications. Mapping of the port in a development environment makes the + CouchDB REST API available, and allows the + visualization of the database via the CouchDB web interface (Fauxton). + Production environments would likely refrain from implementing port mapping in + order to restrict outside access to the CouchDB containers. + +You can use **chaincode_example02** chaincode against the CouchDB state database +using the steps outlined above, however in order to exercise the CouchDB query +capabilities you will need to use a chaincode that has data modeled as JSON, +(e.g. **marbles02**). You can locate the **marbles02** chaincode in the +``fabric/examples/chaincode/go`` directory. + +We will follow the same process to create and join the channel as outlined in the +**Manually exercise the commands** section above. Once you have joined your +peer(s) to the channel, use the following steps to interact with the **marbles02** +chaincode: + +- Install and instantiate the chaincode on ``peer0.org1.example.com``: + +.. code:: bash + + # be sure to modify the $CHANNEL_NAME variable accordingly for the instantiate command + + peer chaincode install -o orderer.example.com:7050 -n marbles -v 1.0 -p github.com/hyperledger/fabric/examples/chaincode/go/marbles02 + peer chaincode instantiate -o orderer.example.com:7050 --tls $CORE_PEER_TLS_ENABLED --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/cacerts/ca.example.com-cert.pem -C $CHANNEL_NAME -n marbles -v 1.0 -p github.com/hyperledger/fabric/examples/chaincode/go/marbles02 -c '{"Args":["init"]}' -P "OR ('Org0MSP.member','Org1MSP.member')" + +- Create some marbles and move them around: + +.. code:: bash + + # be sure to modify the $CHANNEL_NAME variable accordingly + + peer chaincode invoke -o orderer.example.com:7050 --tls $CORE_PEER_TLS_ENABLED --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/cacerts/ca.example.com-cert.pem -C $CHANNEL_NAME -n marbles -c '{"Args":["initMarble","marble1","blue","35","tom"]}' + peer chaincode invoke -o orderer.example.com:7050 --tls $CORE_PEER_TLS_ENABLED --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/cacerts/ca.example.com-cert.pem -C $CHANNEL_NAME -n marbles -c '{"Args":["initMarble","marble2","red","50","tom"]}' + peer chaincode invoke -o orderer.example.com:7050 --tls $CORE_PEER_TLS_ENABLED --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/cacerts/ca.example.com-cert.pem -C $CHANNEL_NAME -n marbles -c '{"Args":["initMarble","marble3","blue","70","tom"]}' + peer chaincode invoke -o orderer.example.com:7050 --tls $CORE_PEER_TLS_ENABLED --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/cacerts/ca.example.com-cert.pem -C $CHANNEL_NAME -n marbles -c '{"Args":["transferMarble","marble2","jerry"]}' + peer chaincode invoke -o orderer.example.com:7050 --tls $CORE_PEER_TLS_ENABLED --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/cacerts/ca.example.com-cert.pem -C $CHANNEL_NAME -n marbles -c '{"Args":["transferMarblesBasedOnColor","blue","jerry"]}' + peer chaincode invoke -o orderer.example.com:7050 --tls $CORE_PEER_TLS_ENABLED --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/cacerts/ca.example.com-cert.pem -C $CHANNEL_NAME -n marbles -c '{"Args":["delete","marble1"]}' + + +- If you chose to map the CouchDB ports in docker-compose, you can now view + the state database through the CouchDB web interface (Fauxton) by opening + a browser and navigating to the following URL: + + ``http://localhost:5984/_utils`` + +You should see a database named ``mychannel`` (or your unique channel name) and +the documents inside it. + +.. note:: For the below commands, be sure to update the $CHANNEL_NAME variable appropriately. + +You can run regular queries from the CLI (e.g. reading ``marble2``): + +.. code:: bash + + peer chaincode query -C $CHANNEL_NAME -n marbles -c '{"Args":["readMarble","marble2"]}' + +The output should display the details of ``marble2``: + +.. code:: bash + + Query Result: {"color":"red","docType":"marble","name":"marble2","owner":"jerry","size":50} + +You can retrieve the history of a specific marble - e.g. ``marble1``: + +.. code:: bash + + peer chaincode query -C $CHANNEL_NAME -n marbles -c '{"Args":["getHistoryForMarble","marble1"]}' + +The output should display the transactions on ``marble1``: + +.. code:: bash + + Query Result: [{"TxId":"1c3d3caf124c89f91a4c0f353723ac736c58155325f02890adebaa15e16e6464", "Value":{"docType":"marble","name":"marble1","color":"blue","size":35,"owner":"tom"}},{"TxId":"755d55c281889eaeebf405586f9e25d71d36eb3d35420af833a20a2f53a3eefd", "Value":{"docType":"marble","name":"marble1","color":"blue","size":35,"owner":"jerry"}},{"TxId":"819451032d813dde6247f85e56a89262555e04f14788ee33e28b232eef36d98f", "Value":}] + +You can also perform rich queries on the data content, such as querying marble fields by owner ``jerry``: + +.. code:: bash + + peer chaincode query -C $CHANNEL_NAME -n marbles -c '{"Args":["queryMarblesByOwner","jerry"]}' + +The output should display the two marbles owned by ``jerry``: + +.. code:: bash + + Query Result: [{"Key":"marble2", "Record":{"color":"red","docType":"marble","name":"marble2","owner":"jerry","size":50}},{"Key":"marble3", "Record":{"color":"blue","docType":"marble","name":"marble3","owner":"jerry","size":70}}] + +A Note on Data Persistence +-------------------------- + +If data persistence is desired on the peer container or the CouchDB container, +one option is to mount a directory in the docker-host into a relevant directory +in the container. For example, you may add the following two lines in +the peer container specification in the ``docker-compose-base.yaml`` file: + +.. code:: bash + + volumes: + - /var/hyperledger/peer0:/var/hyperledger/production + + +For the CouchDB container, you may add the following two lines in the CouchDB +container specification: + +.. code:: bash + + volumes: + - /var/hyperledger/couchdb0:/opt/couchdb/data + +Troubleshooting +--------------- + +- It's recommended to start your network fresh. Use the following command + to remove artifacts, crypto, containers and chaincode images: + +.. code:: bash + + ./network_setup.sh down + +- If you see docker errors, first check your version (should be 1.12 or above), + and then try restarting your docker process. Problems with Docker are + oftentimes not immediately recognizable. For example, you may see errors + resulting from an inability to access crypto material mounted within a + container. + +- If they persist remove your images and start from scratch: + +.. code:: bash + + make clean + make docker + +- If you see the below error: + +.. code:: bash + + Error: Error endorsing chaincode: rpc error: code = 2 desc = Error installing chaincode code mycc:1.0(chaincode /var/hyperledger/production/chaincodes/mycc.1.0 exits) + +You likely have chaincode images (e.g. ``dev-peer1.org2.example.com-mycc-1.0`` or +``dev-peer0.org1.example.com-mycc-1.0``) from prior runs. Remove them and try +again. + +.. code:: bash + + docker rmi -f $(docker images | grep peer[0-9]-peer[0-9] | awk '{print $3}') + +- If you see something similar to the following: + +.. code:: bash + + Error connecting: rpc error: code = 14 desc = grpc: RPC failed fast due to transport failure + Error: rpc error: code = 14 desc = grpc: RPC failed fast due to transport failure + +Make sure you pointed to the correct binaries in the release folder when +generating the artifacts, and that your backend is running against "beta" images +or compiled images from the current master branch. + +If you see the below error: + +.. code:: bash + + [configtx/tool/localconfig] Load -> CRIT 002 Error reading configuration: Unsupported Config Type "" + panic: Error reading configuration: Unsupported Config Type "" + +Then you did not set the ``FABRIC_CFG_PATH`` environment variable properly. The +configtxgen tool needs this variable in order to locate the configtx.yaml. Go +back and recreate your channel artifacts. + +- To cleanup the network, use the ``down`` option: + +.. code:: bash + + ./network_setup.sh down + +- If you continue to see errors, share your logs on the **# fabric-questions** + channel on `Hyperledger Rocket Chat `__. + +.. Licensed under Creative Commons Attribution 4.0 International License + https://creativecommons.org/licenses/by/4.0/ diff --git a/hyperledger/1.0.1/e2e_cli/examples/chaincode/go/chaincode_example02/chaincode_example02.go b/hyperledger/1.0.1/e2e_cli/examples/chaincode/go/chaincode_example02/chaincode_example02.go new file mode 100644 index 00000000..53438066 --- /dev/null +++ b/hyperledger/1.0.1/e2e_cli/examples/chaincode/go/chaincode_example02/chaincode_example02.go @@ -0,0 +1,199 @@ +/* +Copyright IBM Corp. 2016 All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package main + +//WARNING - this chaincode's ID is hard-coded in chaincode_example04 to illustrate one way of +//calling chaincode from a chaincode. If this example is modified, chaincode_example04.go has +//to be modified as well with the new ID of chaincode_example02. +//chaincode_example05 show's how chaincode ID can be passed in as a parameter instead of +//hard-coding. + +import ( + "fmt" + "strconv" + + "github.com/hyperledger/fabric/core/chaincode/shim" + pb "github.com/hyperledger/fabric/protos/peer" +) + +// SimpleChaincode example simple Chaincode implementation +type SimpleChaincode struct { +} + +func (t *SimpleChaincode) Init(stub shim.ChaincodeStubInterface) pb.Response { + fmt.Println("ex02 Init") + _, args := stub.GetFunctionAndParameters() + var A, B string // Entities + var Aval, Bval int // Asset holdings + var err error + + if len(args) != 4 { + return shim.Error("Incorrect number of arguments. Expecting 4") + } + + // Initialize the chaincode + A = args[0] + Aval, err = strconv.Atoi(args[1]) + if err != nil { + return shim.Error("Expecting integer value for asset holding") + } + B = args[2] + Bval, err = strconv.Atoi(args[3]) + if err != nil { + return shim.Error("Expecting integer value for asset holding") + } + fmt.Printf("Aval = %d, Bval = %d\n", Aval, Bval) + + // Write the state to the ledger + err = stub.PutState(A, []byte(strconv.Itoa(Aval))) + if err != nil { + return shim.Error(err.Error()) + } + + err = stub.PutState(B, []byte(strconv.Itoa(Bval))) + if err != nil { + return shim.Error(err.Error()) + } + + return shim.Success(nil) +} + +func (t *SimpleChaincode) Invoke(stub shim.ChaincodeStubInterface) pb.Response { + fmt.Println("ex02 Invoke") + function, args := stub.GetFunctionAndParameters() + if function == "invoke" { + // Make payment of X units from A to B + return t.invoke(stub, args) + } else if function == "delete" { + // Deletes an entity from its state + return t.delete(stub, args) + } else if function == "query" { + // the old "Query" is now implemtned in invoke + return t.query(stub, args) + } + + return shim.Error("Invalid invoke function name. Expecting \"invoke\" \"delete\" \"query\"") +} + +// Transaction makes payment of X units from A to B +func (t *SimpleChaincode) invoke(stub shim.ChaincodeStubInterface, args []string) pb.Response { + var A, B string // Entities + var Aval, Bval int // Asset holdings + var X int // Transaction value + var err error + + if len(args) != 3 { + return shim.Error("Incorrect number of arguments. Expecting 3") + } + + A = args[0] + B = args[1] + + // Get the state from the ledger + // TODO: will be nice to have a GetAllState call to ledger + Avalbytes, err := stub.GetState(A) + if err != nil { + return shim.Error("Failed to get state") + } + if Avalbytes == nil { + return shim.Error("Entity not found") + } + Aval, _ = strconv.Atoi(string(Avalbytes)) + + Bvalbytes, err := stub.GetState(B) + if err != nil { + return shim.Error("Failed to get state") + } + if Bvalbytes == nil { + return shim.Error("Entity not found") + } + Bval, _ = strconv.Atoi(string(Bvalbytes)) + + // Perform the execution + X, err = strconv.Atoi(args[2]) + if err != nil { + return shim.Error("Invalid transaction amount, expecting a integer value") + } + Aval = Aval - X + Bval = Bval + X + fmt.Printf("Aval = %d, Bval = %d\n", Aval, Bval) + + // Write the state back to the ledger + err = stub.PutState(A, []byte(strconv.Itoa(Aval))) + if err != nil { + return shim.Error(err.Error()) + } + + err = stub.PutState(B, []byte(strconv.Itoa(Bval))) + if err != nil { + return shim.Error(err.Error()) + } + + return shim.Success(nil) +} + +// Deletes an entity from state +func (t *SimpleChaincode) delete(stub shim.ChaincodeStubInterface, args []string) pb.Response { + if len(args) != 1 { + return shim.Error("Incorrect number of arguments. Expecting 1") + } + + A := args[0] + + // Delete the key from the state in ledger + err := stub.DelState(A) + if err != nil { + return shim.Error("Failed to delete state") + } + + return shim.Success(nil) +} + +// query callback representing the query of a chaincode +func (t *SimpleChaincode) query(stub shim.ChaincodeStubInterface, args []string) pb.Response { + var A string // Entities + var err error + + if len(args) != 1 { + return shim.Error("Incorrect number of arguments. Expecting name of the person to query") + } + + A = args[0] + + // Get the state from the ledger + Avalbytes, err := stub.GetState(A) + if err != nil { + jsonResp := "{\"Error\":\"Failed to get state for " + A + "\"}" + return shim.Error(jsonResp) + } + + if Avalbytes == nil { + jsonResp := "{\"Error\":\"Nil amount for " + A + "\"}" + return shim.Error(jsonResp) + } + + jsonResp := "{\"Name\":\"" + A + "\",\"Amount\":\"" + string(Avalbytes) + "\"}" + fmt.Printf("Query Response:%s\n", jsonResp) + return shim.Success(Avalbytes) +} + +func main() { + err := shim.Start(new(SimpleChaincode)) + if err != nil { + fmt.Printf("Error starting Simple chaincode: %s", err) + } +} diff --git a/hyperledger/1.0.1/e2e_cli/generateArtifacts.sh b/hyperledger/1.0.1/e2e_cli/generateArtifacts.sh new file mode 100644 index 00000000..c78bff00 --- /dev/null +++ b/hyperledger/1.0.1/e2e_cli/generateArtifacts.sh @@ -0,0 +1,103 @@ +#!/bin/bash +x +# +# Copyright IBM Corp. All Rights Reserved. +# +# SPDX-License-Identifier: Apache-2.0 +# + + +#set -e + +CHANNEL_NAME=$1 +: ${CHANNEL_NAME:="mychannel"} +echo $CHANNEL_NAME + +export FABRIC_ROOT=$PWD/../.. +export FABRIC_CFG_PATH=$PWD +echo + +OS_ARCH=$(echo "$(uname -s|tr '[:upper:]' '[:lower:]'|sed 's/mingw64_nt.*/windows/')-$(uname -m | sed 's/x86_64/amd64/g')" | awk '{print tolower($0)}') + +## Using docker-compose template replace private key file names with constants +function replacePrivateKey () { + ARCH=`uname -s | grep Darwin` + if [ "$ARCH" == "Darwin" ]; then + OPTS="-it" + else + OPTS="-i" + fi + + cp docker-compose-e2e-template.yaml docker-compose-e2e.yaml + + CURRENT_DIR=$PWD + cd crypto-config/peerOrganizations/org1.example.com/ca/ + PRIV_KEY=$(ls *_sk) + cd $CURRENT_DIR + sed $OPTS "s/CA1_PRIVATE_KEY/${PRIV_KEY}/g" docker-compose-e2e.yaml + cd crypto-config/peerOrganizations/org2.example.com/ca/ + PRIV_KEY=$(ls *_sk) + cd $CURRENT_DIR + sed $OPTS "s/CA2_PRIVATE_KEY/${PRIV_KEY}/g" docker-compose-e2e.yaml +} + +## Generates Org certs using cryptogen tool +function generateCerts (){ + CRYPTOGEN=$FABRIC_ROOT/release/$OS_ARCH/bin/cryptogen + + if [ -f "$CRYPTOGEN" ]; then + echo "Using cryptogen -> $CRYPTOGEN" + else + echo "Building cryptogen" + make -C $FABRIC_ROOT release + fi + + echo + echo "##########################################################" + echo "##### Generate certificates using cryptogen tool #########" + echo "##########################################################" + $CRYPTOGEN generate --config=./crypto-config.yaml + echo +} + +## Generate orderer genesis block , channel configuration transaction and anchor peer update transactions +function generateChannelArtifacts() { + + CONFIGTXGEN=$FABRIC_ROOT/release/$OS_ARCH/bin/configtxgen + if [ -f "$CONFIGTXGEN" ]; then + echo "Using configtxgen -> $CONFIGTXGEN" + else + echo "Building configtxgen" + make -C $FABRIC_ROOT release + fi + + echo "##########################################################" + echo "######### Generating Orderer Genesis block ##############" + echo "##########################################################" + # Note: For some unknown reason (at least for now) the block file can't be + # named orderer.genesis.block or the orderer will fail to launch! + $CONFIGTXGEN -profile TwoOrgsOrdererGenesis -outputBlock ./channel-artifacts/genesis.block + + echo + echo "#################################################################" + echo "### Generating channel configuration transaction 'channel.tx' ###" + echo "#################################################################" + $CONFIGTXGEN -profile TwoOrgsChannel -outputCreateChannelTx ./channel-artifacts/channel.tx -channelID $CHANNEL_NAME + + echo + echo "#################################################################" + echo "####### Generating anchor peer update for Org1MSP ##########" + echo "#################################################################" + $CONFIGTXGEN -profile TwoOrgsChannel -outputAnchorPeersUpdate ./channel-artifacts/Org1MSPanchors.tx -channelID $CHANNEL_NAME -asOrg Org1MSP + + echo + echo "#################################################################" + echo "####### Generating anchor peer update for Org2MSP ##########" + echo "#################################################################" + $CONFIGTXGEN -profile TwoOrgsChannel -outputAnchorPeersUpdate ./channel-artifacts/Org2MSPanchors.tx -channelID $CHANNEL_NAME -asOrg Org2MSP + echo +} + +generateCerts +replacePrivateKey +generateChannelArtifacts + diff --git a/hyperledger/1.0.1/e2e_cli/network_setup.sh b/hyperledger/1.0.1/e2e_cli/network_setup.sh new file mode 100644 index 00000000..85fbd924 --- /dev/null +++ b/hyperledger/1.0.1/e2e_cli/network_setup.sh @@ -0,0 +1,101 @@ +#!/bin/bash +# +# Copyright IBM Corp. All Rights Reserved. +# +# SPDX-License-Identifier: Apache-2.0 +# + + +UP_DOWN="$1" +CH_NAME="$2" +CLI_TIMEOUT="$3" +IF_COUCHDB="$4" + +: ${CLI_TIMEOUT:="10000"} + +COMPOSE_FILE=docker-compose-cli.yaml +COMPOSE_FILE_COUCH=docker-compose-couch.yaml +#COMPOSE_FILE=docker-compose-e2e.yaml + +function printHelp () { + echo "Usage: ./network_setup <\$channel-name> <\$cli_timeout> .\nThe arguments must be in order." +} + +function validateArgs () { + if [ -z "${UP_DOWN}" ]; then + echo "Option up / down / restart not mentioned" + printHelp + exit 1 + fi + if [ -z "${CH_NAME}" ]; then + echo "setting to default channel 'mychannel'" + CH_NAME=mychannel + fi +} + +function clearContainers () { + CONTAINER_IDS=$(docker ps -aq) + if [ -z "$CONTAINER_IDS" -o "$CONTAINER_IDS" = " " ]; then + echo "---- No containers available for deletion ----" + else + docker rm -f $CONTAINER_IDS + fi +} + +function removeUnwantedImages() { + DOCKER_IMAGE_IDS=$(docker images | grep "dev\|none\|test-vp\|peer[0-9]-" | awk '{print $3}') + if [ -z "$DOCKER_IMAGE_IDS" -o "$DOCKER_IMAGE_IDS" = " " ]; then + echo "---- No images available for deletion ----" + else + docker rmi -f $DOCKER_IMAGE_IDS + fi +} + +function networkUp () { + if [ -f "./crypto-config" ]; then + echo "crypto-config directory already exists." + else + #Generate all the artifacts that includes org certs, orderer genesis block, + # channel configuration transaction + source generateArtifacts.sh $CH_NAME + fi + + if [ "${IF_COUCHDB}" == "couchdb" ]; then + CHANNEL_NAME=$CH_NAME TIMEOUT=$CLI_TIMEOUT docker-compose -f $COMPOSE_FILE -f $COMPOSE_FILE_COUCH up -d 2>&1 + else + CHANNEL_NAME=$CH_NAME TIMEOUT=$CLI_TIMEOUT docker-compose -f $COMPOSE_FILE up -d 2>&1 + fi + if [ $? -ne 0 ]; then + echo "ERROR !!!! Unable to pull the images " + exit 1 + fi + docker logs -f cli +} + +function networkDown () { + docker-compose -f $COMPOSE_FILE down + + #Cleanup the chaincode containers + clearContainers + + #Cleanup images + removeUnwantedImages + + # remove orderer block and other channel configuration transactions and certs + rm -rf channel-artifacts/*.block channel-artifacts/*.tx crypto-config +} + +validateArgs + +#Create the network using docker compose +if [ "${UP_DOWN}" == "up" ]; then + networkUp +elif [ "${UP_DOWN}" == "down" ]; then ## Clear the network + networkDown +elif [ "${UP_DOWN}" == "restart" ]; then ## Restart the network + networkDown + networkUp +else + printHelp + exit 1 +fi diff --git a/hyperledger/1.0.1/e2e_cli/scripts/script.sh b/hyperledger/1.0.1/e2e_cli/scripts/script.sh new file mode 100644 index 00000000..46d92067 --- /dev/null +++ b/hyperledger/1.0.1/e2e_cli/scripts/script.sh @@ -0,0 +1,273 @@ +#!/bin/bash +# Copyright London Stock Exchange Group All Rights Reserved. +# +# SPDX-License-Identifier: Apache-2.0 +# +echo +echo " ____ _____ _ ____ _____ _____ ____ _____ " +echo "/ ___| |_ _| / \ | _ \ |_ _| | ____| |___ \ | ____|" +echo "\___ \ | | / _ \ | |_) | | | _____ | _| __) | | _| " +echo " ___) | | | / ___ \ | _ < | | |_____| | |___ / __/ | |___ " +echo "|____/ |_| /_/ \_\ |_| \_\ |_| |_____| |_____| |_____|" +echo + +CHANNEL_NAME="$1" +: ${CHANNEL_NAME:="mychannel"} +: ${TIMEOUT:="60"} +COUNTER=1 +MAX_RETRY=5 +ORDERER_CA=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem + +echo "Channel name : "$CHANNEL_NAME + +verifyResult () { + if [ $1 -ne 0 ] ; then + echo "!!!!!!!!!!!!!!! "$2" !!!!!!!!!!!!!!!!" + echo "================== ERROR !!! FAILED to execute End-2-End Scenario ==================" + echo + exit 1 + fi +} + +setGlobals () { + + if [ $1 -eq 0 -o $1 -eq 1 ] ; then + CORE_PEER_LOCALMSPID="Org1MSP" + CORE_PEER_TLS_ROOTCERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt + CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp + if [ $1 -eq 0 ]; then + CORE_PEER_ADDRESS=peer0.org1.example.com:7051 + else + CORE_PEER_ADDRESS=peer1.org1.example.com:7051 + fi + else + CORE_PEER_LOCALMSPID="Org2MSP" + CORE_PEER_TLS_ROOTCERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt + CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp + if [ $1 -eq 2 ]; then + CORE_PEER_ADDRESS=peer0.org2.example.com:7051 + else + CORE_PEER_ADDRESS=peer1.org2.example.com:7051 + fi + fi + + env |grep CORE +} + +checkOSNAvailability() { + #Use orderer's MSP for fetching system channel config block + CORE_PEER_LOCALMSPID="OrdererMSP" + CORE_PEER_TLS_ROOTCERT_FILE=$ORDERER_CA + CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp + + local rc=1 + local starttime=$(date +%s) + + # continue to poll + # we either get a successful response, or reach TIMEOUT + while test "$(($(date +%s)-starttime))" -lt "$TIMEOUT" -a $rc -ne 0 + do + sleep 3 + echo "Attempting to fetch system channel 'testchainid' ...$(($(date +%s)-starttime)) secs" + if [ -z "$CORE_PEER_TLS_ENABLED" -o "$CORE_PEER_TLS_ENABLED" = "false" ]; then + peer channel fetch 0 -o orderer.example.com:7050 -c "testchainid" >&log.txt + else + peer channel fetch 0 -o orderer.example.com:7050 -c "testchainid" --tls $CORE_PEER_TLS_ENABLED --cafile $ORDERER_CA >&log.txt + fi + test $? -eq 0 && VALUE=$(cat log.txt | awk '/Received block/ {print $NF}') + test "$VALUE" = "0" && let rc=0 + done + cat log.txt + verifyResult $rc "Ordering Service is not available, Please try again ..." + echo "===================== Ordering Service is up and running ===================== " + echo +} + +createChannel() { + setGlobals 0 + if [ -z "$CORE_PEER_TLS_ENABLED" -o "$CORE_PEER_TLS_ENABLED" = "false" ]; then + peer channel create -o orderer.example.com:7050 -c $CHANNEL_NAME -f ./channel-artifacts/channel.tx >&log.txt + else + peer channel create -o orderer.example.com:7050 -c $CHANNEL_NAME -f ./channel-artifacts/channel.tx --tls $CORE_PEER_TLS_ENABLED --cafile $ORDERER_CA >&log.txt + fi + res=$? + cat log.txt + verifyResult $res "Channel creation failed" + echo "===================== Channel \"$CHANNEL_NAME\" is created successfully ===================== " + echo +} + +updateAnchorPeers() { + PEER=$1 + setGlobals $PEER + + if [ -z "$CORE_PEER_TLS_ENABLED" -o "$CORE_PEER_TLS_ENABLED" = "false" ]; then + peer channel update -o orderer.example.com:7050 -c $CHANNEL_NAME -f ./channel-artifacts/${CORE_PEER_LOCALMSPID}anchors.tx >&log.txt + else + peer channel update -o orderer.example.com:7050 -c $CHANNEL_NAME -f ./channel-artifacts/${CORE_PEER_LOCALMSPID}anchors.tx --tls $CORE_PEER_TLS_ENABLED --cafile $ORDERER_CA >&log.txt + fi + res=$? + cat log.txt + verifyResult $res "Anchor peer update failed" + echo "===================== Anchor peers for org \"$CORE_PEER_LOCALMSPID\" on \"$CHANNEL_NAME\" is updated successfully ===================== " + sleep 5 + echo +} + +## Sometimes Join takes time hence RETRY atleast for 5 times +joinWithRetry () { + peer channel join -b $CHANNEL_NAME.block >&log.txt + res=$? + cat log.txt + if [ $res -ne 0 -a $COUNTER -lt $MAX_RETRY ]; then + COUNTER=` expr $COUNTER + 1` + echo "PEER$1 failed to join the channel, Retry after 2 seconds" + sleep 2 + joinWithRetry $1 + else + COUNTER=1 + fi + verifyResult $res "After $MAX_RETRY attempts, PEER$ch has failed to Join the Channel" +} + +joinChannel () { + for ch in 0 1 2 3; do + setGlobals $ch + joinWithRetry $ch + echo "===================== PEER$ch joined on the channel \"$CHANNEL_NAME\" ===================== " + sleep 2 + echo + done +} + +installChaincode () { + PEER=$1 + setGlobals $PEER + peer chaincode install -n mycc -v 1.0 -p github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02 >&log.txt + res=$? + cat log.txt + verifyResult $res "Chaincode installation on remote peer PEER$PEER has Failed" + echo "===================== Chaincode is installed on remote peer PEER$PEER ===================== " + echo +} + +instantiateChaincode () { + PEER=$1 + setGlobals $PEER + # while 'peer chaincode' command can get the orderer endpoint from the peer (if join was successful), + # lets supply it directly as we know it using the "-o" option + if [ -z "$CORE_PEER_TLS_ENABLED" -o "$CORE_PEER_TLS_ENABLED" = "false" ]; then + peer chaincode instantiate -o orderer.example.com:7050 -C $CHANNEL_NAME -n mycc -v 1.0 -c '{"Args":["init","a","100","b","200"]}' -P "OR ('Org1MSP.member','Org2MSP.member')" >&log.txt + else + peer chaincode instantiate -o orderer.example.com:7050 --tls $CORE_PEER_TLS_ENABLED --cafile $ORDERER_CA -C $CHANNEL_NAME -n mycc -v 1.0 -c '{"Args":["init","a","100","b","200"]}' -P "OR ('Org1MSP.member','Org2MSP.member')" >&log.txt + fi + res=$? + cat log.txt + verifyResult $res "Chaincode instantiation on PEER$PEER on channel '$CHANNEL_NAME' failed" + echo "===================== Chaincode Instantiation on PEER$PEER on channel '$CHANNEL_NAME' is successful ===================== " + echo +} + +chaincodeQuery () { + PEER=$1 + echo "===================== Querying on PEER$PEER on channel '$CHANNEL_NAME'... ===================== " + setGlobals $PEER + local rc=1 + local starttime=$(date +%s) + + # continue to poll + # we either get a successful response, or reach TIMEOUT + while test "$(($(date +%s)-starttime))" -lt "$TIMEOUT" -a $rc -ne 0 + do + sleep 3 + echo "Attempting to Query PEER$PEER ...$(($(date +%s)-starttime)) secs" + peer chaincode query -C $CHANNEL_NAME -n mycc -c '{"Args":["query","a"]}' >&log.txt + test $? -eq 0 && VALUE=$(cat log.txt | awk '/Query Result/ {print $NF}') + test "$VALUE" = "$2" && let rc=0 + done + echo + cat log.txt + if test $rc -eq 0 ; then + echo "===================== Query on PEER$PEER on channel '$CHANNEL_NAME' is successful ===================== " + else + echo "!!!!!!!!!!!!!!! Query result on PEER$PEER is INVALID !!!!!!!!!!!!!!!!" + echo "================== ERROR !!! FAILED to execute End-2-End Scenario ==================" + echo + exit 1 + fi +} + +chaincodeInvoke () { + PEER=$1 + setGlobals $PEER + # while 'peer chaincode' command can get the orderer endpoint from the peer (if join was successful), + # lets supply it directly as we know it using the "-o" option + if [ -z "$CORE_PEER_TLS_ENABLED" -o "$CORE_PEER_TLS_ENABLED" = "false" ]; then + peer chaincode invoke -o orderer.example.com:7050 -C $CHANNEL_NAME -n mycc -c '{"Args":["invoke","a","b","10"]}' >&log.txt + else + peer chaincode invoke -o orderer.example.com:7050 --tls $CORE_PEER_TLS_ENABLED --cafile $ORDERER_CA -C $CHANNEL_NAME -n mycc -c '{"Args":["invoke","a","b","10"]}' >&log.txt + fi + res=$? + cat log.txt + verifyResult $res "Invoke execution on PEER$PEER failed " + echo "===================== Invoke transaction on PEER$PEER on channel '$CHANNEL_NAME' is successful ===================== " + echo +} + +## Check for orderering service availablility +echo "Check orderering service availability..." +checkOSNAvailability + +## Create channel +echo "Creating channel..." +createChannel + +## Join all the peers to the channel +echo "Having all peers join the channel..." +joinChannel + +## Set the anchor peers for each org in the channel +echo "Updating anchor peers for org1..." +updateAnchorPeers 0 +echo "Updating anchor peers for org2..." +updateAnchorPeers 2 + +## Install chaincode on Peer0/Org1 and Peer2/Org2 +echo "Installing chaincode on org1/peer0..." +installChaincode 0 +echo "Install chaincode on org2/peer2..." +installChaincode 2 + +#Instantiate chaincode on Peer2/Org2 +echo "Instantiating chaincode on org2/peer2..." +instantiateChaincode 2 + +#Query on chaincode on Peer0/Org1 +echo "Querying chaincode on org1/peer0..." +chaincodeQuery 0 100 + +#Invoke on chaincode on Peer0/Org1 +echo "Sending invoke transaction on org1/peer0..." +chaincodeInvoke 0 + +## Install chaincode on Peer3/Org2 +echo "Installing chaincode on org2/peer3..." +installChaincode 3 + +#Query on chaincode on Peer3/Org2, check if the result is 90 +echo "Querying chaincode on org2/peer3..." +chaincodeQuery 3 90 + +echo +echo "===================== All GOOD, End-2-End execution completed ===================== " +echo + +echo +echo " _____ _ _ ____ _____ ____ _____ " +echo "| ____| | \ | | | _ \ | ____| |___ \ | ____|" +echo "| _| | \| | | | | | _____ | _| __) | | _| " +echo "| |___ | |\ | | |_| | |_____| | |___ / __/ | |___ " +echo "|_____| |_| \_| |____/ |_____| |_____| |_____|" +echo + +exit 0 diff --git a/hyperledger/1.0.1/kafka/README.md b/hyperledger/1.0.1/kafka/README.md new file mode 100644 index 00000000..3509ba7d --- /dev/null +++ b/hyperledger/1.0.1/kafka/README.md @@ -0,0 +1,24 @@ +[WIP] + +## Start a network base on kafka + +```bash +$ cd ~/docker-compose-files/tree/master/hyperledger/1.0/kafka +$ docker-compose -f orderer-kafka.yaml up (-d) +``` +When the fabric-network fully started, it takes about 15-20s. + +## Test chaincode + +```bash +$ docker exec -it fabric-cli bash +$ bash ./scripts/initialize.sh # initialize the fabric network +$ bash ./scripts/test_4peers.sh +``` + +>(Optional) If you want to use official images, you can run the following command first +> +> ```bash +> $ cd ~/docker-compose-files/tree/master/hyperledger/1.0 +> $ bash ./scripts/download_official_images.sh +> ``` diff --git a/hyperledger/1.0.1/kafka/channel-artifacts/.gitkeep b/hyperledger/1.0.1/kafka/channel-artifacts/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/hyperledger/1.0.1/kafka/channel-artifacts/Org1MSPanchors.tx b/hyperledger/1.0.1/kafka/channel-artifacts/Org1MSPanchors.tx new file mode 100644 index 00000000..21c6e973 Binary files /dev/null and b/hyperledger/1.0.1/kafka/channel-artifacts/Org1MSPanchors.tx differ diff --git a/hyperledger/1.0.1/kafka/channel-artifacts/Org2MSPanchors.tx b/hyperledger/1.0.1/kafka/channel-artifacts/Org2MSPanchors.tx new file mode 100644 index 00000000..337b1adb Binary files /dev/null and b/hyperledger/1.0.1/kafka/channel-artifacts/Org2MSPanchors.tx differ diff --git a/hyperledger/1.0.1/kafka/channel-artifacts/channel.tx b/hyperledger/1.0.1/kafka/channel-artifacts/channel.tx new file mode 100644 index 00000000..d9929960 Binary files /dev/null and b/hyperledger/1.0.1/kafka/channel-artifacts/channel.tx differ diff --git a/hyperledger/1.0.1/kafka/channel-artifacts/orderer.genesis.block b/hyperledger/1.0.1/kafka/channel-artifacts/orderer.genesis.block new file mode 100644 index 00000000..0d8c7621 Binary files /dev/null and b/hyperledger/1.0.1/kafka/channel-artifacts/orderer.genesis.block differ diff --git a/hyperledger/1.0.1/kafka/configtx.yaml b/hyperledger/1.0.1/kafka/configtx.yaml new file mode 100644 index 00000000..0465ce99 --- /dev/null +++ b/hyperledger/1.0.1/kafka/configtx.yaml @@ -0,0 +1,152 @@ +# Copyright IBM Corp. All Rights Reserved. +# +# SPDX-License-Identifier: Apache-2.0 +# + +--- +################################################################################ +# +# Profile +# +# - Different configuration profiles may be encoded here to be specified +# as parameters to the configtxgen tool +# +################################################################################ +Profiles: + + TwoOrgsOrdererGenesis: + Orderer: + <<: *OrdererDefaults + Organizations: + - *OrdererOrg + Consortiums: + SampleConsortium: + Organizations: + - *Org1 + - *Org2 + TwoOrgsChannel: + Consortium: SampleConsortium + Application: + <<: *ApplicationDefaults + Organizations: + - *Org1 + - *Org2 + +################################################################################ +# +# Section: Organizations +# +# - This section defines the different organizational identities which will +# be referenced later in the configuration. +# +################################################################################ +Organizations: + + # SampleOrg defines an MSP using the sampleconfig. It should never be used + # in production but may be used as a template for other definitions + - &OrdererOrg + # DefaultOrg defines the organization which is used in the sampleconfig + # of the fabric.git development environment + Name: OrdererOrg + + # ID to load the MSP definition as + ID: OrdererMSP + + # MSPDir is the filesystem path which contains the MSP configuration + MSPDir: crypto-config/ordererOrganizations/example.com/msp + + - &Org1 + # DefaultOrg defines the organization which is used in the sampleconfig + # of the fabric.git development environment + Name: Org1MSP + + # ID to load the MSP definition as + ID: Org1MSP + + MSPDir: crypto-config/peerOrganizations/org1.example.com/msp + + AnchorPeers: + # AnchorPeers defines the location of peers which can be used + # for cross org gossip communication. Note, this value is only + # encoded in the genesis block in the Application section context + - Host: peer0.org1.example.com + Port: 7051 + + - &Org2 + # DefaultOrg defines the organization which is used in the sampleconfig + # of the fabric.git development environment + Name: Org2MSP + + # ID to load the MSP definition as + ID: Org2MSP + + MSPDir: crypto-config/peerOrganizations/org2.example.com/msp + + AnchorPeers: + # AnchorPeers defines the location of peers which can be used + # for cross org gossip communication. Note, this value is only + # encoded in the genesis block in the Application section context + - Host: peer0.org2.example.com + Port: 7051 + +################################################################################ +# +# SECTION: Orderer +# +# - This section defines the values to encode into a config transaction or +# genesis block for orderer related parameters +# +################################################################################ +Orderer: &OrdererDefaults + + # Orderer Type: The orderer implementation to start + # Available types are "solo" and "kafka" + OrdererType: kafka + + Addresses: + - orderer.example.com:7050 + + # Batch Timeout: The amount of time to wait before creating a batch + BatchTimeout: 2s + + # Batch Size: Controls the number of messages batched into a block + BatchSize: + + # Max Message Count: The maximum number of messages to permit in a batch + MaxMessageCount: 10 + + # Absolute Max Bytes: The absolute maximum number of bytes allowed for + # the serialized messages in a batch. + AbsoluteMaxBytes: 98 MB + + # Preferred Max Bytes: The preferred maximum number of bytes allowed for + # the serialized messages in a batch. A message larger than the preferred + # max bytes will result in a batch larger than preferred max bytes. + PreferredMaxBytes: 512 KB + + Kafka: + # Brokers: A list of Kafka brokers to which the orderer connects + # NOTE: Use IP:port notation + Brokers: + #- 127.0.0.1:9092 + - kafka0:9092 + - kafka1:9092 + - kafka2:9092 + + # Organizations is the list of orgs which are defined as participants on + # the orderer side of the network + Organizations: + +################################################################################ +# +# SECTION: Application +# +# - This section defines the values to encode into a config transaction or +# genesis block for application related parameters +# +################################################################################ +Application: &ApplicationDefaults + + # Organizations is the list of orgs which are defined as participants on + # the application side of the network + Organizations: diff --git a/hyperledger/1.0.1/kafka/crypto-config.yaml b/hyperledger/1.0.1/kafka/crypto-config.yaml new file mode 100644 index 00000000..06ad8185 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config.yaml @@ -0,0 +1,81 @@ +# Copyright IBM Corp. All Rights Reserved. +# +# SPDX-License-Identifier: Apache-2.0 +# + +# --------------------------------------------------------------------------- +# "OrdererOrgs" - Definition of organizations managing orderer nodes +# --------------------------------------------------------------------------- +OrdererOrgs: + # --------------------------------------------------------------------------- + # Orderer + # --------------------------------------------------------------------------- + - Name: Orderer + Domain: example.com + # --------------------------------------------------------------------------- + # "Specs" - See PeerOrgs below for complete description + # --------------------------------------------------------------------------- + Specs: + - Hostname: orderer +# --------------------------------------------------------------------------- +# "PeerOrgs" - Definition of organizations managing peer nodes +# --------------------------------------------------------------------------- +PeerOrgs: + # --------------------------------------------------------------------------- + # Org1 + # --------------------------------------------------------------------------- + - Name: Org1 + Domain: org1.example.com + # --------------------------------------------------------------------------- + # "Specs" + # --------------------------------------------------------------------------- + # Uncomment this section to enable the explicit definition of hosts in your + # configuration. Most users will want to use Template, below + # + # Specs is an array of Spec entries. Each Spec entry consists of two fields: + # - Hostname: (Required) The desired hostname, sans the domain. + # - CommonName: (Optional) Specifies the template or explicit override for + # the CN. By default, this is the template: + # + # "{{.Hostname}}.{{.Domain}}" + # + # which obtains its values from the Spec.Hostname and + # Org.Domain, respectively. + # --------------------------------------------------------------------------- + # Specs: + # - Hostname: foo # implicitly "foo.org1.example.com" + # CommonName: foo27.org5.example.com # overrides Hostname-based FQDN set above + # - Hostname: bar + # - Hostname: baz + # --------------------------------------------------------------------------- + # "Template" + # --------------------------------------------------------------------------- + # Allows for the definition of 1 or more hosts that are created sequentially + # from a template. By default, this looks like "peer%d" from 0 to Count-1. + # You may override the number of nodes (Count), the starting index (Start) + # or the template used to construct the name (Hostname). + # + # Note: Template and Specs are not mutually exclusive. You may define both + # sections and the aggregate nodes will be created for you. Take care with + # name collisions + # --------------------------------------------------------------------------- + Template: + Count: 2 + # Start: 5 + # Hostname: {{.Prefix}}{{.Index}} # default + # --------------------------------------------------------------------------- + # "Users" + # --------------------------------------------------------------------------- + # Count: The number of user accounts _in addition_ to Admin + # --------------------------------------------------------------------------- + Users: + Count: 1 + # --------------------------------------------------------------------------- + # Org2: See "Org1" for full specification + # --------------------------------------------------------------------------- + - Name: Org2 + Domain: org2.example.com + Template: + Count: 2 + Users: + Count: 1 diff --git a/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/ca/2158ff24382f92c1047c74fa7235402702fc8ffeae67a83436c4a4f9ec20dded_sk b/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/ca/2158ff24382f92c1047c74fa7235402702fc8ffeae67a83436c4a4f9ec20dded_sk new file mode 100644 index 00000000..c993a471 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/ca/2158ff24382f92c1047c74fa7235402702fc8ffeae67a83436c4a4f9ec20dded_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgLoWegKgeiQymlZ2K +E/yWMTGF7P8YcfVZXQl6W2WOIoqhRANCAATfzKjrsTjNAU4vTGTtOV3PqMehprYd +0GWCVg8GhqVdSCb5gQTLZSRy1eBlfoNutrYe+W8cGn9evTI3l5l/+27m +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/ca/75ff05960380622bbf9d48d8d129ec0372768781af6b5a4434c3249b0c17bc7d_sk b/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/ca/75ff05960380622bbf9d48d8d129ec0372768781af6b5a4434c3249b0c17bc7d_sk new file mode 100644 index 00000000..5bf2e44b --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/ca/75ff05960380622bbf9d48d8d129ec0372768781af6b5a4434c3249b0c17bc7d_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQg4oGgwAs+vHb7nT5b +eOJNjLrFgxeEUU4CxB7Zp9hdQOqhRANCAAQQLkPcMlRdEeW0ZR09uDVSCIlsfQhB +FCZtbtzJ7B2NokH4ZbommT9P2JhLxt0WprEcjAS9SR/fHt1ceyHCkwMr +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/ca/97099c2e27158cfde1c77b9fef507a534f31012dbe24eba5e49b15bed1e6d1f3_sk b/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/ca/97099c2e27158cfde1c77b9fef507a534f31012dbe24eba5e49b15bed1e6d1f3_sk new file mode 100644 index 00000000..51303dc2 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/ca/97099c2e27158cfde1c77b9fef507a534f31012dbe24eba5e49b15bed1e6d1f3_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQg2WAulOWpowaCSTz9 +u5p2CI95v08ZRWfdCehew+ZhtkKhRANCAAR7Z4PcMnA5WiKnTkpfNIc6JQk4aC5y +HZWWO3XtTn3ylTC5fGGbXgAKxpNgd0WYIIiEp3/g3OGye29PlioDMEjg +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/ca/c12916a1498b69863172389ae62c7589585790483c17020bb31de091a0f00e84_sk b/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/ca/c12916a1498b69863172389ae62c7589585790483c17020bb31de091a0f00e84_sk new file mode 100644 index 00000000..1b73ce88 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/ca/c12916a1498b69863172389ae62c7589585790483c17020bb31de091a0f00e84_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgP+nyQMX1YlgzVfeD +DG+MytTfl/Nqroj/JLL+1aDXVsmhRANCAAQ11rt5GyYoW9db26IkFIVhJKYq5y0P +RM0iv/1fyw3rsSKvN7K25auYiWuT77ifRNF6x6rkna5i7z3//q/43Tfv +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/ca/c4b143e84328c80799fb28b425c952867e16ed9dc1790ca5555a35ff7afcc741_sk b/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/ca/c4b143e84328c80799fb28b425c952867e16ed9dc1790ca5555a35ff7afcc741_sk new file mode 100644 index 00000000..de9d652f --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/ca/c4b143e84328c80799fb28b425c952867e16ed9dc1790ca5555a35ff7afcc741_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgsgmmFjmcxXNVxvTS +CJbK4X7iVKgMKzr3XHfaXIO59QqhRANCAAQNDD/HIdNt64z5cUrxkK1Yen6mIYOa +QpHa8pXQDl7F7GoDdQKZJNxbPOGrFk64krXaHM4H18tCT/AHI7TZCBCd +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/ca/ca.example.com-cert.pem b/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/ca/ca.example.com-cert.pem new file mode 100644 index 00000000..b2f36fa8 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/ca/ca.example.com-cert.pem @@ -0,0 +1,15 @@ +-----BEGIN CERTIFICATE----- +MIICXjCCAgWgAwIBAgIRAJWYeZk0trc7Mely1Su1NNkwCgYIKoZIzj0EAwIwaTEL +MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG +cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRcwFQYDVQQDEw5jYS5leGFt +cGxlLmNvbTAeFw0xNzA3MDUwODE1MzFaFw0yNzA3MDMwODE1MzFaMGkxCzAJBgNV +BAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJhbmNp +c2NvMRQwEgYDVQQKEwtleGFtcGxlLmNvbTEXMBUGA1UEAxMOY2EuZXhhbXBsZS5j +b20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQNDD/HIdNt64z5cUrxkK1Yen6m +IYOaQpHa8pXQDl7F7GoDdQKZJNxbPOGrFk64krXaHM4H18tCT/AHI7TZCBCdo4GN +MIGKMA4GA1UdDwEB/wQEAwIBpjAPBgNVHSUECDAGBgRVHSUAMA8GA1UdEwEB/wQF +MAMBAf8wKQYDVR0OBCIEIMSxQ+hDKMgHmfsotCXJUoZ+Fu2dwXkMpVVaNf96/MdB +MCsGA1UdIwQkMCKAIMSxQ+hDKMgHmfsotCXJUoZ+Fu2dwXkMpVVaNf96/MdBMAoG +CCqGSM49BAMCA0cAMEQCIBYhOwWqVIMAZJm3KSX2s72umdoDG3DZ00F8Zku6GzQD +AiA0UQrz7eDfg6b/93Q1rLWAsCxydVozMjnlZvQP+7RENw== +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/ca/f1cb4f803affb939be6963f7d6f1ae9e5ccdafb6a282e04331885fdf70b96580_sk b/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/ca/f1cb4f803affb939be6963f7d6f1ae9e5ccdafb6a282e04331885fdf70b96580_sk new file mode 100644 index 00000000..05c9f91b --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/ca/f1cb4f803affb939be6963f7d6f1ae9e5ccdafb6a282e04331885fdf70b96580_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgX6hbpIFG3OL9btBX +LohIdEPKP8dKMteF7o6Ua+LdGgShRANCAASdo2luA9JUDoTWw8EYBwlYCW8kZXBk +2sOA9X2lL9eEzcQWrGQdWi2JIIpVX8EW3RzIbp4t9DiqlzKGnpWSjD4+ +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/msp/admincerts/Admin@example.com-cert.pem b/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/msp/admincerts/Admin@example.com-cert.pem new file mode 100644 index 00000000..fe48ed31 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/msp/admincerts/Admin@example.com-cert.pem @@ -0,0 +1,13 @@ +-----BEGIN CERTIFICATE----- +MIICCTCCAbCgAwIBAgIQcGqzeN6Vju9Zd2s/v2u56jAKBggqhkjOPQQDAjBpMQsw +CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy +YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xFzAVBgNVBAMTDmNhLmV4YW1w +bGUuY29tMB4XDTE3MDcwNTA4MTUzMVoXDTI3MDcwMzA4MTUzMVowVjELMAkGA1UE +BhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFuY2lz +Y28xGjAYBgNVBAMMEUFkbWluQGV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZI +zj0DAQcDQgAECZgnkU4m5btjq6k0SFa89QE+WEYQm+nPbnrXL0lBpzOV6wBcys0Y +nPcvOSjgUmrok5AXHa3FFHdz3kLJohy1R6NNMEswDgYDVR0PAQH/BAQDAgeAMAwG +A1UdEwEB/wQCMAAwKwYDVR0jBCQwIoAgxLFD6EMoyAeZ+yi0JclShn4W7Z3BeQyl +VVo1/3r8x0EwCgYIKoZIzj0EAwIDRwAwRAIgJDgoQFewOCF5vsoaKIyX0N6L+cNV +cpGb0r1Vx1liVuICIHGDMtQE0mWj2WZjFQ55SHZL+DJKTNyUnoL7lJNwYCKa +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/msp/cacerts/ca.example.com-cert.pem b/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/msp/cacerts/ca.example.com-cert.pem new file mode 100644 index 00000000..b2f36fa8 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/msp/cacerts/ca.example.com-cert.pem @@ -0,0 +1,15 @@ +-----BEGIN CERTIFICATE----- +MIICXjCCAgWgAwIBAgIRAJWYeZk0trc7Mely1Su1NNkwCgYIKoZIzj0EAwIwaTEL +MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG +cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRcwFQYDVQQDEw5jYS5leGFt +cGxlLmNvbTAeFw0xNzA3MDUwODE1MzFaFw0yNzA3MDMwODE1MzFaMGkxCzAJBgNV +BAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJhbmNp +c2NvMRQwEgYDVQQKEwtleGFtcGxlLmNvbTEXMBUGA1UEAxMOY2EuZXhhbXBsZS5j +b20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQNDD/HIdNt64z5cUrxkK1Yen6m +IYOaQpHa8pXQDl7F7GoDdQKZJNxbPOGrFk64krXaHM4H18tCT/AHI7TZCBCdo4GN +MIGKMA4GA1UdDwEB/wQEAwIBpjAPBgNVHSUECDAGBgRVHSUAMA8GA1UdEwEB/wQF +MAMBAf8wKQYDVR0OBCIEIMSxQ+hDKMgHmfsotCXJUoZ+Fu2dwXkMpVVaNf96/MdB +MCsGA1UdIwQkMCKAIMSxQ+hDKMgHmfsotCXJUoZ+Fu2dwXkMpVVaNf96/MdBMAoG +CCqGSM49BAMCA0cAMEQCIBYhOwWqVIMAZJm3KSX2s72umdoDG3DZ00F8Zku6GzQD +AiA0UQrz7eDfg6b/93Q1rLWAsCxydVozMjnlZvQP+7RENw== +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/msp/tlscacerts/tlsca.example.com-cert.pem b/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/msp/tlscacerts/tlsca.example.com-cert.pem new file mode 100644 index 00000000..9e085650 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/msp/tlscacerts/tlsca.example.com-cert.pem @@ -0,0 +1,15 @@ +-----BEGIN CERTIFICATE----- +MIICYzCCAgqgAwIBAgIQQJM4HjyfBdWh8nQ7cN8unTAKBggqhkjOPQQDAjBsMQsw +CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy +YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xGjAYBgNVBAMTEXRsc2NhLmV4 +YW1wbGUuY29tMB4XDTE3MDcwNTA4MTUzMVoXDTI3MDcwMzA4MTUzMVowbDELMAkG +A1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFu +Y2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5leGFt +cGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABErpvlnlO9zBr9WXwtng +TSqDH+wxkkfq7lHFp+3W6BVDCHnTy1Y9CMQDgYeBlaejygpJbrS02tyLyMn3BejX +HkijgY0wgYowDgYDVR0PAQH/BAQDAgGmMA8GA1UdJQQIMAYGBFUdJQAwDwYDVR0T +AQH/BAUwAwEB/zApBgNVHQ4EIgQgLD/WWWrSCzV7lZG/QDt82VS7eEulRyFp4+1U +wReYwnYwKwYDVR0jBCQwIoAgLD/WWWrSCzV7lZG/QDt82VS7eEulRyFp4+1UwReY +wnYwCgYIKoZIzj0EAwIDRwAwRAIgUwupyylCiL+cyCN2v4+2iPLy2VRjjVNz/T+a +xalUyjACIClalexLYsBOmxWays1oS8GuTcqziLvpC60HBXrx0AHD +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/admincerts/Admin@example.com-cert.pem b/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/admincerts/Admin@example.com-cert.pem new file mode 100644 index 00000000..fe48ed31 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/admincerts/Admin@example.com-cert.pem @@ -0,0 +1,13 @@ +-----BEGIN CERTIFICATE----- +MIICCTCCAbCgAwIBAgIQcGqzeN6Vju9Zd2s/v2u56jAKBggqhkjOPQQDAjBpMQsw +CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy +YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xFzAVBgNVBAMTDmNhLmV4YW1w +bGUuY29tMB4XDTE3MDcwNTA4MTUzMVoXDTI3MDcwMzA4MTUzMVowVjELMAkGA1UE +BhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFuY2lz +Y28xGjAYBgNVBAMMEUFkbWluQGV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZI +zj0DAQcDQgAECZgnkU4m5btjq6k0SFa89QE+WEYQm+nPbnrXL0lBpzOV6wBcys0Y +nPcvOSjgUmrok5AXHa3FFHdz3kLJohy1R6NNMEswDgYDVR0PAQH/BAQDAgeAMAwG +A1UdEwEB/wQCMAAwKwYDVR0jBCQwIoAgxLFD6EMoyAeZ+yi0JclShn4W7Z3BeQyl +VVo1/3r8x0EwCgYIKoZIzj0EAwIDRwAwRAIgJDgoQFewOCF5vsoaKIyX0N6L+cNV +cpGb0r1Vx1liVuICIHGDMtQE0mWj2WZjFQ55SHZL+DJKTNyUnoL7lJNwYCKa +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/cacerts/ca.example.com-cert.pem b/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/cacerts/ca.example.com-cert.pem new file mode 100644 index 00000000..b2f36fa8 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/cacerts/ca.example.com-cert.pem @@ -0,0 +1,15 @@ +-----BEGIN CERTIFICATE----- +MIICXjCCAgWgAwIBAgIRAJWYeZk0trc7Mely1Su1NNkwCgYIKoZIzj0EAwIwaTEL +MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG +cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRcwFQYDVQQDEw5jYS5leGFt +cGxlLmNvbTAeFw0xNzA3MDUwODE1MzFaFw0yNzA3MDMwODE1MzFaMGkxCzAJBgNV +BAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJhbmNp +c2NvMRQwEgYDVQQKEwtleGFtcGxlLmNvbTEXMBUGA1UEAxMOY2EuZXhhbXBsZS5j +b20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQNDD/HIdNt64z5cUrxkK1Yen6m +IYOaQpHa8pXQDl7F7GoDdQKZJNxbPOGrFk64krXaHM4H18tCT/AHI7TZCBCdo4GN +MIGKMA4GA1UdDwEB/wQEAwIBpjAPBgNVHSUECDAGBgRVHSUAMA8GA1UdEwEB/wQF +MAMBAf8wKQYDVR0OBCIEIMSxQ+hDKMgHmfsotCXJUoZ+Fu2dwXkMpVVaNf96/MdB +MCsGA1UdIwQkMCKAIMSxQ+hDKMgHmfsotCXJUoZ+Fu2dwXkMpVVaNf96/MdBMAoG +CCqGSM49BAMCA0cAMEQCIBYhOwWqVIMAZJm3KSX2s72umdoDG3DZ00F8Zku6GzQD +AiA0UQrz7eDfg6b/93Q1rLWAsCxydVozMjnlZvQP+7RENw== +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/keystore/04b68d50862a2c16091194b4c05138842fc7b2b4b7d4be28e5c7f5de481487cb_sk b/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/keystore/04b68d50862a2c16091194b4c05138842fc7b2b4b7d4be28e5c7f5de481487cb_sk new file mode 100644 index 00000000..ec813522 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/keystore/04b68d50862a2c16091194b4c05138842fc7b2b4b7d4be28e5c7f5de481487cb_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgkkfIvswc5MtRfYes +Z4CS9xdPkxkF4hHwRtv8fRoS5KuhRANCAAQP5SpSBZqxzpO+2FSts132wKtm2yiw +HbwPLAvnIcq3en6QNm/c9H4PQYqYve25ah9z6J9YuiW429Dnk4u6c0Uo +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/keystore/4accda76c7e4f6b7f3a174e43551ea116cbf3fc6406f57d2c446cfd6f2022dfc_sk b/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/keystore/4accda76c7e4f6b7f3a174e43551ea116cbf3fc6406f57d2c446cfd6f2022dfc_sk new file mode 100644 index 00000000..286f9d78 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/keystore/4accda76c7e4f6b7f3a174e43551ea116cbf3fc6406f57d2c446cfd6f2022dfc_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgeaNzCCub1ONK721z +8J/iaB1l7mw1vGmS8GJmBdF4NV6hRANCAAQCmqwGRazqJeQM9yJm6kNh3jvngVwF +uIOK6+Gq15JWMcCfohO+Y4z0YDkvxmsBGwWsJdk6hRmsDQN5RN1tM8Hp +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/keystore/4d366a301381abe330e69de838cc0cab955c36d2a8949184f8b1eb3d8e4b651f_sk b/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/keystore/4d366a301381abe330e69de838cc0cab955c36d2a8949184f8b1eb3d8e4b651f_sk new file mode 100644 index 00000000..21953805 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/keystore/4d366a301381abe330e69de838cc0cab955c36d2a8949184f8b1eb3d8e4b651f_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgq0e7o6HRxBUH5nIF +cWq5llA3B1sMbQnQBB5Vm9XpTGahRANCAAQT7UZazNuL0qCWBTnnhLDia9PSk87Q +iDxcs6QEsLQvvG+odImAQZl2SkcAOFiAIPQRjgZG1DNs3Vs1ajP9eoOU +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/keystore/566b973d148f0f09298ffb89af0f1a83dab18b1e2d70131e07db0984e37ec0f7_sk b/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/keystore/566b973d148f0f09298ffb89af0f1a83dab18b1e2d70131e07db0984e37ec0f7_sk new file mode 100644 index 00000000..c7fd9a4a --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/keystore/566b973d148f0f09298ffb89af0f1a83dab18b1e2d70131e07db0984e37ec0f7_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgoHwWukJ95sEJEMYR +u7DPJv3bpSEOFXGDLzsHcTDwV7KhRANCAASCCU/0/8LFq1/EI5fQkXiUaHccL9DM +HZaGmWP34aL3HnUq6hmZk1mc0i55OPyLvrS6goA0RUGu3MnmPsV7QZP5 +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/keystore/9167cdf0d3b6ac35b8c681fbff491efcd1e7ce674b0e174d1b7b9e85c39cbf6f_sk b/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/keystore/9167cdf0d3b6ac35b8c681fbff491efcd1e7ce674b0e174d1b7b9e85c39cbf6f_sk new file mode 100644 index 00000000..80ac0c07 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/keystore/9167cdf0d3b6ac35b8c681fbff491efcd1e7ce674b0e174d1b7b9e85c39cbf6f_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQg0+0C9iORzWzjI2pX +cUapPe7AL+hMTlWK/dGEqZaLcMuhRANCAAQO5EymYHPQsoGvDlRS9Mdx6C2zYT/m +oBGn67Ap/eZo9Xrzf9TzuMrC+rlzLhdK50JnyyoUBEZ1Cu4uhhHMsCuV +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/keystore/93903913a2803d8f637bd4fd1fe32b3f105c31b7b58f1f54022bc60ed7b99e3a_sk b/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/keystore/93903913a2803d8f637bd4fd1fe32b3f105c31b7b58f1f54022bc60ed7b99e3a_sk new file mode 100644 index 00000000..f87cf25a --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/keystore/93903913a2803d8f637bd4fd1fe32b3f105c31b7b58f1f54022bc60ed7b99e3a_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgZQY0bP5T4vEDlBc4 +4ruckByQIVSn7YbMJUnDp7TsTX2hRANCAAQoBz2vXprwFa+P3q3GxFhuqYjeHheX +MyKWoLnNNzbFS836Df9sw3x7WDa0HXnQA+1P+N/WaFB0OgVyHKsWgCbR +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/signcerts/orderer.example.com-cert.pem b/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/signcerts/orderer.example.com-cert.pem new file mode 100644 index 00000000..d4451858 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/signcerts/orderer.example.com-cert.pem @@ -0,0 +1,13 @@ +-----BEGIN CERTIFICATE----- +MIICDDCCAbOgAwIBAgIRAKcX8DlCVhiWgWcwBbazYeEwCgYIKoZIzj0EAwIwaTEL +MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG +cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRcwFQYDVQQDEw5jYS5leGFt +cGxlLmNvbTAeFw0xNzA3MDUwODE1MzFaFw0yNzA3MDMwODE1MzFaMFgxCzAJBgNV +BAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJhbmNp +c2NvMRwwGgYDVQQDExNvcmRlcmVyLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYI +KoZIzj0DAQcDQgAED+UqUgWasc6TvthUrbNd9sCrZtsosB28DywL5yHKt3p+kDZv +3PR+D0GKmL3tuWofc+ifWLoluNvQ55OLunNFKKNNMEswDgYDVR0PAQH/BAQDAgeA +MAwGA1UdEwEB/wQCMAAwKwYDVR0jBCQwIoAgxLFD6EMoyAeZ+yi0JclShn4W7Z3B +eQylVVo1/3r8x0EwCgYIKoZIzj0EAwIDRwAwRAIgUJ0453MFwL7iNdyTuBoij+hi +bBf3RR2mGczCl+z/ILMCIHOZzS4F7BTF4pmHeGw8Y036cILrhTBBvC5IdpmJ9ANq +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem b/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem new file mode 100644 index 00000000..9e085650 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem @@ -0,0 +1,15 @@ +-----BEGIN CERTIFICATE----- +MIICYzCCAgqgAwIBAgIQQJM4HjyfBdWh8nQ7cN8unTAKBggqhkjOPQQDAjBsMQsw +CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy +YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xGjAYBgNVBAMTEXRsc2NhLmV4 +YW1wbGUuY29tMB4XDTE3MDcwNTA4MTUzMVoXDTI3MDcwMzA4MTUzMVowbDELMAkG +A1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFu +Y2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5leGFt +cGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABErpvlnlO9zBr9WXwtng +TSqDH+wxkkfq7lHFp+3W6BVDCHnTy1Y9CMQDgYeBlaejygpJbrS02tyLyMn3BejX +HkijgY0wgYowDgYDVR0PAQH/BAQDAgGmMA8GA1UdJQQIMAYGBFUdJQAwDwYDVR0T +AQH/BAUwAwEB/zApBgNVHQ4EIgQgLD/WWWrSCzV7lZG/QDt82VS7eEulRyFp4+1U +wReYwnYwKwYDVR0jBCQwIoAgLD/WWWrSCzV7lZG/QDt82VS7eEulRyFp4+1UwReY +wnYwCgYIKoZIzj0EAwIDRwAwRAIgUwupyylCiL+cyCN2v4+2iPLy2VRjjVNz/T+a +xalUyjACIClalexLYsBOmxWays1oS8GuTcqziLvpC60HBXrx0AHD +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/tls/ca.crt b/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/tls/ca.crt new file mode 100644 index 00000000..9e085650 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/tls/ca.crt @@ -0,0 +1,15 @@ +-----BEGIN CERTIFICATE----- +MIICYzCCAgqgAwIBAgIQQJM4HjyfBdWh8nQ7cN8unTAKBggqhkjOPQQDAjBsMQsw +CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy +YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xGjAYBgNVBAMTEXRsc2NhLmV4 +YW1wbGUuY29tMB4XDTE3MDcwNTA4MTUzMVoXDTI3MDcwMzA4MTUzMVowbDELMAkG +A1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFu +Y2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5leGFt +cGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABErpvlnlO9zBr9WXwtng +TSqDH+wxkkfq7lHFp+3W6BVDCHnTy1Y9CMQDgYeBlaejygpJbrS02tyLyMn3BejX +HkijgY0wgYowDgYDVR0PAQH/BAQDAgGmMA8GA1UdJQQIMAYGBFUdJQAwDwYDVR0T +AQH/BAUwAwEB/zApBgNVHQ4EIgQgLD/WWWrSCzV7lZG/QDt82VS7eEulRyFp4+1U +wReYwnYwKwYDVR0jBCQwIoAgLD/WWWrSCzV7lZG/QDt82VS7eEulRyFp4+1UwReY +wnYwCgYIKoZIzj0EAwIDRwAwRAIgUwupyylCiL+cyCN2v4+2iPLy2VRjjVNz/T+a +xalUyjACIClalexLYsBOmxWays1oS8GuTcqziLvpC60HBXrx0AHD +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/tls/server.crt b/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/tls/server.crt new file mode 100644 index 00000000..b69e3d42 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/tls/server.crt @@ -0,0 +1,15 @@ +-----BEGIN CERTIFICATE----- +MIICWTCCAf+gAwIBAgIQN4Ude2Ttfs9jeCrQoAC87DAKBggqhkjOPQQDAjBsMQsw +CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy +YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xGjAYBgNVBAMTEXRsc2NhLmV4 +YW1wbGUuY29tMB4XDTE3MDcwNTA4MTUzMVoXDTI3MDcwMzA4MTUzMVowWDELMAkG +A1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFu +Y2lzY28xHDAaBgNVBAMTE29yZGVyZXIuZXhhbXBsZS5jb20wWTATBgcqhkjOPQIB +BggqhkjOPQMBBwNCAATdzxdhUomwV2PvWFsCkelyD79FVN4GnYU9YHJYenvoonm1 ++Q1tnfp/4GNrw84NvFL+lvPgjVLts0dNIWackG5So4GWMIGTMA4GA1UdDwEB/wQE +AwIFoDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDAYDVR0TAQH/BAIw +ADArBgNVHSMEJDAigCAsP9ZZatILNXuVkb9AO3zZVLt4S6VHIWnj7VTBF5jCdjAn +BgNVHREEIDAeghNvcmRlcmVyLmV4YW1wbGUuY29tggdvcmRlcmVyMAoGCCqGSM49 +BAMCA0gAMEUCIQDNjNT5RWqWaXa0FjxtgYm+NTjDG9ND/2NujcffKg6V+QIgJQLv +/mwgRw6ioyvcPkj/sMuzxuuIeZkbAqZDseGvrlw= +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/tls/server.key b/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/tls/server.key new file mode 100644 index 00000000..c1eea8d2 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/tls/server.key @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgBa/7wxBToABevcrm +hPODwjxz4xm7nRjEWNCStZMZJO6hRANCAATdzxdhUomwV2PvWFsCkelyD79FVN4G +nYU9YHJYenvoonm1+Q1tnfp/4GNrw84NvFL+lvPgjVLts0dNIWackG5S +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/tlsca/1c9862ed3913879d3bd470f5cac15cc9d17d7c2993943d7e5e2e36b9caf8f0e7_sk b/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/tlsca/1c9862ed3913879d3bd470f5cac15cc9d17d7c2993943d7e5e2e36b9caf8f0e7_sk new file mode 100644 index 00000000..ab9e2b23 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/tlsca/1c9862ed3913879d3bd470f5cac15cc9d17d7c2993943d7e5e2e36b9caf8f0e7_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgkChyTb35DVMk/gjE +TtJLb/rCoY5mvlh2N2L13QIPZRShRANCAATbya9vZ68DM8ZlXStmBXHDzmQV3pA8 +r8smhgw5dbHQ2IEOf0vfhvdObATV633O2enqo4Xmc7n858FRjpXa/9hn +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/tlsca/2c3fd6596ad20b357b9591bf403b7cd954bb784ba5472169e3ed54c11798c276_sk b/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/tlsca/2c3fd6596ad20b357b9591bf403b7cd954bb784ba5472169e3ed54c11798c276_sk new file mode 100644 index 00000000..f12d65cc --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/tlsca/2c3fd6596ad20b357b9591bf403b7cd954bb784ba5472169e3ed54c11798c276_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQg50FwK2wARZ5SUAY7 +63QL4ui6Zgq9VmuizXzT8KO6AJahRANCAARK6b5Z5Tvcwa/Vl8LZ4E0qgx/sMZJH +6u5Rxaft1ugVQwh508tWPQjEA4GHgZWno8oKSW60tNrci8jJ9wXo1x5I +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/tlsca/45a40947a791f50c3e8090fb908306c67c9f9071ee8c0b37abc8669807ad3310_sk b/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/tlsca/45a40947a791f50c3e8090fb908306c67c9f9071ee8c0b37abc8669807ad3310_sk new file mode 100644 index 00000000..e08a4974 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/tlsca/45a40947a791f50c3e8090fb908306c67c9f9071ee8c0b37abc8669807ad3310_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgPUwKZdh92bPCwyjC +dE5XNCWvtmynLjEZ5012gausK+ShRANCAASN+guEBKlydArPxGm190It5xuMlwvz +sAWcWjhpQpk1zSlaTZJhKx1wR0hrxlSXP4HB4SUh/6a0CZimhfvakPQT +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/tlsca/800c6584058b7ffaa2536b972364f3eafc67c0b8db2e19884169d02cb0d12379_sk b/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/tlsca/800c6584058b7ffaa2536b972364f3eafc67c0b8db2e19884169d02cb0d12379_sk new file mode 100644 index 00000000..a7ecb871 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/tlsca/800c6584058b7ffaa2536b972364f3eafc67c0b8db2e19884169d02cb0d12379_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgs5TFrkFBZ8A/v0Mj +0mBiS9jj22HGazXTFv6PWp0fylahRANCAATaegi9Fe5Lx/eLDtC7F63rkQdaD8Ab +A7wlhwEu8wGaah9PmZ91b4fwDX47eV2cm3SGQ/74YZ8gaSn1/GEv58cd +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/tlsca/f3a49c2d1e90e3daab831574d5e8d7e3373997d70e55155476d5f62d6599ea31_sk b/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/tlsca/f3a49c2d1e90e3daab831574d5e8d7e3373997d70e55155476d5f62d6599ea31_sk new file mode 100644 index 00000000..126b93e9 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/tlsca/f3a49c2d1e90e3daab831574d5e8d7e3373997d70e55155476d5f62d6599ea31_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgaHjqPA0Y6KcsRYXV +fACjsYKna6sdLM1/gp3EOzb49QyhRANCAATgzjA+zVfpZWPdwEEAK4/Dz/unZARP +34gJvIcxOPTZWDoYMpxeBTjSvUd+B+PPcUoOmokiGcfRcf0fZ5me+1Cr +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/tlsca/fcffdc15ca7df2bdbe11d24107662323d9d3acdf3aebebd09e8c17249fe62149_sk b/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/tlsca/fcffdc15ca7df2bdbe11d24107662323d9d3acdf3aebebd09e8c17249fe62149_sk new file mode 100644 index 00000000..505c1283 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/tlsca/fcffdc15ca7df2bdbe11d24107662323d9d3acdf3aebebd09e8c17249fe62149_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgutMxDnchW0zFcBQ5 +oOkqQp1AgGhvYIMF4Jkd4+bDg9yhRANCAAQckgh4Z0eHj7cy5eJIwgQF0ugzdxsc +MYe0vhIqTwZUIr6j2ahhANtTEUFnlueOj8HrHPATLPpqsl5w1yW4HG7G +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/tlsca/tlsca.example.com-cert.pem b/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/tlsca/tlsca.example.com-cert.pem new file mode 100644 index 00000000..9e085650 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/tlsca/tlsca.example.com-cert.pem @@ -0,0 +1,15 @@ +-----BEGIN CERTIFICATE----- +MIICYzCCAgqgAwIBAgIQQJM4HjyfBdWh8nQ7cN8unTAKBggqhkjOPQQDAjBsMQsw +CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy +YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xGjAYBgNVBAMTEXRsc2NhLmV4 +YW1wbGUuY29tMB4XDTE3MDcwNTA4MTUzMVoXDTI3MDcwMzA4MTUzMVowbDELMAkG +A1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFu +Y2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5leGFt +cGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABErpvlnlO9zBr9WXwtng +TSqDH+wxkkfq7lHFp+3W6BVDCHnTy1Y9CMQDgYeBlaejygpJbrS02tyLyMn3BejX +HkijgY0wgYowDgYDVR0PAQH/BAQDAgGmMA8GA1UdJQQIMAYGBFUdJQAwDwYDVR0T +AQH/BAUwAwEB/zApBgNVHQ4EIgQgLD/WWWrSCzV7lZG/QDt82VS7eEulRyFp4+1U +wReYwnYwKwYDVR0jBCQwIoAgLD/WWWrSCzV7lZG/QDt82VS7eEulRyFp4+1UwReY +wnYwCgYIKoZIzj0EAwIDRwAwRAIgUwupyylCiL+cyCN2v4+2iPLy2VRjjVNz/T+a +xalUyjACIClalexLYsBOmxWays1oS8GuTcqziLvpC60HBXrx0AHD +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/admincerts/Admin@example.com-cert.pem b/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/admincerts/Admin@example.com-cert.pem new file mode 100644 index 00000000..fe48ed31 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/admincerts/Admin@example.com-cert.pem @@ -0,0 +1,13 @@ +-----BEGIN CERTIFICATE----- +MIICCTCCAbCgAwIBAgIQcGqzeN6Vju9Zd2s/v2u56jAKBggqhkjOPQQDAjBpMQsw +CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy +YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xFzAVBgNVBAMTDmNhLmV4YW1w +bGUuY29tMB4XDTE3MDcwNTA4MTUzMVoXDTI3MDcwMzA4MTUzMVowVjELMAkGA1UE +BhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFuY2lz +Y28xGjAYBgNVBAMMEUFkbWluQGV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZI +zj0DAQcDQgAECZgnkU4m5btjq6k0SFa89QE+WEYQm+nPbnrXL0lBpzOV6wBcys0Y +nPcvOSjgUmrok5AXHa3FFHdz3kLJohy1R6NNMEswDgYDVR0PAQH/BAQDAgeAMAwG +A1UdEwEB/wQCMAAwKwYDVR0jBCQwIoAgxLFD6EMoyAeZ+yi0JclShn4W7Z3BeQyl +VVo1/3r8x0EwCgYIKoZIzj0EAwIDRwAwRAIgJDgoQFewOCF5vsoaKIyX0N6L+cNV +cpGb0r1Vx1liVuICIHGDMtQE0mWj2WZjFQ55SHZL+DJKTNyUnoL7lJNwYCKa +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/cacerts/ca.example.com-cert.pem b/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/cacerts/ca.example.com-cert.pem new file mode 100644 index 00000000..b2f36fa8 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/cacerts/ca.example.com-cert.pem @@ -0,0 +1,15 @@ +-----BEGIN CERTIFICATE----- +MIICXjCCAgWgAwIBAgIRAJWYeZk0trc7Mely1Su1NNkwCgYIKoZIzj0EAwIwaTEL +MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG +cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRcwFQYDVQQDEw5jYS5leGFt +cGxlLmNvbTAeFw0xNzA3MDUwODE1MzFaFw0yNzA3MDMwODE1MzFaMGkxCzAJBgNV +BAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJhbmNp +c2NvMRQwEgYDVQQKEwtleGFtcGxlLmNvbTEXMBUGA1UEAxMOY2EuZXhhbXBsZS5j +b20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQNDD/HIdNt64z5cUrxkK1Yen6m +IYOaQpHa8pXQDl7F7GoDdQKZJNxbPOGrFk64krXaHM4H18tCT/AHI7TZCBCdo4GN +MIGKMA4GA1UdDwEB/wQEAwIBpjAPBgNVHSUECDAGBgRVHSUAMA8GA1UdEwEB/wQF +MAMBAf8wKQYDVR0OBCIEIMSxQ+hDKMgHmfsotCXJUoZ+Fu2dwXkMpVVaNf96/MdB +MCsGA1UdIwQkMCKAIMSxQ+hDKMgHmfsotCXJUoZ+Fu2dwXkMpVVaNf96/MdBMAoG +CCqGSM49BAMCA0cAMEQCIBYhOwWqVIMAZJm3KSX2s72umdoDG3DZ00F8Zku6GzQD +AiA0UQrz7eDfg6b/93Q1rLWAsCxydVozMjnlZvQP+7RENw== +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/keystore/0ed770f9bb7f25d45f89804b4361772f565f45161b58af5df2d4f64e85544e80_sk b/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/keystore/0ed770f9bb7f25d45f89804b4361772f565f45161b58af5df2d4f64e85544e80_sk new file mode 100644 index 00000000..84f1d5f4 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/keystore/0ed770f9bb7f25d45f89804b4361772f565f45161b58af5df2d4f64e85544e80_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgicMjkk81g+XVkA5a +xVZI/qwXmjrGZQlK5yVwwSmfMcihRANCAAS/MpvrY3jEfhpk146KgHkeCQXQszTX +DhcvnKGHRYUjqWs99IeT44gIaEYMeMETNb7QXLNRpw1vmP5MJSbc9vGn +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/keystore/113241ad9ad238fd258b3c6fa263bc756df205830a597eac864e3db0e6e579ca_sk b/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/keystore/113241ad9ad238fd258b3c6fa263bc756df205830a597eac864e3db0e6e579ca_sk new file mode 100644 index 00000000..07485c14 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/keystore/113241ad9ad238fd258b3c6fa263bc756df205830a597eac864e3db0e6e579ca_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQghIIfUcg8TI79chba +HR32aPkcS3puewPUUN3XsgeYIzShRANCAAQJmCeRTiblu2OrqTRIVrz1AT5YRhCb +6c9uetcvSUGnM5XrAFzKzRic9y85KOBSauiTkBcdrcUUd3PeQsmiHLVH +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/keystore/22f7c14ab62d494d1d3b3eabad8dcece2457344081b2bc46fa1cac47d65b08ea_sk b/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/keystore/22f7c14ab62d494d1d3b3eabad8dcece2457344081b2bc46fa1cac47d65b08ea_sk new file mode 100644 index 00000000..f43ccc9d --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/keystore/22f7c14ab62d494d1d3b3eabad8dcece2457344081b2bc46fa1cac47d65b08ea_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgtQEGrUkHnlyVgJXb +Xi/mlr5BUC3K7atO923+cPrwXXehRANCAAR9ZFSMy0ncWjsJFQsBbKZ0fbz2D8bM +srfpe9SLIvdjZrD4VHmdUItT9QB1RhjIgDmUn8xqluauGci797smkt/C +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/keystore/2b34d7d3a4d682897a394cfa2d81abf5a9b17a077a0d6aa78266396c15782992_sk b/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/keystore/2b34d7d3a4d682897a394cfa2d81abf5a9b17a077a0d6aa78266396c15782992_sk new file mode 100644 index 00000000..9231b479 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/keystore/2b34d7d3a4d682897a394cfa2d81abf5a9b17a077a0d6aa78266396c15782992_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQguAI3WHFU5XQ9YU9V +1sMNQF2JEq2+SmH3Jo3Rc+G5Dn2hRANCAATOJ/67m3lQ1N4rcneGgISh4V0X1Obm +kL/YDTZ/IW/uACk1bi0jJkru6v4KziOhoSbLYRW35ufj+PhuRIOH3kE3 +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/keystore/8c04a14b777a59d06f25adef0f91542f6d364bdab0914ed75cc6fe214ccb9a43_sk b/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/keystore/8c04a14b777a59d06f25adef0f91542f6d364bdab0914ed75cc6fe214ccb9a43_sk new file mode 100644 index 00000000..70fa4bfb --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/keystore/8c04a14b777a59d06f25adef0f91542f6d364bdab0914ed75cc6fe214ccb9a43_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQg6mb0UclkS5nG5IwY +LwsGRu9A4pqFUJ0nInsXEq3788KhRANCAARJLvfRboguicpCp/qkRxvUEwoXileX +ksIX4u3S4i58iTLRl52krXJ9o7ouyyN3itJJYAyx2tafCsq6nvUoSPXR +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/keystore/c8acb05048ea62fdc3fa33fe8fd133a95ae4f5ee81969966d4ecbabe9904aa5f_sk b/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/keystore/c8acb05048ea62fdc3fa33fe8fd133a95ae4f5ee81969966d4ecbabe9904aa5f_sk new file mode 100644 index 00000000..3de4b913 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/keystore/c8acb05048ea62fdc3fa33fe8fd133a95ae4f5ee81969966d4ecbabe9904aa5f_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgZ0t6EkPgxNr9Mufd +wbutUULGzOHVxy+cs65zX9Woe7GhRANCAASFKRg3L8C1SEKtN354OYYJDUsgaRtB +DxXWnpJiz+13bE9QPPAT7LunBkkP/ppG+Lmqi725xpyMd5c3lmygegcc +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/signcerts/Admin@example.com-cert.pem b/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/signcerts/Admin@example.com-cert.pem new file mode 100644 index 00000000..fe48ed31 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/signcerts/Admin@example.com-cert.pem @@ -0,0 +1,13 @@ +-----BEGIN CERTIFICATE----- +MIICCTCCAbCgAwIBAgIQcGqzeN6Vju9Zd2s/v2u56jAKBggqhkjOPQQDAjBpMQsw +CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy +YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xFzAVBgNVBAMTDmNhLmV4YW1w +bGUuY29tMB4XDTE3MDcwNTA4MTUzMVoXDTI3MDcwMzA4MTUzMVowVjELMAkGA1UE +BhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFuY2lz +Y28xGjAYBgNVBAMMEUFkbWluQGV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZI +zj0DAQcDQgAECZgnkU4m5btjq6k0SFa89QE+WEYQm+nPbnrXL0lBpzOV6wBcys0Y +nPcvOSjgUmrok5AXHa3FFHdz3kLJohy1R6NNMEswDgYDVR0PAQH/BAQDAgeAMAwG +A1UdEwEB/wQCMAAwKwYDVR0jBCQwIoAgxLFD6EMoyAeZ+yi0JclShn4W7Z3BeQyl +VVo1/3r8x0EwCgYIKoZIzj0EAwIDRwAwRAIgJDgoQFewOCF5vsoaKIyX0N6L+cNV +cpGb0r1Vx1liVuICIHGDMtQE0mWj2WZjFQ55SHZL+DJKTNyUnoL7lJNwYCKa +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/tlscacerts/tlsca.example.com-cert.pem b/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/tlscacerts/tlsca.example.com-cert.pem new file mode 100644 index 00000000..9e085650 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/tlscacerts/tlsca.example.com-cert.pem @@ -0,0 +1,15 @@ +-----BEGIN CERTIFICATE----- +MIICYzCCAgqgAwIBAgIQQJM4HjyfBdWh8nQ7cN8unTAKBggqhkjOPQQDAjBsMQsw +CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy +YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xGjAYBgNVBAMTEXRsc2NhLmV4 +YW1wbGUuY29tMB4XDTE3MDcwNTA4MTUzMVoXDTI3MDcwMzA4MTUzMVowbDELMAkG +A1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFu +Y2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5leGFt +cGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABErpvlnlO9zBr9WXwtng +TSqDH+wxkkfq7lHFp+3W6BVDCHnTy1Y9CMQDgYeBlaejygpJbrS02tyLyMn3BejX +HkijgY0wgYowDgYDVR0PAQH/BAQDAgGmMA8GA1UdJQQIMAYGBFUdJQAwDwYDVR0T +AQH/BAUwAwEB/zApBgNVHQ4EIgQgLD/WWWrSCzV7lZG/QDt82VS7eEulRyFp4+1U +wReYwnYwKwYDVR0jBCQwIoAgLD/WWWrSCzV7lZG/QDt82VS7eEulRyFp4+1UwReY +wnYwCgYIKoZIzj0EAwIDRwAwRAIgUwupyylCiL+cyCN2v4+2iPLy2VRjjVNz/T+a +xalUyjACIClalexLYsBOmxWays1oS8GuTcqziLvpC60HBXrx0AHD +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/tls/ca.crt b/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/tls/ca.crt new file mode 100644 index 00000000..9e085650 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/tls/ca.crt @@ -0,0 +1,15 @@ +-----BEGIN CERTIFICATE----- +MIICYzCCAgqgAwIBAgIQQJM4HjyfBdWh8nQ7cN8unTAKBggqhkjOPQQDAjBsMQsw +CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy +YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xGjAYBgNVBAMTEXRsc2NhLmV4 +YW1wbGUuY29tMB4XDTE3MDcwNTA4MTUzMVoXDTI3MDcwMzA4MTUzMVowbDELMAkG +A1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFu +Y2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5leGFt +cGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABErpvlnlO9zBr9WXwtng +TSqDH+wxkkfq7lHFp+3W6BVDCHnTy1Y9CMQDgYeBlaejygpJbrS02tyLyMn3BejX +HkijgY0wgYowDgYDVR0PAQH/BAQDAgGmMA8GA1UdJQQIMAYGBFUdJQAwDwYDVR0T +AQH/BAUwAwEB/zApBgNVHQ4EIgQgLD/WWWrSCzV7lZG/QDt82VS7eEulRyFp4+1U +wReYwnYwKwYDVR0jBCQwIoAgLD/WWWrSCzV7lZG/QDt82VS7eEulRyFp4+1UwReY +wnYwCgYIKoZIzj0EAwIDRwAwRAIgUwupyylCiL+cyCN2v4+2iPLy2VRjjVNz/T+a +xalUyjACIClalexLYsBOmxWays1oS8GuTcqziLvpC60HBXrx0AHD +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/tls/server.crt b/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/tls/server.crt new file mode 100644 index 00000000..efd5509a --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/tls/server.crt @@ -0,0 +1,14 @@ +-----BEGIN CERTIFICATE----- +MIICKzCCAdKgAwIBAgIQDNDp8Bg4M381Ky8sZliI0zAKBggqhkjOPQQDAjBsMQsw +CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy +YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xGjAYBgNVBAMTEXRsc2NhLmV4 +YW1wbGUuY29tMB4XDTE3MDcwNTA4MTUzMVoXDTI3MDcwMzA4MTUzMVowVjELMAkG +A1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFu +Y2lzY28xGjAYBgNVBAMMEUFkbWluQGV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYI +KoZIzj0DAQcDQgAEMQxKnMFwEdxJ08l/08L2krYdZxOrOwVM3wvyD8/MBf6Q1SXh +1mTMNPnSWvo27LwYkA6uMiUsiEPd02eZZbHsxaNsMGowDgYDVR0PAQH/BAQDAgWg +MB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAMBgNVHRMBAf8EAjAAMCsG +A1UdIwQkMCKAICw/1llq0gs1e5WRv0A7fNlUu3hLpUchaePtVMEXmMJ2MAoGCCqG +SM49BAMCA0cAMEQCIAml6yka4xnxuOCdkA9E9xQIq4nA4IE6pccYqy8JpP3RAiAD +3xFk4YyWNFYgk8Fw1E9gwgC/LlSdHYcMFE9gH2/MSg== +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/tls/server.key b/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/tls/server.key new file mode 100644 index 00000000..feb3f21f --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/tls/server.key @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgT0QcF2nXcoqG/JaV +reVzRTpCcUavSN9edK6o3WRm7xqhRANCAAQxDEqcwXAR3EnTyX/TwvaSth1nE6s7 +BUzfC/IPz8wF/pDVJeHWZMw0+dJa+jbsvBiQDq4yJSyIQ93TZ5llsezF +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/ca/1a6c36d84f0cd2a68a7d24fd8ed30e67bcd19de11bbda2a77cb2082e7a5b35a3_sk b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/ca/1a6c36d84f0cd2a68a7d24fd8ed30e67bcd19de11bbda2a77cb2082e7a5b35a3_sk new file mode 100644 index 00000000..cb01d101 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/ca/1a6c36d84f0cd2a68a7d24fd8ed30e67bcd19de11bbda2a77cb2082e7a5b35a3_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQg7c36crtb4WuKgcXg +7VsONERuMPwJuNcqV7FNX0BSWmihRANCAAQfyYDCaqSU1JJOSsjCy5RsGNsq+wre +Np4ubUMUg/SpQ7yqIZVgjnIM2609m3DgYV0HuaHcTbGFjGUN4Qz0XuBU +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/ca/3224118885392ce40143f2b5faf1888f4c93b589084971374772ad42f4c56f55_sk b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/ca/3224118885392ce40143f2b5faf1888f4c93b589084971374772ad42f4c56f55_sk new file mode 100644 index 00000000..9e283d0b --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/ca/3224118885392ce40143f2b5faf1888f4c93b589084971374772ad42f4c56f55_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgJtaN55ShC3HZWXoQ +h4+DIgZG7MZbtlZb0iH5sBBQftOhRANCAAQbQ+Yre0ZQMebLdnxHSU1VdsIMtt+b +wQHoPMkSiH1kAjjEIP6bi0kfIarrAAgvnnyeUthhM8sGWvZUzbnZWQyI +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/ca/6388390cde1d168e4c66aa239ab921949282c9b99dc5b1f9c6004e973ffc60f3_sk b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/ca/6388390cde1d168e4c66aa239ab921949282c9b99dc5b1f9c6004e973ffc60f3_sk new file mode 100644 index 00000000..b038f54d --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/ca/6388390cde1d168e4c66aa239ab921949282c9b99dc5b1f9c6004e973ffc60f3_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgvdNlirzzUd8jNsTx +ZRpu3qnGr4pDWMuVRrrzWSLseYihRANCAATo9uyjwfG0W26Lnkklg3L2AyQxC1e1 +ILh4MtmWkL7GKtHOdNUZ+xUSfKxEfPmSvD4ekibwSNrpKRUQhjiCX8BN +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/ca/804fc57602f69e768225b237ab26602bf1978685c71f21583dcae9b3a62758ff_sk b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/ca/804fc57602f69e768225b237ab26602bf1978685c71f21583dcae9b3a62758ff_sk new file mode 100644 index 00000000..61096153 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/ca/804fc57602f69e768225b237ab26602bf1978685c71f21583dcae9b3a62758ff_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgwb0r66od8ya0W1Fv +bsNnkR4a+bZnsQsC/ZsfgSBUMJahRANCAATjZAU3oxNN1IPmSiD3coNQjlL2lqKY +aKk/FE30mSNPDnXW3CoAyU4wfGFOBNy905//wDpw+oj1CMjDoupt6IQS +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/ca/b1d0f83ac5915cd8774189dff876c4b942f9150518a01c34168df3c46f8aeeaa_sk b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/ca/b1d0f83ac5915cd8774189dff876c4b942f9150518a01c34168df3c46f8aeeaa_sk new file mode 100644 index 00000000..8152e8c7 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/ca/b1d0f83ac5915cd8774189dff876c4b942f9150518a01c34168df3c46f8aeeaa_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgkwrCy39g97/e/FZQ +7qQh/xx16Itqwu6sb6BgAusvC1+hRANCAAQPPbd6A/GKoUatvyWF35oRi4rCyZXG +mlxS365TFJNF0KFuMYorLICCjJiR+WZ2y1eaye80nNAWp3fnQ0R44FK2 +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/ca/baeffd99c1b833afce692f862fafcece575172be9b56b234d4b5591c196863cf_sk b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/ca/baeffd99c1b833afce692f862fafcece575172be9b56b234d4b5591c196863cf_sk new file mode 100644 index 00000000..8e96f729 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/ca/baeffd99c1b833afce692f862fafcece575172be9b56b234d4b5591c196863cf_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQg7NWCZb7UKCrqnf8W +WFcxYi9+63RCRPgJFsEGGbNMCTahRANCAAQ7IMG8mauZdTXmUIEd2JXtWDqpqQ/e +z/kY7bdARfg1Z9pO87rmjVifZT5o/ETKOImEpHScAglhXbeXNquE+vi5 +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/ca/ca.org1.example.com-cert.pem b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/ca/ca.org1.example.com-cert.pem new file mode 100644 index 00000000..eab4ba80 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/ca/ca.org1.example.com-cert.pem @@ -0,0 +1,16 @@ +-----BEGIN CERTIFICATE----- +MIICczCCAhmgAwIBAgIRALLkmGdG9qXfMpajmgSQxyAwCgYIKoZIzj0EAwIwczEL +MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG +cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh +Lm9yZzEuZXhhbXBsZS5jb20wHhcNMTcwNzA1MDgxNTMxWhcNMjcwNzAzMDgxNTMx +WjBzMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN +U2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UE +AxMTY2Eub3JnMS5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IA +BDsgwbyZq5l1NeZQgR3Yle1YOqmpD97P+Rjtt0BF+DVn2k7zuuaNWJ9lPmj8RMo4 +iYSkdJwCCWFdt5c2q4T6+LmjgY0wgYowDgYDVR0PAQH/BAQDAgGmMA8GA1UdJQQI +MAYGBFUdJQAwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQguu/9mcG4M6/OaS+G +L6/OzldRcr6bVrI01LVZHBloY88wKwYDVR0jBCQwIoAguu/9mcG4M6/OaS+GL6/O +zldRcr6bVrI01LVZHBloY88wCgYIKoZIzj0EAwIDSAAwRQIhANdRx4iC/myF7zBx +UMpir8JI23ZrX7RcS4bfYPuziltjAiAP+MLoW4EKXDD9nwQt79pETUbOCsX+ih1W +5V1aDlUUYQ== +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/msp/admincerts/Admin@org1.example.com-cert.pem b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/msp/admincerts/Admin@org1.example.com-cert.pem new file mode 100644 index 00000000..5b66aaa5 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/msp/admincerts/Admin@org1.example.com-cert.pem @@ -0,0 +1,14 @@ +-----BEGIN CERTIFICATE----- +MIICGDCCAb+gAwIBAgIQEZLhgsFPlmQ28V6BupExgjAKBggqhkjOPQQDAjBzMQsw +CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy +YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu +b3JnMS5leGFtcGxlLmNvbTAeFw0xNzA3MDUwODE1MzFaFw0yNzA3MDMwODE1MzFa +MFsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T +YW4gRnJhbmNpc2NvMR8wHQYDVQQDDBZBZG1pbkBvcmcxLmV4YW1wbGUuY29tMFkw +EwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEVDmlX2myflN2w3USPSC9ZkMFLoC2Poc3 +Oo0AlzqXj3e+Pn9wRxHpCPaQtLkrwrniC/qrlGK31iX5ina8HwmEKKNNMEswDgYD +VR0PAQH/BAQDAgeAMAwGA1UdEwEB/wQCMAAwKwYDVR0jBCQwIoAguu/9mcG4M6/O +aS+GL6/OzldRcr6bVrI01LVZHBloY88wCgYIKoZIzj0EAwIDRwAwRAIgT/1sfYvA +tWJDuyFbENrki9AWPsfHCftUp3LbFliDr8oCIEBNzaV1YZLvc9DRJBthRsZhNu+S ++tyEvu8M9X0whmcS +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/msp/cacerts/ca.org1.example.com-cert.pem b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/msp/cacerts/ca.org1.example.com-cert.pem new file mode 100644 index 00000000..eab4ba80 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/msp/cacerts/ca.org1.example.com-cert.pem @@ -0,0 +1,16 @@ +-----BEGIN CERTIFICATE----- +MIICczCCAhmgAwIBAgIRALLkmGdG9qXfMpajmgSQxyAwCgYIKoZIzj0EAwIwczEL +MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG +cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh +Lm9yZzEuZXhhbXBsZS5jb20wHhcNMTcwNzA1MDgxNTMxWhcNMjcwNzAzMDgxNTMx +WjBzMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN +U2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UE +AxMTY2Eub3JnMS5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IA +BDsgwbyZq5l1NeZQgR3Yle1YOqmpD97P+Rjtt0BF+DVn2k7zuuaNWJ9lPmj8RMo4 +iYSkdJwCCWFdt5c2q4T6+LmjgY0wgYowDgYDVR0PAQH/BAQDAgGmMA8GA1UdJQQI +MAYGBFUdJQAwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQguu/9mcG4M6/OaS+G +L6/OzldRcr6bVrI01LVZHBloY88wKwYDVR0jBCQwIoAguu/9mcG4M6/OaS+GL6/O +zldRcr6bVrI01LVZHBloY88wCgYIKoZIzj0EAwIDSAAwRQIhANdRx4iC/myF7zBx +UMpir8JI23ZrX7RcS4bfYPuziltjAiAP+MLoW4EKXDD9nwQt79pETUbOCsX+ih1W +5V1aDlUUYQ== +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/msp/tlscacerts/tlsca.org1.example.com-cert.pem b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/msp/tlscacerts/tlsca.org1.example.com-cert.pem new file mode 100644 index 00000000..587491b7 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/msp/tlscacerts/tlsca.org1.example.com-cert.pem @@ -0,0 +1,16 @@ +-----BEGIN CERTIFICATE----- +MIICdzCCAh6gAwIBAgIQe4wX5wf4CoALoAzrAdb5DDAKBggqhkjOPQQDAjB2MQsw +CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy +YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0GA1UEAxMWdGxz +Y2Eub3JnMS5leGFtcGxlLmNvbTAeFw0xNzA3MDUwODE1MzFaFw0yNzA3MDMwODE1 +MzFaMHYxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQH +Ew1TYW4gRnJhbmNpc2NvMRkwFwYDVQQKExBvcmcxLmV4YW1wbGUuY29tMR8wHQYD +VQQDExZ0bHNjYS5vcmcxLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0D +AQcDQgAEE5ySZMKc36h6eHK+MaNEfg+xfeIUtMx2sgRq0t15gBl3NRuZdfgXGK83 +EjOY0ZWixImBisbjQay4wTDnNM6GbqOBjTCBijAOBgNVHQ8BAf8EBAMCAaYwDwYD +VR0lBAgwBgYEVR0lADAPBgNVHRMBAf8EBTADAQH/MCkGA1UdDgQiBCBL2bdp9s1J +TUSW7yXT9rKEzFea4uRcReHuXJUDyw3JfzArBgNVHSMEJDAigCBL2bdp9s1JTUSW +7yXT9rKEzFea4uRcReHuXJUDyw3JfzAKBggqhkjOPQQDAgNHADBEAiAR078wLDMU +jsf8BPOS5sqiIVHRWjmTSuoM6+0s9Wd6RAIgSQZ9Fk46JtA2OB8SRqejwKppbMIX +uClxmUgay+IytfI= +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/admincerts/Admin@org1.example.com-cert.pem b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/admincerts/Admin@org1.example.com-cert.pem new file mode 100644 index 00000000..5b66aaa5 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/admincerts/Admin@org1.example.com-cert.pem @@ -0,0 +1,14 @@ +-----BEGIN CERTIFICATE----- +MIICGDCCAb+gAwIBAgIQEZLhgsFPlmQ28V6BupExgjAKBggqhkjOPQQDAjBzMQsw +CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy +YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu +b3JnMS5leGFtcGxlLmNvbTAeFw0xNzA3MDUwODE1MzFaFw0yNzA3MDMwODE1MzFa +MFsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T +YW4gRnJhbmNpc2NvMR8wHQYDVQQDDBZBZG1pbkBvcmcxLmV4YW1wbGUuY29tMFkw +EwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEVDmlX2myflN2w3USPSC9ZkMFLoC2Poc3 +Oo0AlzqXj3e+Pn9wRxHpCPaQtLkrwrniC/qrlGK31iX5ina8HwmEKKNNMEswDgYD +VR0PAQH/BAQDAgeAMAwGA1UdEwEB/wQCMAAwKwYDVR0jBCQwIoAguu/9mcG4M6/O +aS+GL6/OzldRcr6bVrI01LVZHBloY88wCgYIKoZIzj0EAwIDRwAwRAIgT/1sfYvA +tWJDuyFbENrki9AWPsfHCftUp3LbFliDr8oCIEBNzaV1YZLvc9DRJBthRsZhNu+S ++tyEvu8M9X0whmcS +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/cacerts/ca.org1.example.com-cert.pem b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/cacerts/ca.org1.example.com-cert.pem new file mode 100644 index 00000000..eab4ba80 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/cacerts/ca.org1.example.com-cert.pem @@ -0,0 +1,16 @@ +-----BEGIN CERTIFICATE----- +MIICczCCAhmgAwIBAgIRALLkmGdG9qXfMpajmgSQxyAwCgYIKoZIzj0EAwIwczEL +MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG +cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh +Lm9yZzEuZXhhbXBsZS5jb20wHhcNMTcwNzA1MDgxNTMxWhcNMjcwNzAzMDgxNTMx +WjBzMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN +U2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UE +AxMTY2Eub3JnMS5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IA +BDsgwbyZq5l1NeZQgR3Yle1YOqmpD97P+Rjtt0BF+DVn2k7zuuaNWJ9lPmj8RMo4 +iYSkdJwCCWFdt5c2q4T6+LmjgY0wgYowDgYDVR0PAQH/BAQDAgGmMA8GA1UdJQQI +MAYGBFUdJQAwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQguu/9mcG4M6/OaS+G +L6/OzldRcr6bVrI01LVZHBloY88wKwYDVR0jBCQwIoAguu/9mcG4M6/OaS+GL6/O +zldRcr6bVrI01LVZHBloY88wCgYIKoZIzj0EAwIDSAAwRQIhANdRx4iC/myF7zBx +UMpir8JI23ZrX7RcS4bfYPuziltjAiAP+MLoW4EKXDD9nwQt79pETUbOCsX+ih1W +5V1aDlUUYQ== +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/keystore/16b31ccf7c48c13962b7f14a12438dbde51f40a8f1d61bd4731269bba470531d_sk b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/keystore/16b31ccf7c48c13962b7f14a12438dbde51f40a8f1d61bd4731269bba470531d_sk new file mode 100644 index 00000000..ee4f936d --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/keystore/16b31ccf7c48c13962b7f14a12438dbde51f40a8f1d61bd4731269bba470531d_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgKx4V/w4zICRRBDpg +JZJvYR3cskzeIXADSkQFKgjJlQihRANCAASUFyvo5qOfFhFWjMEDoz3wqaIAmlhy +miwp2kKT+IN10NgcT+XVxiESFyTJ1xEg6/Oji9T46Gk/iHkRGuqYGZ5E +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/keystore/91c49a763dff21a0e2021ed4b2a2b82a2c0cd9b0624693a00922f2ec5cd82a55_sk b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/keystore/91c49a763dff21a0e2021ed4b2a2b82a2c0cd9b0624693a00922f2ec5cd82a55_sk new file mode 100644 index 00000000..8feda371 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/keystore/91c49a763dff21a0e2021ed4b2a2b82a2c0cd9b0624693a00922f2ec5cd82a55_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgJCkobdA6L0bQSDhr +ZyrksUsjvl+p9ItMTcVVHqjnNPehRANCAAQvrc8WRPimKp3BLcj87H6FgWkw9eT3 +jqZgZTBntqKgtNtpNIDa2Y2X+vYyDtnYYEnrApKvpwRJ4FFT/K3+WUkE +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/keystore/ad22932ff75aff7c05a55fae56f0fdcbde054b857246752660a2fdd882e3df58_sk b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/keystore/ad22932ff75aff7c05a55fae56f0fdcbde054b857246752660a2fdd882e3df58_sk new file mode 100644 index 00000000..63b780d4 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/keystore/ad22932ff75aff7c05a55fae56f0fdcbde054b857246752660a2fdd882e3df58_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgOieiAQfovp3Js8o+ +b5CygYVJh/XTjLXV2/kgfXzxQmehRANCAASfR3Q4gBLmGc5XVcazI3Nm3f4nsv6p +LfD2MUShrqKDBpjXJ88l9HI2R0J6ZuARX2F/y/HypSkkklwNfW7SuSOx +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/keystore/b5e4bc8ea78e144bc0df31b5a2f1412cedd11247f43139b269818d9ae3a4f290_sk b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/keystore/b5e4bc8ea78e144bc0df31b5a2f1412cedd11247f43139b269818d9ae3a4f290_sk new file mode 100644 index 00000000..2f23cf36 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/keystore/b5e4bc8ea78e144bc0df31b5a2f1412cedd11247f43139b269818d9ae3a4f290_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgwn+eTlytHQG3qak9 +hUetKo+7+q69/Nx+4J6NHCsPxiKhRANCAAQfSMB9uVnsAqEQ/xTUW8cpGDoYJsuf +DoDvlVsLitLUo/2/UiF4v0wO+wI6UIqQKq4pTikBARvhaHmwM5WAws6H +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/keystore/e071f4b7d798f4f800d748378d4da08d6c09d1f2587f2ddd538ff40bd6c082bd_sk b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/keystore/e071f4b7d798f4f800d748378d4da08d6c09d1f2587f2ddd538ff40bd6c082bd_sk new file mode 100644 index 00000000..e5427d71 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/keystore/e071f4b7d798f4f800d748378d4da08d6c09d1f2587f2ddd538ff40bd6c082bd_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgoE/Ad5GErosUg1Ob +f8eoBTT7S3Rq43Dk4oksdEIKnwShRANCAAQqTYVJDtrU/ePWTZkLy40Ca0cAbf2K +sl8tXuhsyBWh8P07GKIBhsuCFMVU9EW8zB7idwtDg2vzC4Q5jl4oA72W +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/keystore/ffd8d60634fcb634d609aac9f4df02c38e163f4ee8f99960a18ef6dc6b2440e1_sk b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/keystore/ffd8d60634fcb634d609aac9f4df02c38e163f4ee8f99960a18ef6dc6b2440e1_sk new file mode 100644 index 00000000..123ea354 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/keystore/ffd8d60634fcb634d609aac9f4df02c38e163f4ee8f99960a18ef6dc6b2440e1_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgXaUTd2anFqLz9f+Q +2linfV0j26b5qNOk2E+5bh8WpwihRANCAATk5qmBeAryItlPtwsYwVHlLw7oVBG8 +s7ADbM3r52CTjuEo4T9uhaHlJME7uNM8m2xXuEL3F14xO/gcncdHrBqi +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/signcerts/peer0.org1.example.com-cert.pem b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/signcerts/peer0.org1.example.com-cert.pem new file mode 100644 index 00000000..a3abb6fc --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/signcerts/peer0.org1.example.com-cert.pem @@ -0,0 +1,14 @@ +-----BEGIN CERTIFICATE----- +MIICGTCCAb+gAwIBAgIQMwQ7hnzobXw0h/kvZfoEdzAKBggqhkjOPQQDAjBzMQsw +CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy +YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu +b3JnMS5leGFtcGxlLmNvbTAeFw0xNzA3MDUwODE1MzFaFw0yNzA3MDMwODE1MzFa +MFsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T +YW4gRnJhbmNpc2NvMR8wHQYDVQQDExZwZWVyMC5vcmcxLmV4YW1wbGUuY29tMFkw +EwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAElBcr6OajnxYRVozBA6M98KmiAJpYcpos +KdpCk/iDddDYHE/l1cYhEhckydcRIOvzo4vU+OhpP4h5ERrqmBmeRKNNMEswDgYD +VR0PAQH/BAQDAgeAMAwGA1UdEwEB/wQCMAAwKwYDVR0jBCQwIoAguu/9mcG4M6/O +aS+GL6/OzldRcr6bVrI01LVZHBloY88wCgYIKoZIzj0EAwIDSAAwRQIhANXbtj/J +EJs7VcGFTKPXuvRmvZMN1YeBwk34QO7AZs0FAiA090kFEvR4o3tXvCLpDoDrLYkU +oz/D/XEDw2m7ElWUaA== +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/tlscacerts/tlsca.org1.example.com-cert.pem b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/tlscacerts/tlsca.org1.example.com-cert.pem new file mode 100644 index 00000000..587491b7 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/tlscacerts/tlsca.org1.example.com-cert.pem @@ -0,0 +1,16 @@ +-----BEGIN CERTIFICATE----- +MIICdzCCAh6gAwIBAgIQe4wX5wf4CoALoAzrAdb5DDAKBggqhkjOPQQDAjB2MQsw +CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy +YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0GA1UEAxMWdGxz +Y2Eub3JnMS5leGFtcGxlLmNvbTAeFw0xNzA3MDUwODE1MzFaFw0yNzA3MDMwODE1 +MzFaMHYxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQH +Ew1TYW4gRnJhbmNpc2NvMRkwFwYDVQQKExBvcmcxLmV4YW1wbGUuY29tMR8wHQYD +VQQDExZ0bHNjYS5vcmcxLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0D +AQcDQgAEE5ySZMKc36h6eHK+MaNEfg+xfeIUtMx2sgRq0t15gBl3NRuZdfgXGK83 +EjOY0ZWixImBisbjQay4wTDnNM6GbqOBjTCBijAOBgNVHQ8BAf8EBAMCAaYwDwYD +VR0lBAgwBgYEVR0lADAPBgNVHRMBAf8EBTADAQH/MCkGA1UdDgQiBCBL2bdp9s1J +TUSW7yXT9rKEzFea4uRcReHuXJUDyw3JfzArBgNVHSMEJDAigCBL2bdp9s1JTUSW +7yXT9rKEzFea4uRcReHuXJUDyw3JfzAKBggqhkjOPQQDAgNHADBEAiAR078wLDMU +jsf8BPOS5sqiIVHRWjmTSuoM6+0s9Wd6RAIgSQZ9Fk46JtA2OB8SRqejwKppbMIX +uClxmUgay+IytfI= +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt new file mode 100644 index 00000000..587491b7 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt @@ -0,0 +1,16 @@ +-----BEGIN CERTIFICATE----- +MIICdzCCAh6gAwIBAgIQe4wX5wf4CoALoAzrAdb5DDAKBggqhkjOPQQDAjB2MQsw +CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy +YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0GA1UEAxMWdGxz +Y2Eub3JnMS5leGFtcGxlLmNvbTAeFw0xNzA3MDUwODE1MzFaFw0yNzA3MDMwODE1 +MzFaMHYxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQH +Ew1TYW4gRnJhbmNpc2NvMRkwFwYDVQQKExBvcmcxLmV4YW1wbGUuY29tMR8wHQYD +VQQDExZ0bHNjYS5vcmcxLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0D +AQcDQgAEE5ySZMKc36h6eHK+MaNEfg+xfeIUtMx2sgRq0t15gBl3NRuZdfgXGK83 +EjOY0ZWixImBisbjQay4wTDnNM6GbqOBjTCBijAOBgNVHQ8BAf8EBAMCAaYwDwYD +VR0lBAgwBgYEVR0lADAPBgNVHRMBAf8EBTADAQH/MCkGA1UdDgQiBCBL2bdp9s1J +TUSW7yXT9rKEzFea4uRcReHuXJUDyw3JfzArBgNVHSMEJDAigCBL2bdp9s1JTUSW +7yXT9rKEzFea4uRcReHuXJUDyw3JfzAKBggqhkjOPQQDAgNHADBEAiAR078wLDMU +jsf8BPOS5sqiIVHRWjmTSuoM6+0s9Wd6RAIgSQZ9Fk46JtA2OB8SRqejwKppbMIX +uClxmUgay+IytfI= +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/server.crt b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/server.crt new file mode 100644 index 00000000..7fc9ea9b --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/server.crt @@ -0,0 +1,15 @@ +-----BEGIN CERTIFICATE----- +MIICZzCCAg2gAwIBAgIQSzX49ODl2xroubwaUyFhFTAKBggqhkjOPQQDAjB2MQsw +CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy +YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0GA1UEAxMWdGxz +Y2Eub3JnMS5leGFtcGxlLmNvbTAeFw0xNzA3MDUwODE1MzFaFw0yNzA3MDMwODE1 +MzFaMFsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQH +Ew1TYW4gRnJhbmNpc2NvMR8wHQYDVQQDExZwZWVyMC5vcmcxLmV4YW1wbGUuY29t +MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEEIeBU7/nx94quQWlcOXqwZjCDvBi +r9FhcB75vfsAVhJ0WfVAw6a6eWmN8B37PV1feUFF1S50bjTULWIV/YxVE6OBlzCB +lDAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMC +MAwGA1UdEwEB/wQCMAAwKwYDVR0jBCQwIoAgS9m3afbNSU1Elu8l0/ayhMxXmuLk +XEXh7lyVA8sNyX8wKAYDVR0RBCEwH4IWcGVlcjAub3JnMS5leGFtcGxlLmNvbYIF +cGVlcjAwCgYIKoZIzj0EAwIDSAAwRQIhALOcPwUcMuOn5olRLczz9c/juxvVzHvt +hiH5mVhGIzymAiA58FylqDqwO+0p0Nv0m7Di+7uwY8qVVZxzXdd8tr3eqg== +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/server.key b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/server.key new file mode 100644 index 00000000..d6546211 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/server.key @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgDIDFKZdK/Isj/sJX +bwxML8mn5S8qQULMLYpxNvAC5iKhRANCAAQQh4FTv+fH3iq5BaVw5erBmMIO8GKv +0WFwHvm9+wBWEnRZ9UDDprp5aY3wHfs9XV95QUXVLnRuNNQtYhX9jFUT +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/msp/admincerts/Admin@org1.example.com-cert.pem b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/msp/admincerts/Admin@org1.example.com-cert.pem new file mode 100644 index 00000000..5b66aaa5 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/msp/admincerts/Admin@org1.example.com-cert.pem @@ -0,0 +1,14 @@ +-----BEGIN CERTIFICATE----- +MIICGDCCAb+gAwIBAgIQEZLhgsFPlmQ28V6BupExgjAKBggqhkjOPQQDAjBzMQsw +CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy +YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu +b3JnMS5leGFtcGxlLmNvbTAeFw0xNzA3MDUwODE1MzFaFw0yNzA3MDMwODE1MzFa +MFsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T +YW4gRnJhbmNpc2NvMR8wHQYDVQQDDBZBZG1pbkBvcmcxLmV4YW1wbGUuY29tMFkw +EwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEVDmlX2myflN2w3USPSC9ZkMFLoC2Poc3 +Oo0AlzqXj3e+Pn9wRxHpCPaQtLkrwrniC/qrlGK31iX5ina8HwmEKKNNMEswDgYD +VR0PAQH/BAQDAgeAMAwGA1UdEwEB/wQCMAAwKwYDVR0jBCQwIoAguu/9mcG4M6/O +aS+GL6/OzldRcr6bVrI01LVZHBloY88wCgYIKoZIzj0EAwIDRwAwRAIgT/1sfYvA +tWJDuyFbENrki9AWPsfHCftUp3LbFliDr8oCIEBNzaV1YZLvc9DRJBthRsZhNu+S ++tyEvu8M9X0whmcS +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/msp/cacerts/ca.org1.example.com-cert.pem b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/msp/cacerts/ca.org1.example.com-cert.pem new file mode 100644 index 00000000..eab4ba80 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/msp/cacerts/ca.org1.example.com-cert.pem @@ -0,0 +1,16 @@ +-----BEGIN CERTIFICATE----- +MIICczCCAhmgAwIBAgIRALLkmGdG9qXfMpajmgSQxyAwCgYIKoZIzj0EAwIwczEL +MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG +cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh +Lm9yZzEuZXhhbXBsZS5jb20wHhcNMTcwNzA1MDgxNTMxWhcNMjcwNzAzMDgxNTMx +WjBzMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN +U2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UE +AxMTY2Eub3JnMS5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IA +BDsgwbyZq5l1NeZQgR3Yle1YOqmpD97P+Rjtt0BF+DVn2k7zuuaNWJ9lPmj8RMo4 +iYSkdJwCCWFdt5c2q4T6+LmjgY0wgYowDgYDVR0PAQH/BAQDAgGmMA8GA1UdJQQI +MAYGBFUdJQAwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQguu/9mcG4M6/OaS+G +L6/OzldRcr6bVrI01LVZHBloY88wKwYDVR0jBCQwIoAguu/9mcG4M6/OaS+GL6/O +zldRcr6bVrI01LVZHBloY88wCgYIKoZIzj0EAwIDSAAwRQIhANdRx4iC/myF7zBx +UMpir8JI23ZrX7RcS4bfYPuziltjAiAP+MLoW4EKXDD9nwQt79pETUbOCsX+ih1W +5V1aDlUUYQ== +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/msp/keystore/5552770fb4c72c18986e3858cef49b656bdc3917ebc61266f6ded007f2688ad1_sk b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/msp/keystore/5552770fb4c72c18986e3858cef49b656bdc3917ebc61266f6ded007f2688ad1_sk new file mode 100644 index 00000000..c98e169d --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/msp/keystore/5552770fb4c72c18986e3858cef49b656bdc3917ebc61266f6ded007f2688ad1_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgEywZczPjd8f+Yhn/ +5NvE4VC8HNfuj9OesPz0Y5Ag2nuhRANCAATpS/Y+tZ/zaA0bfAMCB1UBT//80HF7 +/Y49KfoWlkKsIiPR0O2jlY75igax4Em0WejQ+l7v0o5lRP9kXcETCeDP +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/msp/keystore/6c1f47cf5a8cb400ed40649441385cdce95df9b07d6a5bbdbf13bc756cf55b0e_sk b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/msp/keystore/6c1f47cf5a8cb400ed40649441385cdce95df9b07d6a5bbdbf13bc756cf55b0e_sk new file mode 100644 index 00000000..bd5ef677 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/msp/keystore/6c1f47cf5a8cb400ed40649441385cdce95df9b07d6a5bbdbf13bc756cf55b0e_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQg57y9kwWUwE42ut2X ++DAqRb7O7Qkb2utdy7GfUNIlVOShRANCAATzGkDGoJVHUvGq+CMNXP87Av2mVAN/ +ga9R64P7EFNS73rAvCNx4eLGz9ob5hBznLTQ+TLzfMTzYmiW6YXDTzL+ +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/msp/keystore/89e91f55d8c510894d07f8096e3bd7a9e49c267e1e23051a4e432e8de254354d_sk b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/msp/keystore/89e91f55d8c510894d07f8096e3bd7a9e49c267e1e23051a4e432e8de254354d_sk new file mode 100644 index 00000000..a4e7bf25 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/msp/keystore/89e91f55d8c510894d07f8096e3bd7a9e49c267e1e23051a4e432e8de254354d_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgPCcP8LgZA2XVkzT2 +NFxnnRiUHKGCeRLkD5D0JbO3XEGhRANCAARzwmnb2KUPi3utknpjvDMq5P0f2jU9 ++QyH1LVUFO+aIwNXlc2zsBlGbSUWjQsJ47Nc4o07BB/8KcM8zxDKJj9c +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/msp/keystore/ba5e4f730728cb7786f388d8cdd933cb3979bdfed05b78ea62e75704870f1de0_sk b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/msp/keystore/ba5e4f730728cb7786f388d8cdd933cb3979bdfed05b78ea62e75704870f1de0_sk new file mode 100644 index 00000000..402c74ca --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/msp/keystore/ba5e4f730728cb7786f388d8cdd933cb3979bdfed05b78ea62e75704870f1de0_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgj413Zlun9qyhFXLY +wHwFyyIiZcCFvA8v4h5jjXEGv7GhRANCAASKmUIal4muz3XNMsakbeKNvslm9fmd +kZI/4KtS1oUajRt6DVqcXEu2v1R0Y28A6YRSJycR2dT+H4jcUWUmAWuD +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/msp/keystore/d7369ea2aec418078a9549c57ba3abe4cce67dd821dbf816a5dc905667ea49b0_sk b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/msp/keystore/d7369ea2aec418078a9549c57ba3abe4cce67dd821dbf816a5dc905667ea49b0_sk new file mode 100644 index 00000000..a49b3d42 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/msp/keystore/d7369ea2aec418078a9549c57ba3abe4cce67dd821dbf816a5dc905667ea49b0_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgSii/ltNcn5gN6Tmh +/MfAJI2y4rrSM62/rFKpWfB0viqhRANCAARqKofNPLXoKJivdrJ+JDU8dSIeuhdk +lst90Tj3xNJ9TrOgaFjIOf9XWdWy7F2AgPiDUJ3R60X8ijGCedwBO/bO +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/msp/keystore/ff07675acec312e91b04f68abf17f9b24dd2ea8fd290c37bdbe462bee5df5d4b_sk b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/msp/keystore/ff07675acec312e91b04f68abf17f9b24dd2ea8fd290c37bdbe462bee5df5d4b_sk new file mode 100644 index 00000000..71be511a --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/msp/keystore/ff07675acec312e91b04f68abf17f9b24dd2ea8fd290c37bdbe462bee5df5d4b_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgnS4VV+P6Wz8vHGr9 +wNcz7frKJS4kqZ4eV26sif+2ypihRANCAATz0OYBS4nWvdPFtTf2xscXn+ZnenRo +RXMYOtCBGnGGN/qAWp/J6dPnss0sDqP452bHQGmrT5+11u7KmNtW/Zg+ +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/msp/signcerts/peer1.org1.example.com-cert.pem b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/msp/signcerts/peer1.org1.example.com-cert.pem new file mode 100644 index 00000000..7a3e1dd9 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/msp/signcerts/peer1.org1.example.com-cert.pem @@ -0,0 +1,14 @@ +-----BEGIN CERTIFICATE----- +MIICGjCCAcCgAwIBAgIRANZX7ylHdbvE4Hn8U1RAkYgwCgYIKoZIzj0EAwIwczEL +MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG +cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh +Lm9yZzEuZXhhbXBsZS5jb20wHhcNMTcwNzA1MDgxNTMxWhcNMjcwNzAzMDgxNTMx +WjBbMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN +U2FuIEZyYW5jaXNjbzEfMB0GA1UEAxMWcGVlcjEub3JnMS5leGFtcGxlLmNvbTBZ +MBMGByqGSM49AgEGCCqGSM49AwEHA0IABHPCadvYpQ+Le62SemO8Myrk/R/aNT35 +DIfUtVQU75ojA1eVzbOwGUZtJRaNCwnjs1zijTsEH/wpwzzPEMomP1yjTTBLMA4G +A1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMCsGA1UdIwQkMCKAILrv/ZnBuDOv +zmkvhi+vzs5XUXK+m1ayNNS1WRwZaGPPMAoGCCqGSM49BAMCA0gAMEUCIQDesJzG +RQ7Mpdd23bv4QKswxOmx2xrpniXprgHGnhUnRgIgE/Egk1PI3c4DotQc9OIWjyo8 +vRAh8DrX06gZExcW2Vk= +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/msp/tlscacerts/tlsca.org1.example.com-cert.pem b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/msp/tlscacerts/tlsca.org1.example.com-cert.pem new file mode 100644 index 00000000..587491b7 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/msp/tlscacerts/tlsca.org1.example.com-cert.pem @@ -0,0 +1,16 @@ +-----BEGIN CERTIFICATE----- +MIICdzCCAh6gAwIBAgIQe4wX5wf4CoALoAzrAdb5DDAKBggqhkjOPQQDAjB2MQsw +CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy +YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0GA1UEAxMWdGxz +Y2Eub3JnMS5leGFtcGxlLmNvbTAeFw0xNzA3MDUwODE1MzFaFw0yNzA3MDMwODE1 +MzFaMHYxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQH +Ew1TYW4gRnJhbmNpc2NvMRkwFwYDVQQKExBvcmcxLmV4YW1wbGUuY29tMR8wHQYD +VQQDExZ0bHNjYS5vcmcxLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0D +AQcDQgAEE5ySZMKc36h6eHK+MaNEfg+xfeIUtMx2sgRq0t15gBl3NRuZdfgXGK83 +EjOY0ZWixImBisbjQay4wTDnNM6GbqOBjTCBijAOBgNVHQ8BAf8EBAMCAaYwDwYD +VR0lBAgwBgYEVR0lADAPBgNVHRMBAf8EBTADAQH/MCkGA1UdDgQiBCBL2bdp9s1J +TUSW7yXT9rKEzFea4uRcReHuXJUDyw3JfzArBgNVHSMEJDAigCBL2bdp9s1JTUSW +7yXT9rKEzFea4uRcReHuXJUDyw3JfzAKBggqhkjOPQQDAgNHADBEAiAR078wLDMU +jsf8BPOS5sqiIVHRWjmTSuoM6+0s9Wd6RAIgSQZ9Fk46JtA2OB8SRqejwKppbMIX +uClxmUgay+IytfI= +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/tls/ca.crt b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/tls/ca.crt new file mode 100644 index 00000000..587491b7 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/tls/ca.crt @@ -0,0 +1,16 @@ +-----BEGIN CERTIFICATE----- +MIICdzCCAh6gAwIBAgIQe4wX5wf4CoALoAzrAdb5DDAKBggqhkjOPQQDAjB2MQsw +CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy +YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0GA1UEAxMWdGxz +Y2Eub3JnMS5leGFtcGxlLmNvbTAeFw0xNzA3MDUwODE1MzFaFw0yNzA3MDMwODE1 +MzFaMHYxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQH +Ew1TYW4gRnJhbmNpc2NvMRkwFwYDVQQKExBvcmcxLmV4YW1wbGUuY29tMR8wHQYD +VQQDExZ0bHNjYS5vcmcxLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0D +AQcDQgAEE5ySZMKc36h6eHK+MaNEfg+xfeIUtMx2sgRq0t15gBl3NRuZdfgXGK83 +EjOY0ZWixImBisbjQay4wTDnNM6GbqOBjTCBijAOBgNVHQ8BAf8EBAMCAaYwDwYD +VR0lBAgwBgYEVR0lADAPBgNVHRMBAf8EBTADAQH/MCkGA1UdDgQiBCBL2bdp9s1J +TUSW7yXT9rKEzFea4uRcReHuXJUDyw3JfzArBgNVHSMEJDAigCBL2bdp9s1JTUSW +7yXT9rKEzFea4uRcReHuXJUDyw3JfzAKBggqhkjOPQQDAgNHADBEAiAR078wLDMU +jsf8BPOS5sqiIVHRWjmTSuoM6+0s9Wd6RAIgSQZ9Fk46JtA2OB8SRqejwKppbMIX +uClxmUgay+IytfI= +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/tls/server.crt b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/tls/server.crt new file mode 100644 index 00000000..7cf0f943 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/tls/server.crt @@ -0,0 +1,15 @@ +-----BEGIN CERTIFICATE----- +MIICZjCCAg2gAwIBAgIQe0DHI7wlu2gw34aCUiiqWjAKBggqhkjOPQQDAjB2MQsw +CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy +YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0GA1UEAxMWdGxz +Y2Eub3JnMS5leGFtcGxlLmNvbTAeFw0xNzA3MDUwODE1MzFaFw0yNzA3MDMwODE1 +MzFaMFsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQH +Ew1TYW4gRnJhbmNpc2NvMR8wHQYDVQQDExZwZWVyMS5vcmcxLmV4YW1wbGUuY29t +MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEXOMLCzxaCPpdrUU4TvslLiigXKjN +gptxdpeLB6Zq6QYRJG82/4oAmHCc7cpZceIaoBLsnRM0L3rpZCajkI03eqOBlzCB +lDAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMC +MAwGA1UdEwEB/wQCMAAwKwYDVR0jBCQwIoAgS9m3afbNSU1Elu8l0/ayhMxXmuLk +XEXh7lyVA8sNyX8wKAYDVR0RBCEwH4IWcGVlcjEub3JnMS5leGFtcGxlLmNvbYIF +cGVlcjEwCgYIKoZIzj0EAwIDRwAwRAIgbFZDiAuZsXALTk4q8hfg5LgIfNTiWWi5 +EExp0uwfurACIAlJo6+2h+hMd5VjmYTQWhxRjQOQKnnO9dp3S7kbqEX2 +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/tls/server.key b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/tls/server.key new file mode 100644 index 00000000..12d6c370 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/tls/server.key @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgDXxH4BlQJCabCqmO +CByVnoXpq3HgY1xDDaRl0bEHlPOhRANCAARc4wsLPFoI+l2tRThO+yUuKKBcqM2C +m3F2l4sHpmrpBhEkbzb/igCYcJztyllx4hqgEuydEzQveulkJqOQjTd6 +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/tlsca/03dd3eb3df361cb2b03b1b4d5c5f1ece6aefc6ccccc7c762e95608ae1e2fe1d7_sk b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/tlsca/03dd3eb3df361cb2b03b1b4d5c5f1ece6aefc6ccccc7c762e95608ae1e2fe1d7_sk new file mode 100644 index 00000000..8f109a93 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/tlsca/03dd3eb3df361cb2b03b1b4d5c5f1ece6aefc6ccccc7c762e95608ae1e2fe1d7_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgmPFdmTmGZ8UeFW0Q +uRY9/zbP8hdFfLIgKZ6MBJYpiIqhRANCAAQjVSVAq2oc+jP0ComTlm52xgPlH5fb +eBNK/rHoBAf7WhTOSKLbi6eniHw9yT6hKdHE04hjZc9e4GwemNRgz9/C +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/tlsca/4bd9b769f6cd494d4496ef25d3f6b284cc579ae2e45c45e1ee5c9503cb0dc97f_sk b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/tlsca/4bd9b769f6cd494d4496ef25d3f6b284cc579ae2e45c45e1ee5c9503cb0dc97f_sk new file mode 100644 index 00000000..dd4af70f --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/tlsca/4bd9b769f6cd494d4496ef25d3f6b284cc579ae2e45c45e1ee5c9503cb0dc97f_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgPebP+266lNZm5auS +8aT4W6djfTqPqqYvTEGVaXO1M02hRANCAAQTnJJkwpzfqHp4cr4xo0R+D7F94hS0 +zHayBGrS3XmAGXc1G5l1+BcYrzcSM5jRlaLEiYGKxuNBrLjBMOc0zoZu +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/tlsca/5801a6c74d8e058a619c662a2fc7d3fb4c66c4ef225f7ee1905ce3999937807b_sk b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/tlsca/5801a6c74d8e058a619c662a2fc7d3fb4c66c4ef225f7ee1905ce3999937807b_sk new file mode 100644 index 00000000..ed3ccacc --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/tlsca/5801a6c74d8e058a619c662a2fc7d3fb4c66c4ef225f7ee1905ce3999937807b_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgybCdrpuYg3cJHz5K +V0lQ6HYB7j+5OJc2Qf8Cjdpd+KKhRANCAAR5wJwkJ+v0XFD7ygYBcseVAETDnxZi +rfAZJ2rD4ul98Km2aDbOPweg1+lLrymEPtQa9SQO/LwaLc+4KfT1m1Zz +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/tlsca/60d8c53cfbb4a92636486e31516ac20f2e35eaf63956c39f0981aa3836acd9c1_sk b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/tlsca/60d8c53cfbb4a92636486e31516ac20f2e35eaf63956c39f0981aa3836acd9c1_sk new file mode 100644 index 00000000..40948c90 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/tlsca/60d8c53cfbb4a92636486e31516ac20f2e35eaf63956c39f0981aa3836acd9c1_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgz/X9v/1yfLzxZnqJ +3o0volKx7Z0FWBx4lEy5R+X+LXChRANCAAQZgn9S2v5HDaJPHqEFC8e8FJt1GkNu +ddzeO/mcb/PeT3Q+0gBvc98vq3AdUQDTQOl7e3EPSTDr/vCFae9GccSO +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/tlsca/6923935cc53f7df393ba29722169de5d5a4105393779db8db35efbc13a751a97_sk b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/tlsca/6923935cc53f7df393ba29722169de5d5a4105393779db8db35efbc13a751a97_sk new file mode 100644 index 00000000..921e2eee --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/tlsca/6923935cc53f7df393ba29722169de5d5a4105393779db8db35efbc13a751a97_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgXS2kckeKIis/2oDh +NT082T+dzHinzqrmptph1gzCaLShRANCAAQyd4wD31CH7vtR/2ckkBKQNRGuLZqQ +9XpTTi8BdwgL3EKYGGQzZ/sWsMRvuepGDWBozv88K33yUw0+crWkAzj0 +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/tlsca/dbd6d3532436cfa82c3befffe9c50260313a7b52b4eae8fc255aa7a7bfee45b2_sk b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/tlsca/dbd6d3532436cfa82c3befffe9c50260313a7b52b4eae8fc255aa7a7bfee45b2_sk new file mode 100644 index 00000000..88c671cc --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/tlsca/dbd6d3532436cfa82c3befffe9c50260313a7b52b4eae8fc255aa7a7bfee45b2_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgFSoZF002oiPVFiWx +JXdW1Hcpo3pzDWWZU7G+O8i92oihRANCAASanf5RZcTrNewnzuFdm6gezA3zcyvc +SttxYziPy0i5P0K9Oz1B4XE13pSy677VOvhWsSNDfqgDpXyixKeYq/MB +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/tlsca/tlsca.org1.example.com-cert.pem b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/tlsca/tlsca.org1.example.com-cert.pem new file mode 100644 index 00000000..587491b7 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/tlsca/tlsca.org1.example.com-cert.pem @@ -0,0 +1,16 @@ +-----BEGIN CERTIFICATE----- +MIICdzCCAh6gAwIBAgIQe4wX5wf4CoALoAzrAdb5DDAKBggqhkjOPQQDAjB2MQsw +CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy +YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0GA1UEAxMWdGxz +Y2Eub3JnMS5leGFtcGxlLmNvbTAeFw0xNzA3MDUwODE1MzFaFw0yNzA3MDMwODE1 +MzFaMHYxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQH +Ew1TYW4gRnJhbmNpc2NvMRkwFwYDVQQKExBvcmcxLmV4YW1wbGUuY29tMR8wHQYD +VQQDExZ0bHNjYS5vcmcxLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0D +AQcDQgAEE5ySZMKc36h6eHK+MaNEfg+xfeIUtMx2sgRq0t15gBl3NRuZdfgXGK83 +EjOY0ZWixImBisbjQay4wTDnNM6GbqOBjTCBijAOBgNVHQ8BAf8EBAMCAaYwDwYD +VR0lBAgwBgYEVR0lADAPBgNVHRMBAf8EBTADAQH/MCkGA1UdDgQiBCBL2bdp9s1J +TUSW7yXT9rKEzFea4uRcReHuXJUDyw3JfzArBgNVHSMEJDAigCBL2bdp9s1JTUSW +7yXT9rKEzFea4uRcReHuXJUDyw3JfzAKBggqhkjOPQQDAgNHADBEAiAR078wLDMU +jsf8BPOS5sqiIVHRWjmTSuoM6+0s9Wd6RAIgSQZ9Fk46JtA2OB8SRqejwKppbMIX +uClxmUgay+IytfI= +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/admincerts/Admin@org1.example.com-cert.pem b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/admincerts/Admin@org1.example.com-cert.pem new file mode 100644 index 00000000..5b66aaa5 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/admincerts/Admin@org1.example.com-cert.pem @@ -0,0 +1,14 @@ +-----BEGIN CERTIFICATE----- +MIICGDCCAb+gAwIBAgIQEZLhgsFPlmQ28V6BupExgjAKBggqhkjOPQQDAjBzMQsw +CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy +YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu +b3JnMS5leGFtcGxlLmNvbTAeFw0xNzA3MDUwODE1MzFaFw0yNzA3MDMwODE1MzFa +MFsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T +YW4gRnJhbmNpc2NvMR8wHQYDVQQDDBZBZG1pbkBvcmcxLmV4YW1wbGUuY29tMFkw +EwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEVDmlX2myflN2w3USPSC9ZkMFLoC2Poc3 +Oo0AlzqXj3e+Pn9wRxHpCPaQtLkrwrniC/qrlGK31iX5ina8HwmEKKNNMEswDgYD +VR0PAQH/BAQDAgeAMAwGA1UdEwEB/wQCMAAwKwYDVR0jBCQwIoAguu/9mcG4M6/O +aS+GL6/OzldRcr6bVrI01LVZHBloY88wCgYIKoZIzj0EAwIDRwAwRAIgT/1sfYvA +tWJDuyFbENrki9AWPsfHCftUp3LbFliDr8oCIEBNzaV1YZLvc9DRJBthRsZhNu+S ++tyEvu8M9X0whmcS +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/cacerts/ca.org1.example.com-cert.pem b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/cacerts/ca.org1.example.com-cert.pem new file mode 100644 index 00000000..eab4ba80 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/cacerts/ca.org1.example.com-cert.pem @@ -0,0 +1,16 @@ +-----BEGIN CERTIFICATE----- +MIICczCCAhmgAwIBAgIRALLkmGdG9qXfMpajmgSQxyAwCgYIKoZIzj0EAwIwczEL +MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG +cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh +Lm9yZzEuZXhhbXBsZS5jb20wHhcNMTcwNzA1MDgxNTMxWhcNMjcwNzAzMDgxNTMx +WjBzMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN +U2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UE +AxMTY2Eub3JnMS5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IA +BDsgwbyZq5l1NeZQgR3Yle1YOqmpD97P+Rjtt0BF+DVn2k7zuuaNWJ9lPmj8RMo4 +iYSkdJwCCWFdt5c2q4T6+LmjgY0wgYowDgYDVR0PAQH/BAQDAgGmMA8GA1UdJQQI +MAYGBFUdJQAwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQguu/9mcG4M6/OaS+G +L6/OzldRcr6bVrI01LVZHBloY88wKwYDVR0jBCQwIoAguu/9mcG4M6/OaS+GL6/O +zldRcr6bVrI01LVZHBloY88wCgYIKoZIzj0EAwIDSAAwRQIhANdRx4iC/myF7zBx +UMpir8JI23ZrX7RcS4bfYPuziltjAiAP+MLoW4EKXDD9nwQt79pETUbOCsX+ih1W +5V1aDlUUYQ== +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/keystore/2c0962bf85c470ea588f397819d7550b539eb9f09814cb05a9bf0a178c237124_sk b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/keystore/2c0962bf85c470ea588f397819d7550b539eb9f09814cb05a9bf0a178c237124_sk new file mode 100644 index 00000000..06a3c106 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/keystore/2c0962bf85c470ea588f397819d7550b539eb9f09814cb05a9bf0a178c237124_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgqXX4ckhUv+3WthJa +KhaWfK7VLpWKJz9iyBwmPvjSFiehRANCAASu2rc2NSc6sUynAInqrlzPtrx0yz0x +FqlCdUIBD6C5rHiOSyOmeTkmnAola4aW95Z7IbCM86uPeU5nMe8CJo9t +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/keystore/41e71f25ae5ee86c32c5e2ac6b8b17e25eae39e743018cb1d1c1f3bc171c64af_sk b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/keystore/41e71f25ae5ee86c32c5e2ac6b8b17e25eae39e743018cb1d1c1f3bc171c64af_sk new file mode 100644 index 00000000..6bed5aaa --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/keystore/41e71f25ae5ee86c32c5e2ac6b8b17e25eae39e743018cb1d1c1f3bc171c64af_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgZtlAVOGPm5IP5aH9 +2/MYqYG3vjVbRVorUR7mm2FAK/GhRANCAATqPW0BA9AL3ukX9CtxYjX31qbF93El +RrvrBejsbRtQ0hXRymfeao0dU/Z8aULdr9YpXhGVYlt7ilbGGrMEvIjT +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/keystore/4ab0ed1559ab1eaade2b606655110ab9d87cb20a3353e7a40befd6fea1655672_sk b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/keystore/4ab0ed1559ab1eaade2b606655110ab9d87cb20a3353e7a40befd6fea1655672_sk new file mode 100644 index 00000000..ef4fbb3d --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/keystore/4ab0ed1559ab1eaade2b606655110ab9d87cb20a3353e7a40befd6fea1655672_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgolFvyOC35/PlXqOT +MLvssU0vUe06gdu/eb+RsWvKLeyhRANCAARUOaVfabJ+U3bDdRI9IL1mQwUugLY+ +hzc6jQCXOpePd74+f3BHEekI9pC0uSvCueIL+quUYrfWJfmKdrwfCYQo +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/keystore/93fdae58f7d454e1e532855697b2c2fa42d6928b7a2b446d1e3f924e5d4a3254_sk b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/keystore/93fdae58f7d454e1e532855697b2c2fa42d6928b7a2b446d1e3f924e5d4a3254_sk new file mode 100644 index 00000000..d7bbd6fc --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/keystore/93fdae58f7d454e1e532855697b2c2fa42d6928b7a2b446d1e3f924e5d4a3254_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQguWiPYf1RMDZxdUV8 +DDuIPxDK+Z//rtu6+8rxqfDSLDihRANCAAQIOwGo0H0SyubQdX21FZ+tCd9hdEmw +nTQLunQ/ev+JBQJXV63aYdYnzHQuoSuQiijaeSwvHf6xEeZEHN2YShyr +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/keystore/d7dd76772f53f292152ee1a6100185a5c514160ca5920419a26bde3ca4c87ffd_sk b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/keystore/d7dd76772f53f292152ee1a6100185a5c514160ca5920419a26bde3ca4c87ffd_sk new file mode 100644 index 00000000..6193b214 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/keystore/d7dd76772f53f292152ee1a6100185a5c514160ca5920419a26bde3ca4c87ffd_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgx1qpmjCVNmtK6+8M +lDFzqPdul8A9QP/dpuSwTUdufnehRANCAARrcCNMq7dtdMNh3oiRhT/6mpCitTTW +16bneUyt+8PWp8/unYnREuWw+l74xx5A/a+th7WZnh18YQjDhSlQ7FUv +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/keystore/e68ec6bb62a3b154b14ec1f1c1d256a51e9b92762498c2f6384e2c81faa99485_sk b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/keystore/e68ec6bb62a3b154b14ec1f1c1d256a51e9b92762498c2f6384e2c81faa99485_sk new file mode 100644 index 00000000..84bc4635 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/keystore/e68ec6bb62a3b154b14ec1f1c1d256a51e9b92762498c2f6384e2c81faa99485_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgUeWTXmpPX0OQ4+qx +Si1gBFu7jK10T11FHBJ58r7Yn0WhRANCAARBqsePtNRPjq2/z7U6XICxJ8+PR57g +zB21t/M/l2RUaNWEP8ZbkcG5PeXoX9f1ej8dQnD073RCmYvF/kB+TNaf +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/signcerts/Admin@org1.example.com-cert.pem b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/signcerts/Admin@org1.example.com-cert.pem new file mode 100644 index 00000000..5b66aaa5 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/signcerts/Admin@org1.example.com-cert.pem @@ -0,0 +1,14 @@ +-----BEGIN CERTIFICATE----- +MIICGDCCAb+gAwIBAgIQEZLhgsFPlmQ28V6BupExgjAKBggqhkjOPQQDAjBzMQsw +CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy +YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu +b3JnMS5leGFtcGxlLmNvbTAeFw0xNzA3MDUwODE1MzFaFw0yNzA3MDMwODE1MzFa +MFsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T +YW4gRnJhbmNpc2NvMR8wHQYDVQQDDBZBZG1pbkBvcmcxLmV4YW1wbGUuY29tMFkw +EwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEVDmlX2myflN2w3USPSC9ZkMFLoC2Poc3 +Oo0AlzqXj3e+Pn9wRxHpCPaQtLkrwrniC/qrlGK31iX5ina8HwmEKKNNMEswDgYD +VR0PAQH/BAQDAgeAMAwGA1UdEwEB/wQCMAAwKwYDVR0jBCQwIoAguu/9mcG4M6/O +aS+GL6/OzldRcr6bVrI01LVZHBloY88wCgYIKoZIzj0EAwIDRwAwRAIgT/1sfYvA +tWJDuyFbENrki9AWPsfHCftUp3LbFliDr8oCIEBNzaV1YZLvc9DRJBthRsZhNu+S ++tyEvu8M9X0whmcS +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/tlscacerts/tlsca.org1.example.com-cert.pem b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/tlscacerts/tlsca.org1.example.com-cert.pem new file mode 100644 index 00000000..587491b7 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/tlscacerts/tlsca.org1.example.com-cert.pem @@ -0,0 +1,16 @@ +-----BEGIN CERTIFICATE----- +MIICdzCCAh6gAwIBAgIQe4wX5wf4CoALoAzrAdb5DDAKBggqhkjOPQQDAjB2MQsw +CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy +YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0GA1UEAxMWdGxz +Y2Eub3JnMS5leGFtcGxlLmNvbTAeFw0xNzA3MDUwODE1MzFaFw0yNzA3MDMwODE1 +MzFaMHYxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQH +Ew1TYW4gRnJhbmNpc2NvMRkwFwYDVQQKExBvcmcxLmV4YW1wbGUuY29tMR8wHQYD +VQQDExZ0bHNjYS5vcmcxLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0D +AQcDQgAEE5ySZMKc36h6eHK+MaNEfg+xfeIUtMx2sgRq0t15gBl3NRuZdfgXGK83 +EjOY0ZWixImBisbjQay4wTDnNM6GbqOBjTCBijAOBgNVHQ8BAf8EBAMCAaYwDwYD +VR0lBAgwBgYEVR0lADAPBgNVHRMBAf8EBTADAQH/MCkGA1UdDgQiBCBL2bdp9s1J +TUSW7yXT9rKEzFea4uRcReHuXJUDyw3JfzArBgNVHSMEJDAigCBL2bdp9s1JTUSW +7yXT9rKEzFea4uRcReHuXJUDyw3JfzAKBggqhkjOPQQDAgNHADBEAiAR078wLDMU +jsf8BPOS5sqiIVHRWjmTSuoM6+0s9Wd6RAIgSQZ9Fk46JtA2OB8SRqejwKppbMIX +uClxmUgay+IytfI= +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/tls/ca.crt b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/tls/ca.crt new file mode 100644 index 00000000..587491b7 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/tls/ca.crt @@ -0,0 +1,16 @@ +-----BEGIN CERTIFICATE----- +MIICdzCCAh6gAwIBAgIQe4wX5wf4CoALoAzrAdb5DDAKBggqhkjOPQQDAjB2MQsw +CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy +YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0GA1UEAxMWdGxz +Y2Eub3JnMS5leGFtcGxlLmNvbTAeFw0xNzA3MDUwODE1MzFaFw0yNzA3MDMwODE1 +MzFaMHYxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQH +Ew1TYW4gRnJhbmNpc2NvMRkwFwYDVQQKExBvcmcxLmV4YW1wbGUuY29tMR8wHQYD +VQQDExZ0bHNjYS5vcmcxLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0D +AQcDQgAEE5ySZMKc36h6eHK+MaNEfg+xfeIUtMx2sgRq0t15gBl3NRuZdfgXGK83 +EjOY0ZWixImBisbjQay4wTDnNM6GbqOBjTCBijAOBgNVHQ8BAf8EBAMCAaYwDwYD +VR0lBAgwBgYEVR0lADAPBgNVHRMBAf8EBTADAQH/MCkGA1UdDgQiBCBL2bdp9s1J +TUSW7yXT9rKEzFea4uRcReHuXJUDyw3JfzArBgNVHSMEJDAigCBL2bdp9s1JTUSW +7yXT9rKEzFea4uRcReHuXJUDyw3JfzAKBggqhkjOPQQDAgNHADBEAiAR078wLDMU +jsf8BPOS5sqiIVHRWjmTSuoM6+0s9Wd6RAIgSQZ9Fk46JtA2OB8SRqejwKppbMIX +uClxmUgay+IytfI= +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/tls/server.crt b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/tls/server.crt new file mode 100644 index 00000000..a9f26329 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/tls/server.crt @@ -0,0 +1,14 @@ +-----BEGIN CERTIFICATE----- +MIICPDCCAeKgAwIBAgIRAMv4BAsUcKJM9Nazxzuw+fEwCgYIKoZIzj0EAwIwdjEL +MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG +cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs +c2NhLm9yZzEuZXhhbXBsZS5jb20wHhcNMTcwNzA1MDgxNTMxWhcNMjcwNzAzMDgx +NTMxWjBbMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE +BxMNU2FuIEZyYW5jaXNjbzEfMB0GA1UEAwwWQWRtaW5Ab3JnMS5leGFtcGxlLmNv +bTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABJsr0QRlaSiaOp2P2g8/eAXPK0Kk +SeNrXjTicXlFcClxffnl266RVOZs0DNCnBP3+3YGrH/hNCKDrg3JsFY1r32jbDBq +MA4GA1UdDwEB/wQEAwIFoDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIw +DAYDVR0TAQH/BAIwADArBgNVHSMEJDAigCBL2bdp9s1JTUSW7yXT9rKEzFea4uRc +ReHuXJUDyw3JfzAKBggqhkjOPQQDAgNIADBFAiEApvvo+ccFFPLd3+PRpNrM9FQg +CPpRfB5kEsZ6y1KDu7ACIE3OYnO9hbDJyQsXZsXlntU4I9DD40F61MFCg5LNpBUM +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/tls/server.key b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/tls/server.key new file mode 100644 index 00000000..e741ff13 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/tls/server.key @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQg2G21Q8VUxp9tS4mi +uvuRKsP606ib3hjkE66U6UAKvFqhRANCAASbK9EEZWkomjqdj9oPP3gFzytCpEnj +a1404nF5RXApcX355duukVTmbNAzQpwT9/t2Bqx/4TQig64NybBWNa99 +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/admincerts/User1@org1.example.com-cert.pem b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/admincerts/User1@org1.example.com-cert.pem new file mode 100644 index 00000000..e2a37a17 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/admincerts/User1@org1.example.com-cert.pem @@ -0,0 +1,14 @@ +-----BEGIN CERTIFICATE----- +MIICGDCCAb+gAwIBAgIQQ7Awa4YxyBbg+rSsjfgVkzAKBggqhkjOPQQDAjBzMQsw +CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy +YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu +b3JnMS5leGFtcGxlLmNvbTAeFw0xNzA3MDUwODE1MzFaFw0yNzA3MDMwODE1MzFa +MFsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T +YW4gRnJhbmNpc2NvMR8wHQYDVQQDDBZVc2VyMUBvcmcxLmV4YW1wbGUuY29tMFkw +EwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEvXeU4b9HY8/TcENG8rO2K59lnnH01l3z +ax5V5wN72NdJEsPBnZszECswAndop+RsciavSEg/uU3IwOc4d0We4KNNMEswDgYD +VR0PAQH/BAQDAgeAMAwGA1UdEwEB/wQCMAAwKwYDVR0jBCQwIoAguu/9mcG4M6/O +aS+GL6/OzldRcr6bVrI01LVZHBloY88wCgYIKoZIzj0EAwIDRwAwRAIgKNkiUJPf +cch0b2pwxs0vkJFhpKkEQLQnCMGQsNDu/F4CIDEUTSxw2Gpfei+jIVWAF/WW4Abz +vmAcixJ6/pdkFSmL +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/cacerts/ca.org1.example.com-cert.pem b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/cacerts/ca.org1.example.com-cert.pem new file mode 100644 index 00000000..eab4ba80 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/cacerts/ca.org1.example.com-cert.pem @@ -0,0 +1,16 @@ +-----BEGIN CERTIFICATE----- +MIICczCCAhmgAwIBAgIRALLkmGdG9qXfMpajmgSQxyAwCgYIKoZIzj0EAwIwczEL +MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG +cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh +Lm9yZzEuZXhhbXBsZS5jb20wHhcNMTcwNzA1MDgxNTMxWhcNMjcwNzAzMDgxNTMx +WjBzMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN +U2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UE +AxMTY2Eub3JnMS5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IA +BDsgwbyZq5l1NeZQgR3Yle1YOqmpD97P+Rjtt0BF+DVn2k7zuuaNWJ9lPmj8RMo4 +iYSkdJwCCWFdt5c2q4T6+LmjgY0wgYowDgYDVR0PAQH/BAQDAgGmMA8GA1UdJQQI +MAYGBFUdJQAwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQguu/9mcG4M6/OaS+G +L6/OzldRcr6bVrI01LVZHBloY88wKwYDVR0jBCQwIoAguu/9mcG4M6/OaS+GL6/O +zldRcr6bVrI01LVZHBloY88wCgYIKoZIzj0EAwIDSAAwRQIhANdRx4iC/myF7zBx +UMpir8JI23ZrX7RcS4bfYPuziltjAiAP+MLoW4EKXDD9nwQt79pETUbOCsX+ih1W +5V1aDlUUYQ== +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/keystore/027cfe37ed1af52026377b8a466debbaa98b34a699be0a96df176396e57ead3e_sk b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/keystore/027cfe37ed1af52026377b8a466debbaa98b34a699be0a96df176396e57ead3e_sk new file mode 100644 index 00000000..d2a035f2 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/keystore/027cfe37ed1af52026377b8a466debbaa98b34a699be0a96df176396e57ead3e_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgWbe2uxv/N9F9j73y +GxCjTRP0cHGXh8AUDwDtCoC7tBOhRANCAATm1dUFB8vsRRossIlh2oq0Hg7v6LYy +ZFkExsfbN6Y3joLBLjpWVc0LmvOgF3WHSya3LguASHTW1yUoTm8THTyU +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/keystore/7c2cda80508c00a78065ded4fd0104dd51e9ecc028c8bc391ce06d4b19e78b83_sk b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/keystore/7c2cda80508c00a78065ded4fd0104dd51e9ecc028c8bc391ce06d4b19e78b83_sk new file mode 100644 index 00000000..8223c954 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/keystore/7c2cda80508c00a78065ded4fd0104dd51e9ecc028c8bc391ce06d4b19e78b83_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQg/9lsQ26I6GJMhuPG +Ub0pEknZoX7fVGO1JOV0Unggb6ahRANCAATeC0f5Ob/e343n2MNYYpHO0IjvAK7J +37lIzmvimm0NiHmeEEJ2v0tVXmpI+0rfyNjyuOW8HXiyEkyu6V9GahiF +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/keystore/973383c92351b301a2f11b67309ee742b23085d4493ead8327b090790b986f6c_sk b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/keystore/973383c92351b301a2f11b67309ee742b23085d4493ead8327b090790b986f6c_sk new file mode 100644 index 00000000..fb6fc353 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/keystore/973383c92351b301a2f11b67309ee742b23085d4493ead8327b090790b986f6c_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgvU+gff0bN9sCY6ar +pKGLaqZkyCp9Bs8Grlt5FNOaov6hRANCAASqw2Z45WMm0wd5yvGpYvuvWBo9XGtZ +Q5169xzSub7vvC9P6u1Alg5g1qoBGVoOFXTYICvhfANGEb8ta1mRIGn0 +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/keystore/9be95ba1e6b12122cbb797f535a260d2c7c83d9dcfd6c66887a6c7589ecc21a5_sk b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/keystore/9be95ba1e6b12122cbb797f535a260d2c7c83d9dcfd6c66887a6c7589ecc21a5_sk new file mode 100644 index 00000000..4d6a130b --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/keystore/9be95ba1e6b12122cbb797f535a260d2c7c83d9dcfd6c66887a6c7589ecc21a5_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQg+7esFamMTs8KzhO7 +hj9LHHc8JI+pmJqBM+MhmpbNxCyhRANCAAQxPXpW6RgmGQ11F6fqm5wEVKxJNUFA +1JS8H5OcFgPXvAOJEY/lb8Uh6wNgux7qWV2wPjOpzRBrnoLC4z64hFz7 +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/keystore/a9f743b2f929723b6352eed0657961ca40e4ab96eff6221f2ddd4a663f76de04_sk b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/keystore/a9f743b2f929723b6352eed0657961ca40e4ab96eff6221f2ddd4a663f76de04_sk new file mode 100644 index 00000000..5ab9e152 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/keystore/a9f743b2f929723b6352eed0657961ca40e4ab96eff6221f2ddd4a663f76de04_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgTMwAO+2XBtQCrP68 +iRQzfPbYH+FunM58WXh+1Rr+092hRANCAASQuSWPoyq9fxQ/Vno9o+Q+bLc3GAWP +zAn/n6wz/WWbuJtG+hX/3ey3h55/xlbXljFeKYihoIu7AIrDftUH8ARP +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/keystore/d8d10e43d1dc9a2ea8a351dacf6115af756846ba3c2ea9fba502bb8c3376032d_sk b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/keystore/d8d10e43d1dc9a2ea8a351dacf6115af756846ba3c2ea9fba502bb8c3376032d_sk new file mode 100644 index 00000000..05204a5a --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/keystore/d8d10e43d1dc9a2ea8a351dacf6115af756846ba3c2ea9fba502bb8c3376032d_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgt07Xn9JyR8sJRggb +5nGkrQ0SqiCS7LhTC9jjZwlv1UKhRANCAAS9d5Thv0djz9NwQ0bys7Yrn2WecfTW +XfNrHlXnA3vY10kSw8GdmzMQKzACd2in5GxyJq9ISD+5TcjA5zh3RZ7g +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/signcerts/User1@org1.example.com-cert.pem b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/signcerts/User1@org1.example.com-cert.pem new file mode 100644 index 00000000..e2a37a17 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/signcerts/User1@org1.example.com-cert.pem @@ -0,0 +1,14 @@ +-----BEGIN CERTIFICATE----- +MIICGDCCAb+gAwIBAgIQQ7Awa4YxyBbg+rSsjfgVkzAKBggqhkjOPQQDAjBzMQsw +CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy +YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu +b3JnMS5leGFtcGxlLmNvbTAeFw0xNzA3MDUwODE1MzFaFw0yNzA3MDMwODE1MzFa +MFsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T +YW4gRnJhbmNpc2NvMR8wHQYDVQQDDBZVc2VyMUBvcmcxLmV4YW1wbGUuY29tMFkw +EwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEvXeU4b9HY8/TcENG8rO2K59lnnH01l3z +ax5V5wN72NdJEsPBnZszECswAndop+RsciavSEg/uU3IwOc4d0We4KNNMEswDgYD +VR0PAQH/BAQDAgeAMAwGA1UdEwEB/wQCMAAwKwYDVR0jBCQwIoAguu/9mcG4M6/O +aS+GL6/OzldRcr6bVrI01LVZHBloY88wCgYIKoZIzj0EAwIDRwAwRAIgKNkiUJPf +cch0b2pwxs0vkJFhpKkEQLQnCMGQsNDu/F4CIDEUTSxw2Gpfei+jIVWAF/WW4Abz +vmAcixJ6/pdkFSmL +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/tlscacerts/tlsca.org1.example.com-cert.pem b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/tlscacerts/tlsca.org1.example.com-cert.pem new file mode 100644 index 00000000..587491b7 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/tlscacerts/tlsca.org1.example.com-cert.pem @@ -0,0 +1,16 @@ +-----BEGIN CERTIFICATE----- +MIICdzCCAh6gAwIBAgIQe4wX5wf4CoALoAzrAdb5DDAKBggqhkjOPQQDAjB2MQsw +CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy +YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0GA1UEAxMWdGxz +Y2Eub3JnMS5leGFtcGxlLmNvbTAeFw0xNzA3MDUwODE1MzFaFw0yNzA3MDMwODE1 +MzFaMHYxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQH +Ew1TYW4gRnJhbmNpc2NvMRkwFwYDVQQKExBvcmcxLmV4YW1wbGUuY29tMR8wHQYD +VQQDExZ0bHNjYS5vcmcxLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0D +AQcDQgAEE5ySZMKc36h6eHK+MaNEfg+xfeIUtMx2sgRq0t15gBl3NRuZdfgXGK83 +EjOY0ZWixImBisbjQay4wTDnNM6GbqOBjTCBijAOBgNVHQ8BAf8EBAMCAaYwDwYD +VR0lBAgwBgYEVR0lADAPBgNVHRMBAf8EBTADAQH/MCkGA1UdDgQiBCBL2bdp9s1J +TUSW7yXT9rKEzFea4uRcReHuXJUDyw3JfzArBgNVHSMEJDAigCBL2bdp9s1JTUSW +7yXT9rKEzFea4uRcReHuXJUDyw3JfzAKBggqhkjOPQQDAgNHADBEAiAR078wLDMU +jsf8BPOS5sqiIVHRWjmTSuoM6+0s9Wd6RAIgSQZ9Fk46JtA2OB8SRqejwKppbMIX +uClxmUgay+IytfI= +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/tls/ca.crt b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/tls/ca.crt new file mode 100644 index 00000000..587491b7 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/tls/ca.crt @@ -0,0 +1,16 @@ +-----BEGIN CERTIFICATE----- +MIICdzCCAh6gAwIBAgIQe4wX5wf4CoALoAzrAdb5DDAKBggqhkjOPQQDAjB2MQsw +CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy +YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0GA1UEAxMWdGxz +Y2Eub3JnMS5leGFtcGxlLmNvbTAeFw0xNzA3MDUwODE1MzFaFw0yNzA3MDMwODE1 +MzFaMHYxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQH +Ew1TYW4gRnJhbmNpc2NvMRkwFwYDVQQKExBvcmcxLmV4YW1wbGUuY29tMR8wHQYD +VQQDExZ0bHNjYS5vcmcxLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0D +AQcDQgAEE5ySZMKc36h6eHK+MaNEfg+xfeIUtMx2sgRq0t15gBl3NRuZdfgXGK83 +EjOY0ZWixImBisbjQay4wTDnNM6GbqOBjTCBijAOBgNVHQ8BAf8EBAMCAaYwDwYD +VR0lBAgwBgYEVR0lADAPBgNVHRMBAf8EBTADAQH/MCkGA1UdDgQiBCBL2bdp9s1J +TUSW7yXT9rKEzFea4uRcReHuXJUDyw3JfzArBgNVHSMEJDAigCBL2bdp9s1JTUSW +7yXT9rKEzFea4uRcReHuXJUDyw3JfzAKBggqhkjOPQQDAgNHADBEAiAR078wLDMU +jsf8BPOS5sqiIVHRWjmTSuoM6+0s9Wd6RAIgSQZ9Fk46JtA2OB8SRqejwKppbMIX +uClxmUgay+IytfI= +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/tls/server.crt b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/tls/server.crt new file mode 100644 index 00000000..b85ee919 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/tls/server.crt @@ -0,0 +1,14 @@ +-----BEGIN CERTIFICATE----- +MIICOjCCAeGgAwIBAgIQVMjqO9SOVMouWsSuNKZirDAKBggqhkjOPQQDAjB2MQsw +CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy +YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0GA1UEAxMWdGxz +Y2Eub3JnMS5leGFtcGxlLmNvbTAeFw0xNzA3MDUwODE1MzFaFw0yNzA3MDMwODE1 +MzFaMFsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQH +Ew1TYW4gRnJhbmNpc2NvMR8wHQYDVQQDDBZVc2VyMUBvcmcxLmV4YW1wbGUuY29t +MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEHgOH+avWEtRbjVjlRHQvWrKdxSuv +X7IXzI7T312N2OKqbxcRRDorKYFZaCt2qS86YX+2Mbf2j6Qp6a1968HqZ6NsMGow +DgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAM +BgNVHRMBAf8EAjAAMCsGA1UdIwQkMCKAIEvZt2n2zUlNRJbvJdP2soTMV5ri5FxF +4e5clQPLDcl/MAoGCCqGSM49BAMCA0cAMEQCIE5R6iBp7p64fhtJgfDNM8QHxpjL +iT+vp6/WEeMz1U/cAiA0ZOB/bw2QSuDXTFyKfT3jxQAfTR+2wU+9fmeBA8kOaA== +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/tls/server.key b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/tls/server.key new file mode 100644 index 00000000..d97b6d5f --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/tls/server.key @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQglPOLabdkYqEc5ohr +QXdBr/ACNT1GpUpL8qDucOqD8qGhRANCAAQeA4f5q9YS1FuNWOVEdC9asp3FK69f +shfMjtPfXY3Y4qpvFxFEOispgVloK3apLzphf7Yxt/aPpCnprX3rwepn +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/ca/13eebb6fd3b0093ba26645db1bd48380bf99d888571aa67759d7c8e03a1619ff_sk b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/ca/13eebb6fd3b0093ba26645db1bd48380bf99d888571aa67759d7c8e03a1619ff_sk new file mode 100644 index 00000000..57a07241 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/ca/13eebb6fd3b0093ba26645db1bd48380bf99d888571aa67759d7c8e03a1619ff_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQg5YwMfmPermkNVTIs +HMSpgtavF/gVuSbDgh19v+E1lbehRANCAAS0SGCxMIH3+GsV4S0RO6XV3tMZ+ZPn +yHrVS9aMD9fBHUgpwAAwePkKMPseE23o62kIjqFK+y6mjiBLpXiqFgg7 +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/ca/31f411e5c8e7b4f097e8e768483361f02edc8e7e3d885bd812d808872f856e37_sk b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/ca/31f411e5c8e7b4f097e8e768483361f02edc8e7e3d885bd812d808872f856e37_sk new file mode 100644 index 00000000..213ba82e --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/ca/31f411e5c8e7b4f097e8e768483361f02edc8e7e3d885bd812d808872f856e37_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgrrOroJJGC0w9Z8LS ++ifqH6Imk6ykIhDYX7JlcD6JWbihRANCAARzyMZ3pCCDKbsOMqDB+q8a6R+XFQ30 +IkAv733qj4ds1igQbg2VjkrgzAWxdQhSQCRkecYmgcMQODwFiKgALjjj +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/ca/41e2a9fe773818dbab4fde8b592407e86f372cd6742491c5af3a47fd46a66a5b_sk b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/ca/41e2a9fe773818dbab4fde8b592407e86f372cd6742491c5af3a47fd46a66a5b_sk new file mode 100644 index 00000000..696e2cc1 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/ca/41e2a9fe773818dbab4fde8b592407e86f372cd6742491c5af3a47fd46a66a5b_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgBJSMy9VE9OmzZo0Y +HKs4/qUwMbIhn1deuHhcmKSTS7OhRANCAAQDKN7BiAY7IYSJwVH8G8y1ccttSute ++bh7VbMoTNvfY4kWxiBZwQ1yxTXXCr0u1qU4dDYskfI20Xt1XLCg7w/b +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/ca/7992a74fa71a0ab2f566af954622a7f598afd6d7b045b736a9b75d235649d9ac_sk b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/ca/7992a74fa71a0ab2f566af954622a7f598afd6d7b045b736a9b75d235649d9ac_sk new file mode 100644 index 00000000..04eb2edb --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/ca/7992a74fa71a0ab2f566af954622a7f598afd6d7b045b736a9b75d235649d9ac_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQg9WLeikOCs2UiBg9a +vlYgFxkNchqVpiCeE3pOs9sVY1ihRANCAATC0n97jrrJFHd9TI9Z+0/UzgrTCRi0 +DdpU8HUYzKMxOMqiylzWTxVTi4mBAGgA8ctFtOyqw7JCIeq3URtw4QMu +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/ca/ca.org2.example.com-cert.pem b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/ca/ca.org2.example.com-cert.pem new file mode 100644 index 00000000..590fd3f2 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/ca/ca.org2.example.com-cert.pem @@ -0,0 +1,16 @@ +-----BEGIN CERTIFICATE----- +MIICcjCCAhmgAwIBAgIRAIUjWxLE18DferUxStTgTCUwCgYIKoZIzj0EAwIwczEL +MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG +cmFuY2lzY28xGTAXBgNVBAoTEG9yZzIuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh +Lm9yZzIuZXhhbXBsZS5jb20wHhcNMTcwNzA1MDgxNTMxWhcNMjcwNzAzMDgxNTMx +WjBzMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN +U2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEcMBoGA1UE +AxMTY2Eub3JnMi5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IA +BHPIxnekIIMpuw4yoMH6rxrpH5cVDfQiQC/vfeqPh2zWKBBuDZWOSuDMBbF1CFJA +JGR5xiaBwxA4PAWIqAAuOOOjgY0wgYowDgYDVR0PAQH/BAQDAgGmMA8GA1UdJQQI +MAYGBFUdJQAwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQgMfQR5cjntPCX6Odo +SDNh8C7cjn49iFvYEtgIhy+FbjcwKwYDVR0jBCQwIoAgMfQR5cjntPCX6OdoSDNh +8C7cjn49iFvYEtgIhy+FbjcwCgYIKoZIzj0EAwIDRwAwRAIgOOMOvP/UHhCA7euC +iAu2/WjbPIy3ZK73WZ65LWDOPTwCIEhnzZQ74LeorWJt4E2aVOyJAVZHuBGiyGpr +S5X6Vbho +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/ca/ca98b925d273f4b5ce01b4436a4ced7c0996c47edd0f42bdf508d5ed5348c7ec_sk b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/ca/ca98b925d273f4b5ce01b4436a4ced7c0996c47edd0f42bdf508d5ed5348c7ec_sk new file mode 100644 index 00000000..51fe933b --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/ca/ca98b925d273f4b5ce01b4436a4ced7c0996c47edd0f42bdf508d5ed5348c7ec_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgOHB9osV3b88lLfOk +v/t3Mp0RXMh3PVWkmImfBKYhWLahRANCAARW2kmqk2VZAx/rslOr9YuqYS991mNj +MXUE1ywR0iGL0A7zQYFjddG+UibyKQnaOe9fNg7EiItrhSm9hvztwEBQ +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/ca/ea38f43dad0f3fefa6a474fc57f9479ecd41a4b48fe03a1a7ae1a367ee15ef26_sk b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/ca/ea38f43dad0f3fefa6a474fc57f9479ecd41a4b48fe03a1a7ae1a367ee15ef26_sk new file mode 100644 index 00000000..9f07a56f --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/ca/ea38f43dad0f3fefa6a474fc57f9479ecd41a4b48fe03a1a7ae1a367ee15ef26_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQg/OVIO5ZX7J59spvw +S1oiPBph2m0ezdVkSv1SP4NVJDmhRANCAATywNRdnD4iBl9cXukhp9tU3gKHl+qH +F70m7KVwz8IQaG0OfhnOcFUnEs5uO914n4G0XOTyFSspEK64vqDhE1ga +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/msp/admincerts/Admin@org2.example.com-cert.pem b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/msp/admincerts/Admin@org2.example.com-cert.pem new file mode 100644 index 00000000..b70ca187 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/msp/admincerts/Admin@org2.example.com-cert.pem @@ -0,0 +1,14 @@ +-----BEGIN CERTIFICATE----- +MIICGTCCAcCgAwIBAgIRALMymsDtuWCsftJ+qUhfPOAwCgYIKoZIzj0EAwIwczEL +MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG +cmFuY2lzY28xGTAXBgNVBAoTEG9yZzIuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh +Lm9yZzIuZXhhbXBsZS5jb20wHhcNMTcwNzA1MDgxNTMxWhcNMjcwNzAzMDgxNTMx +WjBbMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN +U2FuIEZyYW5jaXNjbzEfMB0GA1UEAwwWQWRtaW5Ab3JnMi5leGFtcGxlLmNvbTBZ +MBMGByqGSM49AgEGCCqGSM49AwEHA0IABPlHOAwteyrQzAbhgFx1diIbhw7k9re6 +cexDwpENO1ujgWb9NqyP4tOBNp78kXV0aQEmViLYE9o7iFFsPoDjcmijTTBLMA4G +A1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMCsGA1UdIwQkMCKAIDH0EeXI57Tw +l+jnaEgzYfAu3I5+PYhb2BLYCIcvhW43MAoGCCqGSM49BAMCA0cAMEQCIC73AGge +KO5tSMnWr/pk3CwMrmsmm9kFjwKwV51h471YAiB4ArXOrRAgUGOTLS0z/B36TYfc +NO0i3LMPrjA8OIdTjg== +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/msp/cacerts/ca.org2.example.com-cert.pem b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/msp/cacerts/ca.org2.example.com-cert.pem new file mode 100644 index 00000000..590fd3f2 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/msp/cacerts/ca.org2.example.com-cert.pem @@ -0,0 +1,16 @@ +-----BEGIN CERTIFICATE----- +MIICcjCCAhmgAwIBAgIRAIUjWxLE18DferUxStTgTCUwCgYIKoZIzj0EAwIwczEL +MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG +cmFuY2lzY28xGTAXBgNVBAoTEG9yZzIuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh +Lm9yZzIuZXhhbXBsZS5jb20wHhcNMTcwNzA1MDgxNTMxWhcNMjcwNzAzMDgxNTMx +WjBzMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN +U2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEcMBoGA1UE +AxMTY2Eub3JnMi5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IA +BHPIxnekIIMpuw4yoMH6rxrpH5cVDfQiQC/vfeqPh2zWKBBuDZWOSuDMBbF1CFJA +JGR5xiaBwxA4PAWIqAAuOOOjgY0wgYowDgYDVR0PAQH/BAQDAgGmMA8GA1UdJQQI +MAYGBFUdJQAwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQgMfQR5cjntPCX6Odo +SDNh8C7cjn49iFvYEtgIhy+FbjcwKwYDVR0jBCQwIoAgMfQR5cjntPCX6OdoSDNh +8C7cjn49iFvYEtgIhy+FbjcwCgYIKoZIzj0EAwIDRwAwRAIgOOMOvP/UHhCA7euC +iAu2/WjbPIy3ZK73WZ65LWDOPTwCIEhnzZQ74LeorWJt4E2aVOyJAVZHuBGiyGpr +S5X6Vbho +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/msp/tlscacerts/tlsca.org2.example.com-cert.pem b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/msp/tlscacerts/tlsca.org2.example.com-cert.pem new file mode 100644 index 00000000..b5e00ed7 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/msp/tlscacerts/tlsca.org2.example.com-cert.pem @@ -0,0 +1,16 @@ +-----BEGIN CERTIFICATE----- +MIICeTCCAh+gAwIBAgIRAKxhO5bR4Ss/UDDtklVz+4gwCgYIKoZIzj0EAwIwdjEL +MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG +cmFuY2lzY28xGTAXBgNVBAoTEG9yZzIuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs +c2NhLm9yZzIuZXhhbXBsZS5jb20wHhcNMTcwNzA1MDgxNTMxWhcNMjcwNzAzMDgx +NTMxWjB2MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE +BxMNU2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEfMB0G +A1UEAxMWdGxzY2Eub3JnMi5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49 +AwEHA0IABLrxVsbattDPPvwywR6JFzLcoU7/qVNL7lqV2JHaRjxQbqty3u2Vyzic +Fp9jV9cu7p+nfE4BnxPDuJNIrJ3lmDyjgY0wgYowDgYDVR0PAQH/BAQDAgGmMA8G +A1UdJQQIMAYGBFUdJQAwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQg6Gy2skhU +SXiaBT9mwHRTF76XYo4iSH71etZR2a+yvCkwKwYDVR0jBCQwIoAg6Gy2skhUSXia +BT9mwHRTF76XYo4iSH71etZR2a+yvCkwCgYIKoZIzj0EAwIDSAAwRQIhAN/IoUpA +bgTHhs5wYbFekntfWTLupHjGFezRbH6ZzUr4AiBQzhjMjvothNtosHHil39EwI7B +1VhAic7t1UOllpJ1tQ== +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/msp/admincerts/Admin@org2.example.com-cert.pem b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/msp/admincerts/Admin@org2.example.com-cert.pem new file mode 100644 index 00000000..b70ca187 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/msp/admincerts/Admin@org2.example.com-cert.pem @@ -0,0 +1,14 @@ +-----BEGIN CERTIFICATE----- +MIICGTCCAcCgAwIBAgIRALMymsDtuWCsftJ+qUhfPOAwCgYIKoZIzj0EAwIwczEL +MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG +cmFuY2lzY28xGTAXBgNVBAoTEG9yZzIuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh +Lm9yZzIuZXhhbXBsZS5jb20wHhcNMTcwNzA1MDgxNTMxWhcNMjcwNzAzMDgxNTMx +WjBbMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN +U2FuIEZyYW5jaXNjbzEfMB0GA1UEAwwWQWRtaW5Ab3JnMi5leGFtcGxlLmNvbTBZ +MBMGByqGSM49AgEGCCqGSM49AwEHA0IABPlHOAwteyrQzAbhgFx1diIbhw7k9re6 +cexDwpENO1ujgWb9NqyP4tOBNp78kXV0aQEmViLYE9o7iFFsPoDjcmijTTBLMA4G +A1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMCsGA1UdIwQkMCKAIDH0EeXI57Tw +l+jnaEgzYfAu3I5+PYhb2BLYCIcvhW43MAoGCCqGSM49BAMCA0cAMEQCIC73AGge +KO5tSMnWr/pk3CwMrmsmm9kFjwKwV51h471YAiB4ArXOrRAgUGOTLS0z/B36TYfc +NO0i3LMPrjA8OIdTjg== +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/msp/cacerts/ca.org2.example.com-cert.pem b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/msp/cacerts/ca.org2.example.com-cert.pem new file mode 100644 index 00000000..590fd3f2 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/msp/cacerts/ca.org2.example.com-cert.pem @@ -0,0 +1,16 @@ +-----BEGIN CERTIFICATE----- +MIICcjCCAhmgAwIBAgIRAIUjWxLE18DferUxStTgTCUwCgYIKoZIzj0EAwIwczEL +MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG +cmFuY2lzY28xGTAXBgNVBAoTEG9yZzIuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh +Lm9yZzIuZXhhbXBsZS5jb20wHhcNMTcwNzA1MDgxNTMxWhcNMjcwNzAzMDgxNTMx +WjBzMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN +U2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEcMBoGA1UE +AxMTY2Eub3JnMi5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IA +BHPIxnekIIMpuw4yoMH6rxrpH5cVDfQiQC/vfeqPh2zWKBBuDZWOSuDMBbF1CFJA +JGR5xiaBwxA4PAWIqAAuOOOjgY0wgYowDgYDVR0PAQH/BAQDAgGmMA8GA1UdJQQI +MAYGBFUdJQAwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQgMfQR5cjntPCX6Odo +SDNh8C7cjn49iFvYEtgIhy+FbjcwKwYDVR0jBCQwIoAgMfQR5cjntPCX6OdoSDNh +8C7cjn49iFvYEtgIhy+FbjcwCgYIKoZIzj0EAwIDRwAwRAIgOOMOvP/UHhCA7euC +iAu2/WjbPIy3ZK73WZ65LWDOPTwCIEhnzZQ74LeorWJt4E2aVOyJAVZHuBGiyGpr +S5X6Vbho +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/msp/keystore/06d545ce32b8d9082632e0b45eecd63aef26ed776ea6a7b559f2e9bd4c75f3de_sk b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/msp/keystore/06d545ce32b8d9082632e0b45eecd63aef26ed776ea6a7b559f2e9bd4c75f3de_sk new file mode 100644 index 00000000..c177eb1c --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/msp/keystore/06d545ce32b8d9082632e0b45eecd63aef26ed776ea6a7b559f2e9bd4c75f3de_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQg7dOrq7dCrwrDX06J +NJpGheSOpGXm0ALn+KshZafFok6hRANCAAR5/6RUPSkNnj/M34Q6rkB5FgaIemR6 +39uP+w9EwYbq92hECr4ty7zZ8kvgLR2bITHIobD4PlzITNK8eQiCFe0l +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/msp/keystore/4e4c930524bc57d68846dff168e246ddea6166e2abda7a610bc3e38f260c403b_sk b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/msp/keystore/4e4c930524bc57d68846dff168e246ddea6166e2abda7a610bc3e38f260c403b_sk new file mode 100644 index 00000000..7f2f0d81 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/msp/keystore/4e4c930524bc57d68846dff168e246ddea6166e2abda7a610bc3e38f260c403b_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQg42AQGN0lRR2lO2dG ++5F3RGh/IbvlbOtRhCqM4RSp7QehRANCAAQBxkHYFiEJ2X3MzeZ5aPVgdO8TbjfO +gLJVPRLAZ/6wL576D4IV3QI92StYBhrcrwLUzbgHFsDGWirP05ZVZxUa +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/msp/keystore/588e8ab83f4c6780c327a01dcc779f6260fdd01377a81931a97d95c38f9a636d_sk b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/msp/keystore/588e8ab83f4c6780c327a01dcc779f6260fdd01377a81931a97d95c38f9a636d_sk new file mode 100644 index 00000000..9a55620c --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/msp/keystore/588e8ab83f4c6780c327a01dcc779f6260fdd01377a81931a97d95c38f9a636d_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgbmZ7XgYf8XC8SI7+ +6dCYgMgpX+wvLmQWjSoi4ulAQ+ehRANCAASrVuctrWkFj9lkU1BwqiaJLKqLZt2n +BdKh+5VaxDw7CLhZszJvgom3jD0+Xeoj37nYrtnyTPmWjKY6QmGPs4XT +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/msp/keystore/94c363b787d2ff1e4e952aafc4008e378551e79e1160f641084fbed5cf865fac_sk b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/msp/keystore/94c363b787d2ff1e4e952aafc4008e378551e79e1160f641084fbed5cf865fac_sk new file mode 100644 index 00000000..cd913816 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/msp/keystore/94c363b787d2ff1e4e952aafc4008e378551e79e1160f641084fbed5cf865fac_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgQ1URkmWs0PUBuOkS +047nzq5s+n/hLtkJg6/nZr9udwyhRANCAAQiRwcgKaQEYqxvsQ968DKE5FOjRxzX +zSPlW72hK3yLPc3+9AtbERRvdfbAoS6trLMmma0Bg51t97o7vvTXf1Ay +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/msp/keystore/a23d070a0c8df7e00e14aced145813f486d51d25ca718d6c95d325a0d87fcb36_sk b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/msp/keystore/a23d070a0c8df7e00e14aced145813f486d51d25ca718d6c95d325a0d87fcb36_sk new file mode 100644 index 00000000..c4cc2cad --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/msp/keystore/a23d070a0c8df7e00e14aced145813f486d51d25ca718d6c95d325a0d87fcb36_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQg/10rYHt0YnqxmLzx +ZtB/VxZNZi9zVax2Jnrsvv2iQDChRANCAATnNsVp8b/Ns02foqUH00gWTfxcKhKG +1B07b3rAW0gaNqLNku+S5STLrUa9wDsvxcZ2g8IQdHi4iBt+FWf9JHLd +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/msp/keystore/ac914bb735c28c4a5a239a26a0ece56341a3acb4c762c631be9e5874732275ba_sk b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/msp/keystore/ac914bb735c28c4a5a239a26a0ece56341a3acb4c762c631be9e5874732275ba_sk new file mode 100644 index 00000000..35e556a3 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/msp/keystore/ac914bb735c28c4a5a239a26a0ece56341a3acb4c762c631be9e5874732275ba_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgrYr+mWiAAsHlB74+ +y6HVpOMFygxkT1Vz1BNqQCbNVFyhRANCAASut567PhgJTYidupY76VnVAlxnMx3f ++KeeZxOcKzuVQQaH4b90we7SGEczCkfLijBTlPqqYhRIdlsM6oXmb09m +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/msp/signcerts/peer0.org2.example.com-cert.pem b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/msp/signcerts/peer0.org2.example.com-cert.pem new file mode 100644 index 00000000..5ad40258 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/msp/signcerts/peer0.org2.example.com-cert.pem @@ -0,0 +1,14 @@ +-----BEGIN CERTIFICATE----- +MIICGTCCAb+gAwIBAgIQN3QI7GCYA8cCUa1vjgRsfDAKBggqhkjOPQQDAjBzMQsw +CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy +YW5jaXNjbzEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu +b3JnMi5leGFtcGxlLmNvbTAeFw0xNzA3MDUwODE1MzFaFw0yNzA3MDMwODE1MzFa +MFsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T +YW4gRnJhbmNpc2NvMR8wHQYDVQQDExZwZWVyMC5vcmcyLmV4YW1wbGUuY29tMFkw +EwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIkcHICmkBGKsb7EPevAyhORTo0cc180j +5Vu9oSt8iz3N/vQLWxEUb3X2wKEurayzJpmtAYOdbfe6O770139QMqNNMEswDgYD +VR0PAQH/BAQDAgeAMAwGA1UdEwEB/wQCMAAwKwYDVR0jBCQwIoAgMfQR5cjntPCX +6OdoSDNh8C7cjn49iFvYEtgIhy+FbjcwCgYIKoZIzj0EAwIDSAAwRQIhAN5ji461 +EzdbXoijFVWCAsS6LgJh7dK2oaWc2sRjh6/PAiBOdY9tbYoqHa0grsSKlAv11JcT +ryWeTApjK8/XOgRLCQ== +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/msp/tlscacerts/tlsca.org2.example.com-cert.pem b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/msp/tlscacerts/tlsca.org2.example.com-cert.pem new file mode 100644 index 00000000..b5e00ed7 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/msp/tlscacerts/tlsca.org2.example.com-cert.pem @@ -0,0 +1,16 @@ +-----BEGIN CERTIFICATE----- +MIICeTCCAh+gAwIBAgIRAKxhO5bR4Ss/UDDtklVz+4gwCgYIKoZIzj0EAwIwdjEL +MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG +cmFuY2lzY28xGTAXBgNVBAoTEG9yZzIuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs +c2NhLm9yZzIuZXhhbXBsZS5jb20wHhcNMTcwNzA1MDgxNTMxWhcNMjcwNzAzMDgx +NTMxWjB2MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE +BxMNU2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEfMB0G +A1UEAxMWdGxzY2Eub3JnMi5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49 +AwEHA0IABLrxVsbattDPPvwywR6JFzLcoU7/qVNL7lqV2JHaRjxQbqty3u2Vyzic +Fp9jV9cu7p+nfE4BnxPDuJNIrJ3lmDyjgY0wgYowDgYDVR0PAQH/BAQDAgGmMA8G +A1UdJQQIMAYGBFUdJQAwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQg6Gy2skhU +SXiaBT9mwHRTF76XYo4iSH71etZR2a+yvCkwKwYDVR0jBCQwIoAg6Gy2skhUSXia +BT9mwHRTF76XYo4iSH71etZR2a+yvCkwCgYIKoZIzj0EAwIDSAAwRQIhAN/IoUpA +bgTHhs5wYbFekntfWTLupHjGFezRbH6ZzUr4AiBQzhjMjvothNtosHHil39EwI7B +1VhAic7t1UOllpJ1tQ== +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt new file mode 100644 index 00000000..b5e00ed7 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt @@ -0,0 +1,16 @@ +-----BEGIN CERTIFICATE----- +MIICeTCCAh+gAwIBAgIRAKxhO5bR4Ss/UDDtklVz+4gwCgYIKoZIzj0EAwIwdjEL +MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG +cmFuY2lzY28xGTAXBgNVBAoTEG9yZzIuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs +c2NhLm9yZzIuZXhhbXBsZS5jb20wHhcNMTcwNzA1MDgxNTMxWhcNMjcwNzAzMDgx +NTMxWjB2MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE +BxMNU2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEfMB0G +A1UEAxMWdGxzY2Eub3JnMi5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49 +AwEHA0IABLrxVsbattDPPvwywR6JFzLcoU7/qVNL7lqV2JHaRjxQbqty3u2Vyzic +Fp9jV9cu7p+nfE4BnxPDuJNIrJ3lmDyjgY0wgYowDgYDVR0PAQH/BAQDAgGmMA8G +A1UdJQQIMAYGBFUdJQAwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQg6Gy2skhU +SXiaBT9mwHRTF76XYo4iSH71etZR2a+yvCkwKwYDVR0jBCQwIoAg6Gy2skhUSXia +BT9mwHRTF76XYo4iSH71etZR2a+yvCkwCgYIKoZIzj0EAwIDSAAwRQIhAN/IoUpA +bgTHhs5wYbFekntfWTLupHjGFezRbH6ZzUr4AiBQzhjMjvothNtosHHil39EwI7B +1VhAic7t1UOllpJ1tQ== +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/server.crt b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/server.crt new file mode 100644 index 00000000..6e308596 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/server.crt @@ -0,0 +1,15 @@ +-----BEGIN CERTIFICATE----- +MIICZzCCAg2gAwIBAgIQTJaq+toOCyCUyuJ+uSEtqTAKBggqhkjOPQQDAjB2MQsw +CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy +YW5jaXNjbzEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEfMB0GA1UEAxMWdGxz +Y2Eub3JnMi5leGFtcGxlLmNvbTAeFw0xNzA3MDUwODE1MzFaFw0yNzA3MDMwODE1 +MzFaMFsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQH +Ew1TYW4gRnJhbmNpc2NvMR8wHQYDVQQDExZwZWVyMC5vcmcyLmV4YW1wbGUuY29t +MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEwg3bTIIr34CdZoCkbAvQLCzGNueD +hxnt8Iiy/Mtq+pRjZ64VZmI9iYvya8RTvlGhuHS9imle9wManVonCN9n56OBlzCB +lDAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMC +MAwGA1UdEwEB/wQCMAAwKwYDVR0jBCQwIoAg6Gy2skhUSXiaBT9mwHRTF76XYo4i +SH71etZR2a+yvCkwKAYDVR0RBCEwH4IWcGVlcjAub3JnMi5leGFtcGxlLmNvbYIF +cGVlcjAwCgYIKoZIzj0EAwIDSAAwRQIhAOMtlYHZ2ax9SRQ0jBERGlNAFANDMJp4 +xHNfutyEB0myAiAetlpKCGlQUAbzfJ+KH8nXewAqr8cIcgrS9cEylTY7mg== +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/server.key b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/server.key new file mode 100644 index 00000000..35ca1a2a --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/server.key @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQg89l+Ct3VRcqjzGui +1BbKyQQvOw9Qyse/j8hojLQ34++hRANCAATCDdtMgivfgJ1mgKRsC9AsLMY254OH +Ge3wiLL8y2r6lGNnrhVmYj2Ji/JrxFO+UaG4dL2KaV73AxqdWicI32fn +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/msp/admincerts/Admin@org2.example.com-cert.pem b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/msp/admincerts/Admin@org2.example.com-cert.pem new file mode 100644 index 00000000..b70ca187 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/msp/admincerts/Admin@org2.example.com-cert.pem @@ -0,0 +1,14 @@ +-----BEGIN CERTIFICATE----- +MIICGTCCAcCgAwIBAgIRALMymsDtuWCsftJ+qUhfPOAwCgYIKoZIzj0EAwIwczEL +MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG +cmFuY2lzY28xGTAXBgNVBAoTEG9yZzIuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh +Lm9yZzIuZXhhbXBsZS5jb20wHhcNMTcwNzA1MDgxNTMxWhcNMjcwNzAzMDgxNTMx +WjBbMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN +U2FuIEZyYW5jaXNjbzEfMB0GA1UEAwwWQWRtaW5Ab3JnMi5leGFtcGxlLmNvbTBZ +MBMGByqGSM49AgEGCCqGSM49AwEHA0IABPlHOAwteyrQzAbhgFx1diIbhw7k9re6 +cexDwpENO1ujgWb9NqyP4tOBNp78kXV0aQEmViLYE9o7iFFsPoDjcmijTTBLMA4G +A1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMCsGA1UdIwQkMCKAIDH0EeXI57Tw +l+jnaEgzYfAu3I5+PYhb2BLYCIcvhW43MAoGCCqGSM49BAMCA0cAMEQCIC73AGge +KO5tSMnWr/pk3CwMrmsmm9kFjwKwV51h471YAiB4ArXOrRAgUGOTLS0z/B36TYfc +NO0i3LMPrjA8OIdTjg== +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/msp/cacerts/ca.org2.example.com-cert.pem b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/msp/cacerts/ca.org2.example.com-cert.pem new file mode 100644 index 00000000..590fd3f2 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/msp/cacerts/ca.org2.example.com-cert.pem @@ -0,0 +1,16 @@ +-----BEGIN CERTIFICATE----- +MIICcjCCAhmgAwIBAgIRAIUjWxLE18DferUxStTgTCUwCgYIKoZIzj0EAwIwczEL +MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG +cmFuY2lzY28xGTAXBgNVBAoTEG9yZzIuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh +Lm9yZzIuZXhhbXBsZS5jb20wHhcNMTcwNzA1MDgxNTMxWhcNMjcwNzAzMDgxNTMx +WjBzMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN +U2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEcMBoGA1UE +AxMTY2Eub3JnMi5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IA +BHPIxnekIIMpuw4yoMH6rxrpH5cVDfQiQC/vfeqPh2zWKBBuDZWOSuDMBbF1CFJA +JGR5xiaBwxA4PAWIqAAuOOOjgY0wgYowDgYDVR0PAQH/BAQDAgGmMA8GA1UdJQQI +MAYGBFUdJQAwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQgMfQR5cjntPCX6Odo +SDNh8C7cjn49iFvYEtgIhy+FbjcwKwYDVR0jBCQwIoAgMfQR5cjntPCX6OdoSDNh +8C7cjn49iFvYEtgIhy+FbjcwCgYIKoZIzj0EAwIDRwAwRAIgOOMOvP/UHhCA7euC +iAu2/WjbPIy3ZK73WZ65LWDOPTwCIEhnzZQ74LeorWJt4E2aVOyJAVZHuBGiyGpr +S5X6Vbho +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/msp/keystore/0317248e84abfb5fa97dcffe14e47cd8f90ca30b1cb2acdc117e755c6680b49b_sk b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/msp/keystore/0317248e84abfb5fa97dcffe14e47cd8f90ca30b1cb2acdc117e755c6680b49b_sk new file mode 100644 index 00000000..72fc8930 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/msp/keystore/0317248e84abfb5fa97dcffe14e47cd8f90ca30b1cb2acdc117e755c6680b49b_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgrsVlZnqGXJmHbBi5 +lp3tg32o8FPef2Hs8aJG41oxcCuhRANCAASUFnJ8+I6tEQ6ymdTbxYuE9Dt3Zyy+ +o89J18uYTcwnSIVwmTZoZuOFw43ct7Yh0RGxeJzWquYQ+V9B1EgY1URT +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/msp/keystore/6ed86312ea37c35b45a7f564028f9a309509d2adbbf6e6142fa9ecd4154db586_sk b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/msp/keystore/6ed86312ea37c35b45a7f564028f9a309509d2adbbf6e6142fa9ecd4154db586_sk new file mode 100644 index 00000000..2a120fc5 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/msp/keystore/6ed86312ea37c35b45a7f564028f9a309509d2adbbf6e6142fa9ecd4154db586_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgvjNZ6aqVYbYiog0b +OI+MK6FEsoLmikEYXe3MxUVEcaOhRANCAAR4aDjrQz51/bnoTtx1q2Y7sVMp7xLW +41tE8fGEyZgFYnlU6SgZL2Y9tRq9RhPWZZckfJt6BSa7BqWhbvo1vcrI +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/msp/keystore/98168d9730b96a4455877ba13226e1efd5789ece9966e15cb0fcae218124d9e4_sk b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/msp/keystore/98168d9730b96a4455877ba13226e1efd5789ece9966e15cb0fcae218124d9e4_sk new file mode 100644 index 00000000..a8bf4a24 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/msp/keystore/98168d9730b96a4455877ba13226e1efd5789ece9966e15cb0fcae218124d9e4_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgv7sbks3zHBF1fMQQ +0jQfTuMVaBlwyxR6mChTkdWGUMihRANCAATemGddVsCz/J1spktTZI+ZdVPJVF9H +A+onrCZ7aKFnBrvdFgvKLqX9+3ZaZNlOrr+LcoHa09ukQHLyz6KKg0HP +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/msp/keystore/9a8b1601aa8cddfaf92d3e259fed1db384d8fcb4ffbaed0e81cbf205e45964b3_sk b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/msp/keystore/9a8b1601aa8cddfaf92d3e259fed1db384d8fcb4ffbaed0e81cbf205e45964b3_sk new file mode 100644 index 00000000..45e2c502 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/msp/keystore/9a8b1601aa8cddfaf92d3e259fed1db384d8fcb4ffbaed0e81cbf205e45964b3_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQg57ypUWbthJePT1+N +nzYntN3aH38IpcFxChUS/wo/aCWhRANCAAS/qB12zcCXkcn/5BcCrOkxmBmBU4HH +6urI9xU2xs94eSYYWQH+x7Th31Tsuin78IgQpJAmqVeTITm11i3c/oRY +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/msp/keystore/d2e78901115e1c6a250caa60441dcb854beb69aada503029623d9c7e4285b833_sk b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/msp/keystore/d2e78901115e1c6a250caa60441dcb854beb69aada503029623d9c7e4285b833_sk new file mode 100644 index 00000000..56610e19 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/msp/keystore/d2e78901115e1c6a250caa60441dcb854beb69aada503029623d9c7e4285b833_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgcrBxm47AtHvpKxSW +HJYQYT5Pro3G2an0bz7ZcCKfFSShRANCAAR7BheJPmgICE+U0VvOy8+NBpSEkFVT +XyGLPaKoIh2GiXmABFKV//zwMyWBFYvYY7SeypNpm5iRzTWF0Q6mI7CP +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/msp/keystore/e101ccce58875cb8d70643eff71c9cdb99c0e7139f007847d9990fb562caa388_sk b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/msp/keystore/e101ccce58875cb8d70643eff71c9cdb99c0e7139f007847d9990fb562caa388_sk new file mode 100644 index 00000000..7bc42ef4 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/msp/keystore/e101ccce58875cb8d70643eff71c9cdb99c0e7139f007847d9990fb562caa388_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgGqEGzaBRaipU2WeF +snr5o9nhPO6350kw4Yt/5PNFVDGhRANCAARgD9KwtF+wAKelUZxSMVqs5c8rANeb +UhvV/qvZ9mh/q4ORxTZvIb38NzNDagUlwqnPeZPutdSLY9IRYdOgzcJn +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/msp/signcerts/peer1.org2.example.com-cert.pem b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/msp/signcerts/peer1.org2.example.com-cert.pem new file mode 100644 index 00000000..d3eb5146 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/msp/signcerts/peer1.org2.example.com-cert.pem @@ -0,0 +1,14 @@ +-----BEGIN CERTIFICATE----- +MIICGTCCAb+gAwIBAgIQXh7aImlGUjJRJKSwO/sYbjAKBggqhkjOPQQDAjBzMQsw +CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy +YW5jaXNjbzEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu +b3JnMi5leGFtcGxlLmNvbTAeFw0xNzA3MDUwODE1MzFaFw0yNzA3MDMwODE1MzFa +MFsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T +YW4gRnJhbmNpc2NvMR8wHQYDVQQDExZwZWVyMS5vcmcyLmV4YW1wbGUuY29tMFkw +EwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEeGg460M+df256E7cdatmO7FTKe8S1uNb +RPHxhMmYBWJ5VOkoGS9mPbUavUYT1mWXJHybegUmuwaloW76Nb3KyKNNMEswDgYD +VR0PAQH/BAQDAgeAMAwGA1UdEwEB/wQCMAAwKwYDVR0jBCQwIoAgMfQR5cjntPCX +6OdoSDNh8C7cjn49iFvYEtgIhy+FbjcwCgYIKoZIzj0EAwIDSAAwRQIhAJuBbPTl +EgZn1PocLJ2rfJxd9IYrSZ7ikHXBHF2t3co0AiA3gvaCriXJPfgnVviovw9tH523 +iMl6sJZyk0g95ll0sg== +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/msp/tlscacerts/tlsca.org2.example.com-cert.pem b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/msp/tlscacerts/tlsca.org2.example.com-cert.pem new file mode 100644 index 00000000..b5e00ed7 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/msp/tlscacerts/tlsca.org2.example.com-cert.pem @@ -0,0 +1,16 @@ +-----BEGIN CERTIFICATE----- +MIICeTCCAh+gAwIBAgIRAKxhO5bR4Ss/UDDtklVz+4gwCgYIKoZIzj0EAwIwdjEL +MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG +cmFuY2lzY28xGTAXBgNVBAoTEG9yZzIuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs +c2NhLm9yZzIuZXhhbXBsZS5jb20wHhcNMTcwNzA1MDgxNTMxWhcNMjcwNzAzMDgx +NTMxWjB2MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE +BxMNU2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEfMB0G +A1UEAxMWdGxzY2Eub3JnMi5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49 +AwEHA0IABLrxVsbattDPPvwywR6JFzLcoU7/qVNL7lqV2JHaRjxQbqty3u2Vyzic +Fp9jV9cu7p+nfE4BnxPDuJNIrJ3lmDyjgY0wgYowDgYDVR0PAQH/BAQDAgGmMA8G +A1UdJQQIMAYGBFUdJQAwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQg6Gy2skhU +SXiaBT9mwHRTF76XYo4iSH71etZR2a+yvCkwKwYDVR0jBCQwIoAg6Gy2skhUSXia +BT9mwHRTF76XYo4iSH71etZR2a+yvCkwCgYIKoZIzj0EAwIDSAAwRQIhAN/IoUpA +bgTHhs5wYbFekntfWTLupHjGFezRbH6ZzUr4AiBQzhjMjvothNtosHHil39EwI7B +1VhAic7t1UOllpJ1tQ== +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/tls/ca.crt b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/tls/ca.crt new file mode 100644 index 00000000..b5e00ed7 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/tls/ca.crt @@ -0,0 +1,16 @@ +-----BEGIN CERTIFICATE----- +MIICeTCCAh+gAwIBAgIRAKxhO5bR4Ss/UDDtklVz+4gwCgYIKoZIzj0EAwIwdjEL +MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG +cmFuY2lzY28xGTAXBgNVBAoTEG9yZzIuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs +c2NhLm9yZzIuZXhhbXBsZS5jb20wHhcNMTcwNzA1MDgxNTMxWhcNMjcwNzAzMDgx +NTMxWjB2MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE +BxMNU2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEfMB0G +A1UEAxMWdGxzY2Eub3JnMi5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49 +AwEHA0IABLrxVsbattDPPvwywR6JFzLcoU7/qVNL7lqV2JHaRjxQbqty3u2Vyzic +Fp9jV9cu7p+nfE4BnxPDuJNIrJ3lmDyjgY0wgYowDgYDVR0PAQH/BAQDAgGmMA8G +A1UdJQQIMAYGBFUdJQAwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQg6Gy2skhU +SXiaBT9mwHRTF76XYo4iSH71etZR2a+yvCkwKwYDVR0jBCQwIoAg6Gy2skhUSXia +BT9mwHRTF76XYo4iSH71etZR2a+yvCkwCgYIKoZIzj0EAwIDSAAwRQIhAN/IoUpA +bgTHhs5wYbFekntfWTLupHjGFezRbH6ZzUr4AiBQzhjMjvothNtosHHil39EwI7B +1VhAic7t1UOllpJ1tQ== +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/tls/server.crt b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/tls/server.crt new file mode 100644 index 00000000..e5b8945c --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/tls/server.crt @@ -0,0 +1,15 @@ +-----BEGIN CERTIFICATE----- +MIICZzCCAg2gAwIBAgIQakNcGyIf3LTRiir467fBIjAKBggqhkjOPQQDAjB2MQsw +CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy +YW5jaXNjbzEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEfMB0GA1UEAxMWdGxz +Y2Eub3JnMi5leGFtcGxlLmNvbTAeFw0xNzA3MDUwODE1MzFaFw0yNzA3MDMwODE1 +MzFaMFsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQH +Ew1TYW4gRnJhbmNpc2NvMR8wHQYDVQQDExZwZWVyMS5vcmcyLmV4YW1wbGUuY29t +MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEobh5Qac1hxRCVvYVWpEFM32GommM +RRCV/rbuIIRhVgNhJuw8N23vUVXbW6rSVc9xtXTuMif4HAurGlvfAh7SO6OBlzCB +lDAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMC +MAwGA1UdEwEB/wQCMAAwKwYDVR0jBCQwIoAg6Gy2skhUSXiaBT9mwHRTF76XYo4i +SH71etZR2a+yvCkwKAYDVR0RBCEwH4IWcGVlcjEub3JnMi5leGFtcGxlLmNvbYIF +cGVlcjEwCgYIKoZIzj0EAwIDSAAwRQIhAJT6vQdrWptFQC3/A+GIUA9rDiyddeK3 +dZZAkmYKsSZ5AiBdmtGvfV2KKe5XP//uZwZYEJw50grwBNG8TO8BuZg+Lg== +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/tls/server.key b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/tls/server.key new file mode 100644 index 00000000..e1fdef3e --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/tls/server.key @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgtoYydYzq6kzBrsRo +8doIF+BwE0yvTwSjt1gv67p4pUShRANCAAShuHlBpzWHFEJW9hVakQUzfYaiaYxF +EJX+tu4ghGFWA2Em7Dw3be9RVdtbqtJVz3G1dO4yJ/gcC6saW98CHtI7 +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/tlsca/6ed3dd5f388015c3ba05a311f4ba97941837e2d9292293efcb29fc39560cd9fa_sk b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/tlsca/6ed3dd5f388015c3ba05a311f4ba97941837e2d9292293efcb29fc39560cd9fa_sk new file mode 100644 index 00000000..45322920 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/tlsca/6ed3dd5f388015c3ba05a311f4ba97941837e2d9292293efcb29fc39560cd9fa_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgkfbvCw3UbQDW48Zw +hepcq8j62uOAxE0N0GjA+0USukyhRANCAASTuSGq/BjGLCsy7T91kBZXBvjGCeTJ +G4pT1lJ82CFYjcJ8ZatWs0LorB9DHQSVi1b9YfRHzlGsqEf29rSuNFw1 +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/tlsca/b37caf3f495095298c7b5b858219fdf5eb45e65c2fa2d434bc577c69f75dd6a9_sk b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/tlsca/b37caf3f495095298c7b5b858219fdf5eb45e65c2fa2d434bc577c69f75dd6a9_sk new file mode 100644 index 00000000..b3e28f33 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/tlsca/b37caf3f495095298c7b5b858219fdf5eb45e65c2fa2d434bc577c69f75dd6a9_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQg8TvP6uaY0b9JRvWK +8/o7n+wKT7Zz1p1MXOsMmDzh6NehRANCAASOWMa5caz7QfBs2ppNwewgFA6FaZpM +hCRk81H/vmml1mMsoui+Gr1aPyYlNpt0I1u+NLtJ4ROMoaolfO8ENNOI +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/tlsca/e86cb6b2485449789a053f66c0745317be97628e22487ef57ad651d9afb2bc29_sk b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/tlsca/e86cb6b2485449789a053f66c0745317be97628e22487ef57ad651d9afb2bc29_sk new file mode 100644 index 00000000..9878fbca --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/tlsca/e86cb6b2485449789a053f66c0745317be97628e22487ef57ad651d9afb2bc29_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgw7t5NSm1jZdf45Ab +fVJoh8uJtuamuNZ7x0fCbqjYk9WhRANCAAS68VbG2rbQzz78MsEeiRcy3KFO/6lT +S+5aldiR2kY8UG6rct7tlcs4nBafY1fXLu6fp3xOAZ8Tw7iTSKyd5Zg8 +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/tlsca/ef9af7d5632031151ef073a27b93b9f0e6aaf4a9b8b1c95ec560d28b41440624_sk b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/tlsca/ef9af7d5632031151ef073a27b93b9f0e6aaf4a9b8b1c95ec560d28b41440624_sk new file mode 100644 index 00000000..2fb6f683 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/tlsca/ef9af7d5632031151ef073a27b93b9f0e6aaf4a9b8b1c95ec560d28b41440624_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgCAW3a132XpdPD1V2 +Fa3swO2nvSibVCYF6+aTv41mVDKhRANCAASJbkEVmL+X3gDp7uC/OamtLpEHbH5G +THREh5n9mgIfNOzAQ9wpfhMERtsfPDWdm4eqNfZErR6YerelzRNm3Bd4 +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/tlsca/f97402ade798bafdc5f4c29c2979263920bcb9a89c3e18e7684bbf91b3fe4457_sk b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/tlsca/f97402ade798bafdc5f4c29c2979263920bcb9a89c3e18e7684bbf91b3fe4457_sk new file mode 100644 index 00000000..40f968d3 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/tlsca/f97402ade798bafdc5f4c29c2979263920bcb9a89c3e18e7684bbf91b3fe4457_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgPZkRAkcCnZltzt/4 +7slsNHB6+y5kO060Ngh7SZgJrNOhRANCAAQ9dptjq7GBcxdBlEoSMVLO7uf6igjT +4dRABwizazyJlSN7eXmS2gxWCKvnuznwj0jp9WS/y7fhhM+JJEa/CEMR +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/tlsca/fa0a1549cd73038d94851954bc75d495f11d9048c78299cf1db61877484a59c2_sk b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/tlsca/fa0a1549cd73038d94851954bc75d495f11d9048c78299cf1db61877484a59c2_sk new file mode 100644 index 00000000..6f041b33 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/tlsca/fa0a1549cd73038d94851954bc75d495f11d9048c78299cf1db61877484a59c2_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgxtjuWMwGvz5fzuVp +xoNZrg66ATiK+0h91APMjIQmIQ+hRANCAARW0xSrQ1ecQxWWnhyS6zmfCn7KEOy8 +7o7gnew4rPKjpB4K/VAqleXQApBteQ5UR8ZX/nABx7yak0L3sGd2i2Ui +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/tlsca/tlsca.org2.example.com-cert.pem b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/tlsca/tlsca.org2.example.com-cert.pem new file mode 100644 index 00000000..b5e00ed7 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/tlsca/tlsca.org2.example.com-cert.pem @@ -0,0 +1,16 @@ +-----BEGIN CERTIFICATE----- +MIICeTCCAh+gAwIBAgIRAKxhO5bR4Ss/UDDtklVz+4gwCgYIKoZIzj0EAwIwdjEL +MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG +cmFuY2lzY28xGTAXBgNVBAoTEG9yZzIuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs +c2NhLm9yZzIuZXhhbXBsZS5jb20wHhcNMTcwNzA1MDgxNTMxWhcNMjcwNzAzMDgx +NTMxWjB2MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE +BxMNU2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEfMB0G +A1UEAxMWdGxzY2Eub3JnMi5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49 +AwEHA0IABLrxVsbattDPPvwywR6JFzLcoU7/qVNL7lqV2JHaRjxQbqty3u2Vyzic +Fp9jV9cu7p+nfE4BnxPDuJNIrJ3lmDyjgY0wgYowDgYDVR0PAQH/BAQDAgGmMA8G +A1UdJQQIMAYGBFUdJQAwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQg6Gy2skhU +SXiaBT9mwHRTF76XYo4iSH71etZR2a+yvCkwKwYDVR0jBCQwIoAg6Gy2skhUSXia +BT9mwHRTF76XYo4iSH71etZR2a+yvCkwCgYIKoZIzj0EAwIDSAAwRQIhAN/IoUpA +bgTHhs5wYbFekntfWTLupHjGFezRbH6ZzUr4AiBQzhjMjvothNtosHHil39EwI7B +1VhAic7t1UOllpJ1tQ== +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp/admincerts/Admin@org2.example.com-cert.pem b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp/admincerts/Admin@org2.example.com-cert.pem new file mode 100644 index 00000000..b70ca187 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp/admincerts/Admin@org2.example.com-cert.pem @@ -0,0 +1,14 @@ +-----BEGIN CERTIFICATE----- +MIICGTCCAcCgAwIBAgIRALMymsDtuWCsftJ+qUhfPOAwCgYIKoZIzj0EAwIwczEL +MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG +cmFuY2lzY28xGTAXBgNVBAoTEG9yZzIuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh +Lm9yZzIuZXhhbXBsZS5jb20wHhcNMTcwNzA1MDgxNTMxWhcNMjcwNzAzMDgxNTMx +WjBbMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN +U2FuIEZyYW5jaXNjbzEfMB0GA1UEAwwWQWRtaW5Ab3JnMi5leGFtcGxlLmNvbTBZ +MBMGByqGSM49AgEGCCqGSM49AwEHA0IABPlHOAwteyrQzAbhgFx1diIbhw7k9re6 +cexDwpENO1ujgWb9NqyP4tOBNp78kXV0aQEmViLYE9o7iFFsPoDjcmijTTBLMA4G +A1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMCsGA1UdIwQkMCKAIDH0EeXI57Tw +l+jnaEgzYfAu3I5+PYhb2BLYCIcvhW43MAoGCCqGSM49BAMCA0cAMEQCIC73AGge +KO5tSMnWr/pk3CwMrmsmm9kFjwKwV51h471YAiB4ArXOrRAgUGOTLS0z/B36TYfc +NO0i3LMPrjA8OIdTjg== +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp/cacerts/ca.org2.example.com-cert.pem b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp/cacerts/ca.org2.example.com-cert.pem new file mode 100644 index 00000000..590fd3f2 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp/cacerts/ca.org2.example.com-cert.pem @@ -0,0 +1,16 @@ +-----BEGIN CERTIFICATE----- +MIICcjCCAhmgAwIBAgIRAIUjWxLE18DferUxStTgTCUwCgYIKoZIzj0EAwIwczEL +MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG +cmFuY2lzY28xGTAXBgNVBAoTEG9yZzIuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh +Lm9yZzIuZXhhbXBsZS5jb20wHhcNMTcwNzA1MDgxNTMxWhcNMjcwNzAzMDgxNTMx +WjBzMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN +U2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEcMBoGA1UE +AxMTY2Eub3JnMi5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IA +BHPIxnekIIMpuw4yoMH6rxrpH5cVDfQiQC/vfeqPh2zWKBBuDZWOSuDMBbF1CFJA +JGR5xiaBwxA4PAWIqAAuOOOjgY0wgYowDgYDVR0PAQH/BAQDAgGmMA8GA1UdJQQI +MAYGBFUdJQAwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQgMfQR5cjntPCX6Odo +SDNh8C7cjn49iFvYEtgIhy+FbjcwKwYDVR0jBCQwIoAgMfQR5cjntPCX6OdoSDNh +8C7cjn49iFvYEtgIhy+FbjcwCgYIKoZIzj0EAwIDRwAwRAIgOOMOvP/UHhCA7euC +iAu2/WjbPIy3ZK73WZ65LWDOPTwCIEhnzZQ74LeorWJt4E2aVOyJAVZHuBGiyGpr +S5X6Vbho +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp/keystore/0740166b539ae1324eb4c05e0b6217e6b3b77b3650fdf66d1e6f8527b986e834_sk b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp/keystore/0740166b539ae1324eb4c05e0b6217e6b3b77b3650fdf66d1e6f8527b986e834_sk new file mode 100644 index 00000000..5f19c3df --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp/keystore/0740166b539ae1324eb4c05e0b6217e6b3b77b3650fdf66d1e6f8527b986e834_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgXUnH+Ml6YkZxPM/K +JXiDU29ARiZA9yhrCGLktrNNMqihRANCAASEypAibpbfeH12AT0LLnOMW2Z3ZejX +LwdPNUguDhF1mcsFyj3rf4DI7mIYDVMMVhOYNDcSHap4if0WUjoU9TBS +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp/keystore/101031194e48d64f37687efaa07a3fa04f8745e395d090274936682ddb84ecc5_sk b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp/keystore/101031194e48d64f37687efaa07a3fa04f8745e395d090274936682ddb84ecc5_sk new file mode 100644 index 00000000..01d14033 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp/keystore/101031194e48d64f37687efaa07a3fa04f8745e395d090274936682ddb84ecc5_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgHtVCHD/WjNo8hnpn +vGNK0fSRWgyK1sFH+cNGOyeoobWhRANCAASiCxEgeptd6LjqtEecTTtlfxIxKrsE +No3oVlDr40ezKtrpghnM8PUihVk9ocAkm9QI00vTZau03iqmVUNLpRsh +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp/keystore/327014641ce4d616b5891dad3d680df71a1da7645537d8a0d7b19cc28f49d20d_sk b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp/keystore/327014641ce4d616b5891dad3d680df71a1da7645537d8a0d7b19cc28f49d20d_sk new file mode 100644 index 00000000..80e2dba5 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp/keystore/327014641ce4d616b5891dad3d680df71a1da7645537d8a0d7b19cc28f49d20d_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgQ3ruQmsTTkjqcVJS +oG7Swe2NajCBr8nbhZ04eNQoVeahRANCAASj1md1NyMFG7lQpfIK7LFnaoH4lslW +4qo2VrjaqiAXqVqrfYuQgCAnBm5i1XQT22z33PkDOofLi7YC+jNb1JJh +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp/keystore/96e5bae26172f5485af22d9356b9292df0dfd642064df99c922abbd65fd0eb7d_sk b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp/keystore/96e5bae26172f5485af22d9356b9292df0dfd642064df99c922abbd65fd0eb7d_sk new file mode 100644 index 00000000..fd1c4829 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp/keystore/96e5bae26172f5485af22d9356b9292df0dfd642064df99c922abbd65fd0eb7d_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQg//2dBVhyxZ2I99/k +mjxpYQ50ZZ+EkQZ0a0r/2KtifXKhRANCAARiF9qFNKdcpIwAZvR+6Q/9ha3m0Tnz +9F5Nklu6Bfe/e+Nfjmk5TAF6H5NVqsQN/RkmhQzT1LVSaBqZqi4NarVu +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp/keystore/b59f545d2c3ea7e809039a180b603fc4f79695ee7aa6626aae2b73cbe0ba22aa_sk b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp/keystore/b59f545d2c3ea7e809039a180b603fc4f79695ee7aa6626aae2b73cbe0ba22aa_sk new file mode 100644 index 00000000..9646559d --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp/keystore/b59f545d2c3ea7e809039a180b603fc4f79695ee7aa6626aae2b73cbe0ba22aa_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgkyudN1oWx1RgiKBa +sJeIdRlAcVoOcksnHuSKkHn0LY2hRANCAAT5RzgMLXsq0MwG4YBcdXYiG4cO5Pa3 +unHsQ8KRDTtbo4Fm/Tasj+LTgTae/JF1dGkBJlYi2BPaO4hRbD6A43Jo +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp/keystore/c3b5772133164a52525540d5ad00025672130bd788e9a7216810ba26ff6efde7_sk b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp/keystore/c3b5772133164a52525540d5ad00025672130bd788e9a7216810ba26ff6efde7_sk new file mode 100644 index 00000000..28b1ea18 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp/keystore/c3b5772133164a52525540d5ad00025672130bd788e9a7216810ba26ff6efde7_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgdT2QW45MVEFEeVJp +8YJPTrXxxrKSHJUXU+KROLkQT9mhRANCAARZ7K40GKvPZB2MCQn3TwlucrmIkhzL +Urk67C1B98Nc/MCJq/QRzLU0dQn++bJQceoLaS9hfbcIKw97shPAnnZK +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp/signcerts/Admin@org2.example.com-cert.pem b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp/signcerts/Admin@org2.example.com-cert.pem new file mode 100644 index 00000000..b70ca187 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp/signcerts/Admin@org2.example.com-cert.pem @@ -0,0 +1,14 @@ +-----BEGIN CERTIFICATE----- +MIICGTCCAcCgAwIBAgIRALMymsDtuWCsftJ+qUhfPOAwCgYIKoZIzj0EAwIwczEL +MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG +cmFuY2lzY28xGTAXBgNVBAoTEG9yZzIuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh +Lm9yZzIuZXhhbXBsZS5jb20wHhcNMTcwNzA1MDgxNTMxWhcNMjcwNzAzMDgxNTMx +WjBbMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN +U2FuIEZyYW5jaXNjbzEfMB0GA1UEAwwWQWRtaW5Ab3JnMi5leGFtcGxlLmNvbTBZ +MBMGByqGSM49AgEGCCqGSM49AwEHA0IABPlHOAwteyrQzAbhgFx1diIbhw7k9re6 +cexDwpENO1ujgWb9NqyP4tOBNp78kXV0aQEmViLYE9o7iFFsPoDjcmijTTBLMA4G +A1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMCsGA1UdIwQkMCKAIDH0EeXI57Tw +l+jnaEgzYfAu3I5+PYhb2BLYCIcvhW43MAoGCCqGSM49BAMCA0cAMEQCIC73AGge +KO5tSMnWr/pk3CwMrmsmm9kFjwKwV51h471YAiB4ArXOrRAgUGOTLS0z/B36TYfc +NO0i3LMPrjA8OIdTjg== +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp/tlscacerts/tlsca.org2.example.com-cert.pem b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp/tlscacerts/tlsca.org2.example.com-cert.pem new file mode 100644 index 00000000..b5e00ed7 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp/tlscacerts/tlsca.org2.example.com-cert.pem @@ -0,0 +1,16 @@ +-----BEGIN CERTIFICATE----- +MIICeTCCAh+gAwIBAgIRAKxhO5bR4Ss/UDDtklVz+4gwCgYIKoZIzj0EAwIwdjEL +MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG +cmFuY2lzY28xGTAXBgNVBAoTEG9yZzIuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs +c2NhLm9yZzIuZXhhbXBsZS5jb20wHhcNMTcwNzA1MDgxNTMxWhcNMjcwNzAzMDgx +NTMxWjB2MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE +BxMNU2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEfMB0G +A1UEAxMWdGxzY2Eub3JnMi5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49 +AwEHA0IABLrxVsbattDPPvwywR6JFzLcoU7/qVNL7lqV2JHaRjxQbqty3u2Vyzic +Fp9jV9cu7p+nfE4BnxPDuJNIrJ3lmDyjgY0wgYowDgYDVR0PAQH/BAQDAgGmMA8G +A1UdJQQIMAYGBFUdJQAwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQg6Gy2skhU +SXiaBT9mwHRTF76XYo4iSH71etZR2a+yvCkwKwYDVR0jBCQwIoAg6Gy2skhUSXia +BT9mwHRTF76XYo4iSH71etZR2a+yvCkwCgYIKoZIzj0EAwIDSAAwRQIhAN/IoUpA +bgTHhs5wYbFekntfWTLupHjGFezRbH6ZzUr4AiBQzhjMjvothNtosHHil39EwI7B +1VhAic7t1UOllpJ1tQ== +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/tls/ca.crt b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/tls/ca.crt new file mode 100644 index 00000000..b5e00ed7 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/tls/ca.crt @@ -0,0 +1,16 @@ +-----BEGIN CERTIFICATE----- +MIICeTCCAh+gAwIBAgIRAKxhO5bR4Ss/UDDtklVz+4gwCgYIKoZIzj0EAwIwdjEL +MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG +cmFuY2lzY28xGTAXBgNVBAoTEG9yZzIuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs +c2NhLm9yZzIuZXhhbXBsZS5jb20wHhcNMTcwNzA1MDgxNTMxWhcNMjcwNzAzMDgx +NTMxWjB2MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE +BxMNU2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEfMB0G +A1UEAxMWdGxzY2Eub3JnMi5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49 +AwEHA0IABLrxVsbattDPPvwywR6JFzLcoU7/qVNL7lqV2JHaRjxQbqty3u2Vyzic +Fp9jV9cu7p+nfE4BnxPDuJNIrJ3lmDyjgY0wgYowDgYDVR0PAQH/BAQDAgGmMA8G +A1UdJQQIMAYGBFUdJQAwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQg6Gy2skhU +SXiaBT9mwHRTF76XYo4iSH71etZR2a+yvCkwKwYDVR0jBCQwIoAg6Gy2skhUSXia +BT9mwHRTF76XYo4iSH71etZR2a+yvCkwCgYIKoZIzj0EAwIDSAAwRQIhAN/IoUpA +bgTHhs5wYbFekntfWTLupHjGFezRbH6ZzUr4AiBQzhjMjvothNtosHHil39EwI7B +1VhAic7t1UOllpJ1tQ== +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/tls/server.crt b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/tls/server.crt new file mode 100644 index 00000000..dbef072e --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/tls/server.crt @@ -0,0 +1,14 @@ +-----BEGIN CERTIFICATE----- +MIICOzCCAeGgAwIBAgIQHRp6MD7zQPfDogpmrlsdjTAKBggqhkjOPQQDAjB2MQsw +CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy +YW5jaXNjbzEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEfMB0GA1UEAxMWdGxz +Y2Eub3JnMi5leGFtcGxlLmNvbTAeFw0xNzA3MDUwODE1MzFaFw0yNzA3MDMwODE1 +MzFaMFsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQH +Ew1TYW4gRnJhbmNpc2NvMR8wHQYDVQQDDBZBZG1pbkBvcmcyLmV4YW1wbGUuY29t +MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEUM6frc2GUxlwJGoVZplAFJHOrewp +4O2929jVWy2U3y8GkssnDq1pSna+7xDblkaL2joz2Qs1IFdMK2Mercea6KNsMGow +DgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAM +BgNVHRMBAf8EAjAAMCsGA1UdIwQkMCKAIOhstrJIVEl4mgU/ZsB0Uxe+l2KOIkh+ +9XrWUdmvsrwpMAoGCCqGSM49BAMCA0gAMEUCIQDBc9DbKDDCv44sDhqoVU10/kJY +WncQMa2cjv/9n72NkwIgN57dil5yHisakUl77ATEhlJYi9uivVwoLYLjgNFQ/jQ= +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/tls/server.key b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/tls/server.key new file mode 100644 index 00000000..03499715 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/tls/server.key @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgUwD4Tl6zWEf4Qhcc +wNBceuQhuof8QX7rTgxcovOV4+6hRANCAARQzp+tzYZTGXAkahVmmUAUkc6t7Cng +7b3b2NVbLZTfLwaSyycOrWlKdr7vENuWRovaOjPZCzUgV0wrYx6tx5ro +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/msp/admincerts/User1@org2.example.com-cert.pem b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/msp/admincerts/User1@org2.example.com-cert.pem new file mode 100644 index 00000000..208db47b --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/msp/admincerts/User1@org2.example.com-cert.pem @@ -0,0 +1,14 @@ +-----BEGIN CERTIFICATE----- +MIICGDCCAb+gAwIBAgIQLqSWDcGgM1PfRFBBYsC+XzAKBggqhkjOPQQDAjBzMQsw +CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy +YW5jaXNjbzEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu +b3JnMi5leGFtcGxlLmNvbTAeFw0xNzA3MDUwODE1MzFaFw0yNzA3MDMwODE1MzFa +MFsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T +YW4gRnJhbmNpc2NvMR8wHQYDVQQDDBZVc2VyMUBvcmcyLmV4YW1wbGUuY29tMFkw +EwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEthqcwid6KMQOyntqHM8tNh64n0ON1BCI +t0lagSjjo9jzTPa4vbgy7c5psdjU5U1KqJ1MeGvfyvp3lXWtgQ2OVaNNMEswDgYD +VR0PAQH/BAQDAgeAMAwGA1UdEwEB/wQCMAAwKwYDVR0jBCQwIoAgMfQR5cjntPCX +6OdoSDNh8C7cjn49iFvYEtgIhy+FbjcwCgYIKoZIzj0EAwIDRwAwRAIgHeGdAaPq +lx7jIpPckq5Yd5KhZzspRkpf8NVdQ8zKJycCICoWufSCCs5O3zUs4mnHpLnPMWc6 +jMOujJTRQwDN/Pfk +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/msp/cacerts/ca.org2.example.com-cert.pem b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/msp/cacerts/ca.org2.example.com-cert.pem new file mode 100644 index 00000000..590fd3f2 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/msp/cacerts/ca.org2.example.com-cert.pem @@ -0,0 +1,16 @@ +-----BEGIN CERTIFICATE----- +MIICcjCCAhmgAwIBAgIRAIUjWxLE18DferUxStTgTCUwCgYIKoZIzj0EAwIwczEL +MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG +cmFuY2lzY28xGTAXBgNVBAoTEG9yZzIuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh +Lm9yZzIuZXhhbXBsZS5jb20wHhcNMTcwNzA1MDgxNTMxWhcNMjcwNzAzMDgxNTMx +WjBzMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN +U2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEcMBoGA1UE +AxMTY2Eub3JnMi5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IA +BHPIxnekIIMpuw4yoMH6rxrpH5cVDfQiQC/vfeqPh2zWKBBuDZWOSuDMBbF1CFJA +JGR5xiaBwxA4PAWIqAAuOOOjgY0wgYowDgYDVR0PAQH/BAQDAgGmMA8GA1UdJQQI +MAYGBFUdJQAwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQgMfQR5cjntPCX6Odo +SDNh8C7cjn49iFvYEtgIhy+FbjcwKwYDVR0jBCQwIoAgMfQR5cjntPCX6OdoSDNh +8C7cjn49iFvYEtgIhy+FbjcwCgYIKoZIzj0EAwIDRwAwRAIgOOMOvP/UHhCA7euC +iAu2/WjbPIy3ZK73WZ65LWDOPTwCIEhnzZQ74LeorWJt4E2aVOyJAVZHuBGiyGpr +S5X6Vbho +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/msp/keystore/48a0bc215b85f8d8605c4a7d6b3e6926c18ce84cccce8219dfd9651583c8cf43_sk b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/msp/keystore/48a0bc215b85f8d8605c4a7d6b3e6926c18ce84cccce8219dfd9651583c8cf43_sk new file mode 100644 index 00000000..69293b48 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/msp/keystore/48a0bc215b85f8d8605c4a7d6b3e6926c18ce84cccce8219dfd9651583c8cf43_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgQFg7rKiXCVPF0CRD +A0in6FXFLvlaInzYovWb0vkPQgGhRANCAATXxy1sYoVc5p0xPhVgoiDyu/weevFN +G8J+kwgjD4tK1qMLR0XPG4S1wv4O3J2ngFqPoSmMAgWva0vlbiVLVpr1 +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/msp/keystore/4ec60ac9a880a8f2ca815d80958151034be8d069418edcb9d10ccce473fb36d8_sk b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/msp/keystore/4ec60ac9a880a8f2ca815d80958151034be8d069418edcb9d10ccce473fb36d8_sk new file mode 100644 index 00000000..1d36bbf9 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/msp/keystore/4ec60ac9a880a8f2ca815d80958151034be8d069418edcb9d10ccce473fb36d8_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQggfdN/RdNQWxl0xgO +qotZI4gGvRY+CnJYa2cAT3I6S4+hRANCAAS2GpzCJ3ooxA7Ke2oczy02HrifQ43U +EIi3SVqBKOOj2PNM9ri9uDLtzmmx2NTlTUqonUx4a9/K+neVda2BDY5V +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/msp/keystore/73926ac8778b85a0cadd9f871f0e28295cf91a5caceb7d73de438ae61ec46a5b_sk b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/msp/keystore/73926ac8778b85a0cadd9f871f0e28295cf91a5caceb7d73de438ae61ec46a5b_sk new file mode 100644 index 00000000..c31b5196 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/msp/keystore/73926ac8778b85a0cadd9f871f0e28295cf91a5caceb7d73de438ae61ec46a5b_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgXXJtpZAIEgJnYXKj +cCNakrrpq76dRQ+2xMu8leqvsX+hRANCAASmICtCHYWzW4/mdc8DOavwGY8/FqmT +ZhGf3xrVYnguEHLnN6RjDDmf4B2fnwxpdZjIusRXKanTIanp996Qtwn3 +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/msp/keystore/91902ced86b96a8aa7b07becd61b1758bdc0572e4c0b3e79f2a436fdba5fbc45_sk b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/msp/keystore/91902ced86b96a8aa7b07becd61b1758bdc0572e4c0b3e79f2a436fdba5fbc45_sk new file mode 100644 index 00000000..c067f89d --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/msp/keystore/91902ced86b96a8aa7b07becd61b1758bdc0572e4c0b3e79f2a436fdba5fbc45_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgAUqRzEFOc/9zJP+0 +eq6obd+2pjYxAOXFLAB7cCu8/WWhRANCAAQZsFWkwf8YEvAdWePfGil4yAwPY6Zg +1qQ5Q0sIGvSW04r8XL92DXDBeDcWubYou9zMffNrPy8xQU1Ev75JG9yg +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/msp/keystore/b0702c3d4ace2cda99e04a3db87a13a0455e92d44959940441c9f8ff24893db0_sk b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/msp/keystore/b0702c3d4ace2cda99e04a3db87a13a0455e92d44959940441c9f8ff24893db0_sk new file mode 100644 index 00000000..2e6ebbaf --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/msp/keystore/b0702c3d4ace2cda99e04a3db87a13a0455e92d44959940441c9f8ff24893db0_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgfM2R+LhSISx7s3B0 +oWVKq3o9g9xDJ5AZvv4e8QQwem2hRANCAASZoSRLGfZrtO2ZAcCem7mDXFsD4Npp +sI4Glk6cWY/20eThSRd3X1rIJuohv5cfx614AD0hghK2eBi0V8LD0wwN +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/msp/keystore/b097d1fc7ef937736d09627f158728f48366f6d466079a245090b99fc44e03fa_sk b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/msp/keystore/b097d1fc7ef937736d09627f158728f48366f6d466079a245090b99fc44e03fa_sk new file mode 100644 index 00000000..e353d787 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/msp/keystore/b097d1fc7ef937736d09627f158728f48366f6d466079a245090b99fc44e03fa_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgHsiwY3Ayihs/rLCX +jqSEp5ioCY+WTJr7XinfkHzNWh2hRANCAARPkK8IusLjsaKeWCaESI2U+aSKUaCz +KMzAY1855wbqUACGUAJyWzH66Rf/CwsHi+qEsN8uKdzij5JBFp/RAaoO +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/msp/signcerts/User1@org2.example.com-cert.pem b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/msp/signcerts/User1@org2.example.com-cert.pem new file mode 100644 index 00000000..208db47b --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/msp/signcerts/User1@org2.example.com-cert.pem @@ -0,0 +1,14 @@ +-----BEGIN CERTIFICATE----- +MIICGDCCAb+gAwIBAgIQLqSWDcGgM1PfRFBBYsC+XzAKBggqhkjOPQQDAjBzMQsw +CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy +YW5jaXNjbzEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu +b3JnMi5leGFtcGxlLmNvbTAeFw0xNzA3MDUwODE1MzFaFw0yNzA3MDMwODE1MzFa +MFsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T +YW4gRnJhbmNpc2NvMR8wHQYDVQQDDBZVc2VyMUBvcmcyLmV4YW1wbGUuY29tMFkw +EwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEthqcwid6KMQOyntqHM8tNh64n0ON1BCI +t0lagSjjo9jzTPa4vbgy7c5psdjU5U1KqJ1MeGvfyvp3lXWtgQ2OVaNNMEswDgYD +VR0PAQH/BAQDAgeAMAwGA1UdEwEB/wQCMAAwKwYDVR0jBCQwIoAgMfQR5cjntPCX +6OdoSDNh8C7cjn49iFvYEtgIhy+FbjcwCgYIKoZIzj0EAwIDRwAwRAIgHeGdAaPq +lx7jIpPckq5Yd5KhZzspRkpf8NVdQ8zKJycCICoWufSCCs5O3zUs4mnHpLnPMWc6 +jMOujJTRQwDN/Pfk +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/msp/tlscacerts/tlsca.org2.example.com-cert.pem b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/msp/tlscacerts/tlsca.org2.example.com-cert.pem new file mode 100644 index 00000000..b5e00ed7 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/msp/tlscacerts/tlsca.org2.example.com-cert.pem @@ -0,0 +1,16 @@ +-----BEGIN CERTIFICATE----- +MIICeTCCAh+gAwIBAgIRAKxhO5bR4Ss/UDDtklVz+4gwCgYIKoZIzj0EAwIwdjEL +MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG +cmFuY2lzY28xGTAXBgNVBAoTEG9yZzIuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs +c2NhLm9yZzIuZXhhbXBsZS5jb20wHhcNMTcwNzA1MDgxNTMxWhcNMjcwNzAzMDgx +NTMxWjB2MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE +BxMNU2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEfMB0G +A1UEAxMWdGxzY2Eub3JnMi5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49 +AwEHA0IABLrxVsbattDPPvwywR6JFzLcoU7/qVNL7lqV2JHaRjxQbqty3u2Vyzic +Fp9jV9cu7p+nfE4BnxPDuJNIrJ3lmDyjgY0wgYowDgYDVR0PAQH/BAQDAgGmMA8G +A1UdJQQIMAYGBFUdJQAwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQg6Gy2skhU +SXiaBT9mwHRTF76XYo4iSH71etZR2a+yvCkwKwYDVR0jBCQwIoAg6Gy2skhUSXia +BT9mwHRTF76XYo4iSH71etZR2a+yvCkwCgYIKoZIzj0EAwIDSAAwRQIhAN/IoUpA +bgTHhs5wYbFekntfWTLupHjGFezRbH6ZzUr4AiBQzhjMjvothNtosHHil39EwI7B +1VhAic7t1UOllpJ1tQ== +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/tls/ca.crt b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/tls/ca.crt new file mode 100644 index 00000000..b5e00ed7 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/tls/ca.crt @@ -0,0 +1,16 @@ +-----BEGIN CERTIFICATE----- +MIICeTCCAh+gAwIBAgIRAKxhO5bR4Ss/UDDtklVz+4gwCgYIKoZIzj0EAwIwdjEL +MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG +cmFuY2lzY28xGTAXBgNVBAoTEG9yZzIuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs +c2NhLm9yZzIuZXhhbXBsZS5jb20wHhcNMTcwNzA1MDgxNTMxWhcNMjcwNzAzMDgx +NTMxWjB2MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE +BxMNU2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEfMB0G +A1UEAxMWdGxzY2Eub3JnMi5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49 +AwEHA0IABLrxVsbattDPPvwywR6JFzLcoU7/qVNL7lqV2JHaRjxQbqty3u2Vyzic +Fp9jV9cu7p+nfE4BnxPDuJNIrJ3lmDyjgY0wgYowDgYDVR0PAQH/BAQDAgGmMA8G +A1UdJQQIMAYGBFUdJQAwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQg6Gy2skhU +SXiaBT9mwHRTF76XYo4iSH71etZR2a+yvCkwKwYDVR0jBCQwIoAg6Gy2skhUSXia +BT9mwHRTF76XYo4iSH71etZR2a+yvCkwCgYIKoZIzj0EAwIDSAAwRQIhAN/IoUpA +bgTHhs5wYbFekntfWTLupHjGFezRbH6ZzUr4AiBQzhjMjvothNtosHHil39EwI7B +1VhAic7t1UOllpJ1tQ== +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/tls/server.crt b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/tls/server.crt new file mode 100644 index 00000000..206f1b07 --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/tls/server.crt @@ -0,0 +1,14 @@ +-----BEGIN CERTIFICATE----- +MIICOzCCAeGgAwIBAgIQDxpAIWumgcx4stnJ8EGVKTAKBggqhkjOPQQDAjB2MQsw +CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy +YW5jaXNjbzEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEfMB0GA1UEAxMWdGxz +Y2Eub3JnMi5leGFtcGxlLmNvbTAeFw0xNzA3MDUwODE1MzFaFw0yNzA3MDMwODE1 +MzFaMFsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQH +Ew1TYW4gRnJhbmNpc2NvMR8wHQYDVQQDDBZVc2VyMUBvcmcyLmV4YW1wbGUuY29t +MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEYJNSe1pNs5xgP6feXe8CO3GKsVNx +EMOpN+eb06mrG4cZmrR+WO8/kW9tG77cfQ+ZA0goAngNSoLIqmPsi0ec5aNsMGow +DgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAM +BgNVHRMBAf8EAjAAMCsGA1UdIwQkMCKAIOhstrJIVEl4mgU/ZsB0Uxe+l2KOIkh+ +9XrWUdmvsrwpMAoGCCqGSM49BAMCA0gAMEUCIQCnKehJ741EC5qu4QB2ScR8ygJT +IOGdBhlHHyOmP6wn0QIgN8+Fxg/NMEn0cAQJaIKv+Y5m261sY32RHlFDlbNJdeo= +-----END CERTIFICATE----- diff --git a/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/tls/server.key b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/tls/server.key new file mode 100644 index 00000000..e07b4b1b --- /dev/null +++ b/hyperledger/1.0.1/kafka/crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/tls/server.key @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgMywdrLluF2AakEV4 +t4UWw3EvijyxjcnAeAsFnVN5NEmhRANCAARgk1J7Wk2znGA/p95d7wI7cYqxU3EQ +w6k355vTqasbhxmatH5Y7z+Rb20bvtx9D5kDSCgCeA1KgsiqY+yLR5zl +-----END PRIVATE KEY----- diff --git a/hyperledger/1.0.1/kafka/docker-compose-base.yaml b/hyperledger/1.0.1/kafka/docker-compose-base.yaml new file mode 100644 index 00000000..f167d15d --- /dev/null +++ b/hyperledger/1.0.1/kafka/docker-compose-base.yaml @@ -0,0 +1,99 @@ +# Base compose files for: + +# orderer.example.com +# peer0.org1.example.com +# peer1.org1.example.com +# peer0.org2.example.com +# peer1.org2.example.com + + +version: '2' # v3 does not support 'extends' yet + +services: + + peer0.org1.example.com: + extends: + file: peer-base.yaml + service: peer-base + container_name: peer0.org1.example.com + hostname: peer0.org1.example.com + environment: + - CORE_PEER_ID=peer0.org1.example.com + - CORE_PEER_ADDRESS=peer0.org1.example.com:7051 + - CORE_PEER_CHAINCODELISTENADDRESS=peer0.org1.example.com:7052 + - CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer0.org1.example.com:7051 + - CORE_PEER_LOCALMSPID=Org1MSP + volumes: + - ./crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp:/etc/hyperledger/fabric/msp + - ./crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls:/etc/hyperledger/fabric/tls + ports: + - 7051:7051 + - 7052:7052 + - 7053:7053 + command: peer node start + + peer1.org1.example.com: + extends: + file: peer-base.yaml + service: peer-base + container_name: peer1.org1.example.com + hostname: peer1.org1.example.com + environment: + - CORE_PEER_ID=peer1.org1.example.com + - CORE_PEER_ADDRESS=peer1.org1.example.com:7051 + - CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer1.org1.example.com:7051 + - CORE_PEER_CHAINCODELISTENADDRESS=peer1.org1.example.com:7052 + - CORE_PEER_GOSSIP_BOOTSTRAP=peer0.org1.example.com:7051 + - CORE_PEER_LOCALMSPID=Org1MSP + volumes: + - ./crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/msp:/etc/hyperledger/fabric/msp + - ./crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/tls:/etc/hyperledger/fabric/tls + ports: + - 8051:7051 + - 8052:7052 + - 8053:7053 + command: peer node start + + peer0.org2.example.com: + extends: + file: peer-base.yaml + service: peer-base + container_name: peer0.org2.example.com + hostname: peer0.org2.example.com + environment: + - CORE_PEER_ID=peer0.org2.example.com + - CORE_PEER_ADDRESS=peer0.org2.example.com:7051 + - CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer0.org2.example.com:7051 + - CORE_PEER_CHAINCODELISTENADDRESS=peer0.org2.example.com:7052 + - CORE_PEER_GOSSIP_BOOTSTRAP=peer0.org2.example.com:7051 + - CORE_PEER_LOCALMSPID=Org2MSP + volumes: + - ./crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/msp:/etc/hyperledger/fabric/msp + - ./crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls:/etc/hyperledger/fabric/tls + ports: + - 9051:7051 + - 9052:7052 + - 9053:7053 + command: peer node start + + peer1.org2.example.com: + extends: + file: peer-base.yaml + service: peer-base + container_name: peer1.org2.example.com + hostname: peer1.org2.example.com + environment: + - CORE_PEER_ID=peer1.org2.example.com + - CORE_PEER_ADDRESS=peer1.org2.example.com:7051 + - CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer1.org2.example.com:7051 + - CORE_PEER_CHAINCODELISTENADDRESS=peer1.org2.example.com:7052 + - CORE_PEER_GOSSIP_BOOTSTRAP=peer1.org2.example.com:7051 + - CORE_PEER_LOCALMSPID=Org2MSP + volumes: + - ./crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/msp:/etc/hyperledger/fabric/msp + - ./crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/tls:/etc/hyperledger/fabric/tls + ports: + - 10051:7051 + - 10052:7052 + - 10053:7053 + command: peer node start diff --git a/hyperledger/1.0.1/kafka/orderer-base.yaml b/hyperledger/1.0.1/kafka/orderer-base.yaml new file mode 100644 index 00000000..dad94c98 --- /dev/null +++ b/hyperledger/1.0.1/kafka/orderer-base.yaml @@ -0,0 +1,35 @@ +# This is the default base file to config env and command +# Notice that chaincode is executed inside docker in default net mode +# https://github.com/yeasy/docker-compose-files + +# Depends on the hyperledger/fabric-orderer image. + +version: '2' + +services: + orderer-base: + image: hyperledger/fabric-orderer + environment: + - ORDERER_GENERAL_LOGLEVEL=DEBUG + - ORDERER_GENERAL_LISTENADDRESS=0.0.0.0 + - ORDERER_GENERAL_GENESISMETHOD=file + - ORDERER_GENERAL_GENESISFILE=/var/hyperledger/orderer/orderer.genesis.block + - ORDERER_GENERAL_LOCALMSPID=OrdererMSP + - ORDERER_GENERAL_LOCALMSPDIR=/var/hyperledger/orderer/msp + - ORDERER_GENERAL_LEDGERTYPE=file + - ORDERER_GENERAL_BATCHTIMEOUT=2s + - ORDERER_GENERAL_MAXMESSAGECOUNT=10 + - ORDERER_GENERAL_MAXWINDOWSIZE=1000 + - ORDERER_GENERAL_LISTENPORT=7050 + #- ORDERER_RAMLEDGER_HISTORY_SIZE=100 #only useful when use ram ledger + # enabled TLS + - ORDERER_GENERAL_TLS_ENABLED=true + - ORDERER_GENERAL_TLS_PRIVATEKEY=/var/hyperledger/orderer/tls/server.key + - ORDERER_GENERAL_TLS_CERTIFICATE=/var/hyperledger/orderer/tls/server.crt + - ORDERER_GENERAL_TLS_ROOTCAS=[/var/hyperledger/orderer/tls/ca.crt] + - ORDERER_KAFKA_RETRY_SHORTINTERVAL=1s + - ORDERER_KAFKA_RETRY_SHORTTOTAL=30s + - ORDERER_KAFKA_VERBOSE=true + expose: + - "7050" # + command: orderer start diff --git a/hyperledger/1.0.1/kafka/orderer-kafka-base.yaml b/hyperledger/1.0.1/kafka/orderer-kafka-base.yaml new file mode 100644 index 00000000..38989219 --- /dev/null +++ b/hyperledger/1.0.1/kafka/orderer-kafka-base.yaml @@ -0,0 +1,59 @@ +# Copyright IBM Corp. All Rights Reserved. +# +# SPDX-License-Identifier: Apache-2.0 +# + +version: '2' + +services: + + zookeeper: + image: hyperledger/fabric-zookeeper + restart: always + ports: + - '2181' + - '2888' + - '3888' + + kafka: + image: hyperledger/fabric-kafka + restart: always + environment: + # ======================================================================== + # Reference: https://kafka.apache.org/documentation/#configuration + # ======================================================================== + # + # socket.request.max.bytes + # The maximum number of bytes in a socket request. ATTN: If you set this + # env var, make sure to update `brokerConfig.Producer.MaxMessageBytes` in + # `newBrokerConfig()` in `fabric/orderer/kafka/config.go` accordingly. + #- KAFKA_SOCKET_REQUEST_MAX_BYTES=104857600 # 100 * 1024 * 1024 B + # + # message.max.bytes + # The maximum size of envelope that the broker can receive. + - KAFKA_MESSAGE_MAX_BYTES=103809024 # 99 * 1024 * 1024 B + # + # replica.fetch.max.bytes + # The number of bytes of messages to attempt to fetch for each channel. + # This is not an absolute maximum, if the fetched envelope is larger than + # this value, the envelope will still be returned to ensure that progress + # can be made. The maximum message size accepted by the broker is defined + # via message.max.bytes above. + - KAFKA_REPLICA_FETCH_MAX_BYTES=103809024 # 99 * 1024 * 1024 B + # + # unclean.leader.election.enable + # Data consistency is key in a blockchain environment. We cannot have a + # leader chosen outside of the in-sync replica set, or we run the risk of + # overwriting the offsets that the previous leader produced, and --as a + # result-- rewriting the blockchain that the orderers produce. + - KAFKA_UNCLEAN_LEADER_ELECTION_ENABLE=false + # + # log.retention.ms + # Until the ordering service in Fabric adds support for pruning of the + # Kafka logs, time-based retention should be disabled so as to prevent + # segments from expiring. (Size-based retention -- see + # log.retention.bytes -- is disabled by default so there is no need to set + # it explicitly.) + - KAFKA_LOG_RETENTION_MS=-1 + ports: + - '9092' \ No newline at end of file diff --git a/hyperledger/1.0.1/kafka/orderer-kafka.yaml b/hyperledger/1.0.1/kafka/orderer-kafka.yaml new file mode 100644 index 00000000..bbe011a2 --- /dev/null +++ b/hyperledger/1.0.1/kafka/orderer-kafka.yaml @@ -0,0 +1,209 @@ + +version: '2' + +services: + + zookeeper0: + extends: + file: orderer-kafka-base.yaml + service: zookeeper + container_name: zookeeper0 + hostname: zookeeper0 + environment: + - ZOO_MY_ID=1 + - ZOO_SERVERS=server.1=zookeeper0:2888:3888 server.2=zookeeper1:2888:3888 server.3=zookeeper2:2888:3888 + + zookeeper1: + extends: + file: orderer-kafka-base.yaml + service: zookeeper + container_name: zookeeper1 + hostname: zookeeper1 + environment: + - ZOO_MY_ID=2 + - ZOO_SERVERS=server.1=zookeeper0:2888:3888 server.2=zookeeper1:2888:3888 server.3=zookeeper2:2888:3888 + + zookeeper2: + extends: + file: orderer-kafka-base.yaml + service: zookeeper + container_name: zookeeper2 + hostname: zookeeper2 + environment: + - ZOO_MY_ID=3 + - ZOO_SERVERS=server.1=zookeeper0:2888:3888 server.2=zookeeper1:2888:3888 server.3=zookeeper2:2888:3888 + + kafka0: + extends: + file: orderer-kafka-base.yaml + service: kafka + container_name: kafka0 + hostname: kafka0 + environment: + - KAFKA_BROKER_ID=0 + - KAFKA_MIN_INSYNC_REPLICAS=2 + - KAFKA_DEFAULT_REPLICATION_FACTOR=3 + - KAFKA_ZOOKEEPER_CONNECT=zookeeper0:2181,zookeeper1:2181,zookeeper2:2181 + depends_on: + - zookeeper0 + - zookeeper1 + - zookeeper2 + links: + - zookeeper0 + - zookeeper1 + - zookeeper2 + + kafka1: + extends: + file: orderer-kafka-base.yaml + service: kafka + container_name: kafka1 + hostname: kafka1 + environment: + - KAFKA_BROKER_ID=1 + - KAFKA_DEFAULT_REPLICATION_FACTOR=3 + - KAFKA_MIN_INSYNC_REPLICAS=2 + - KAFKA_ZOOKEEPER_CONNECT=zookeeper0:2181,zookeeper1:2181,zookeeper2:2181 + depends_on: + - zookeeper0 + - zookeeper1 + - zookeeper2 + links: + - zookeeper0 + - zookeeper1 + - zookeeper2 + + kafka2: + extends: + file: orderer-kafka-base.yaml + service: kafka + container_name: kafka2 + hostname: kafka2 + environment: + - KAFKA_BROKER_ID=2 + - KAFKA_DEFAULT_REPLICATION_FACTOR=3 + - KAFKA_MIN_INSYNC_REPLICAS=2 + - KAFKA_ZOOKEEPER_CONNECT=zookeeper0:2181,zookeeper1:2181,zookeeper2:2181 + depends_on: + - zookeeper0 + - zookeeper1 + - zookeeper2 + links: + - zookeeper0 + - zookeeper1 + - zookeeper2 + + kafka3: + extends: + file: orderer-kafka-base.yaml + service: kafka + container_name: kafka3 + hostname: kafka3 + environment: + - KAFKA_BROKER_ID=3 + - KAFKA_DEFAULT_REPLICATION_FACTOR=3 + - KAFKA_MIN_INSYNC_REPLICAS=2 + - KAFKA_ZOOKEEPER_CONNECT=zookeeper0:2181,zookeeper1:2181,zookeeper2:2181 + depends_on: + - zookeeper0 + - zookeeper1 + - zookeeper2 + links: + - zookeeper0 + - zookeeper1 + - zookeeper2 + + orderer.example.com: # There can be multiple orderers + extends: + file: orderer-base.yaml + service: orderer-base + ports: + - "7050:7050" + container_name: orderer.example.com + hostname: orderer.example.com + environment: + - CONFIGTX_ORDERER_ORDERERTYPE=kafka + - CONFIGTX_ORDERER_KAFKA_BROKERS=[kafka0:9092,kafka1:9092,kafka2:9092,kafka3:9092] + # Above two env also need to modify in configtx.yaml + - ORDERER_GENERAL_GENESISPROFILE=SampleInsecureKafka + - ORDERER_KAFKA_VERBOSE=true + volumes: + - ./channel-artifacts/orderer.genesis.block:/var/hyperledger/orderer/orderer.genesis.block + - ./crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp:/var/hyperledger/orderer/msp + - ./crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/tls/:/var/hyperledger/orderer/tls + depends_on: + - kafka0 + - kafka1 + - kafka2 + - kafka3 + links: + - kafka0 + - kafka1 + - kafka2 + - kafka3 + command: orderer start + + peer0.org1.example.com: + extends: + file: docker-compose-base.yaml + service: peer0.org1.example.com + depends_on: + - orderer.example.com + + peer1.org1.example.com: + extends: + file: docker-compose-base.yaml + service: peer1.org1.example.com + depends_on: + - orderer.example.com + + peer0.org2.example.com: + extends: + file: docker-compose-base.yaml + service: peer0.org2.example.com + depends_on: + - orderer.example.com + + peer1.org2.example.com: + extends: + file: docker-compose-base.yaml + service: peer1.org2.example.com + depends_on: + - orderer.example.com + + cli: + container_name: fabric-cli + hostname: fabric-cli + image: hyperledger/fabric-tools + tty: true + environment: + - CORE_PEER_ID=fabric-cli + - CORE_LOGGING_LEVEL=DEBUG + - CORE_PEER_ADDRESS=peer0.org1.example.com:7051 + - CORE_PEER_LOCALMSPID=Org1MSP + - CORE_PEER_TLS_ENABLED=true # to enable TLS, change to true + - CORE_PEER_TLS_CERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/server.crt + - CORE_PEER_TLS_KEY_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/server.key + - CORE_PEER_TLS_ROOTCERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt + - CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp + volumes: + - ../e2e_cli/examples:/opt/gopath/src/github.com/hyperledger/fabric/examples # only need when you use official images + - ./crypto-config:/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ + - ../scripts:/opt/gopath/src/github.com/hyperledger/fabric/peer/scripts/ + - ./channel-artifacts:/opt/gopath/src/github.com/hyperledger/fabric/peer/channel-artifacts + - ./configtx.yaml:/etc/hyperledger/fabric/configtx.yaml + - ./crypto-config.yaml:/etc/hyperledger/fabric/crypto-config.yaml + depends_on: + - orderer.example.com + - peer0.org1.example.com + - peer1.org1.example.com + - peer0.org2.example.com + - peer1.org2.example.com + links: + - orderer.example.com + - peer0.org1.example.com + - peer1.org1.example.com + - peer0.org2.example.com + - peer1.org2.example.com + working_dir: /opt/gopath/src/github.com/hyperledger/fabric/peer + command: bash -c 'while true; do sleep 20170504; done' diff --git a/hyperledger/1.0.1/kafka/peer-base.yaml b/hyperledger/1.0.1/kafka/peer-base.yaml new file mode 100644 index 00000000..798dde2a --- /dev/null +++ b/hyperledger/1.0.1/kafka/peer-base.yaml @@ -0,0 +1,41 @@ +# This is the default base file to config env and command +# Notice that chaincode is executed inside docker in default net mode +# https://github.com/yeasy/docker-compose-files + +# Depends on the hyperledger/fabric-peer image. + +version: '2' + +services: + peer-base: + image: hyperledger/fabric-peer + environment: + #- CORE_PEER_ID=peer0 + - CORE_PEER_ADDRESSAUTODETECT=true + - CORE_LOGGING_LEVEL=DEBUG + - CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE=kafka_default # uncomment this to use specific network + #- CORE_PEER_NETWORKID=dev + - CORE_PEER_GOSSIP_SKIPHANDSHAKE=true + - CORE_PEER_GOSSIP_USELEADERELECTION=true + - CORE_PEER_GOSSIP_ORGLEADER=false # this node is the group leader, default to false + - CORE_PEER_PROFILE_ENABLED=false + - CORE_PEER_TLS_ENABLED=true + - CORE_PEER_TLS_CERT_FILE=/etc/hyperledger/fabric/tls/server.crt + - CORE_PEER_TLS_KEY_FILE=/etc/hyperledger/fabric/tls/server.key + - CORE_PEER_TLS_ROOTCERT_FILE=/etc/hyperledger/fabric/tls/ca.crt + expose: + - "7050" # Rest + - "7051" # Grpc + - "7052" # Peer CLI + - "7053" # Peer Event + - "7054" # eCAP + - "7055" # eCAA + - "7056" # tCAP + - "7057" # eCAA + - "7058" # tlsCAP + - "7059" # tlsCAA + volumes: # docker.sock is mapped as the default CORE_VM_ENDPOINT + - /var/run/docker.sock:/var/run/docker.sock + #volumes: + # - /var/run/:/host/var/run/ + command: peer node start diff --git a/hyperledger/1.0.1/scripts/clean_env.sh b/hyperledger/1.0.1/scripts/clean_env.sh new file mode 100644 index 00000000..855c347a --- /dev/null +++ b/hyperledger/1.0.1/scripts/clean_env.sh @@ -0,0 +1,26 @@ +#!/usr/bin/env bash + +# This script will remove all containers and hyperledger related images + +# Detecting whether can import the header file to render colorful cli output +# Need add choice option +if [ -f ./header.sh ]; then + source ./header.sh +elif [ -f scripts/header.sh ]; then + source scripts/header.sh +else + alias echo_r="echo" + alias echo_g="echo" + alias echo_b="echo" +fi + +echo_b "Clean up all containers..." +docker rm -f `docker ps -qa` + +echo_b "Clean up all chaincode-images..." +docker rmi -f $(docker images |grep 'dev-peer*'|awk '{print $3}') + +echo_b "Clean up all hyperledger related images..." +docker rmi $(docker images |grep 'hyperledger') + +echo_g "Env cleanup done!" \ No newline at end of file diff --git a/hyperledger/1.0.1/scripts/download_images.sh b/hyperledger/1.0.1/scripts/download_images.sh new file mode 100644 index 00000000..66d95411 --- /dev/null +++ b/hyperledger/1.0.1/scripts/download_images.sh @@ -0,0 +1,47 @@ +#!/usr/bin/env bash + +# Detecting whether can import the header file to render colorful cli output +if [ -f ./header.sh ]; then + source ./header.sh +elif [ -f scripts/header.sh ]; then + source scripts/header.sh +else + alias echo_r="echo" + alias echo_g="echo" + alias echo_b="echo" +fi + +ARCH=x86_64 +BASEIMAGE_RELEASE=0.3.1 +BASE_VERSION=1.0.0 +PROJECT_VERSION=1.0.0 + +# For testing 1.0.0 images +IMG_TAG=1.0.0 + +echo_b "Downloading images from DockerHub... need a while" + +# TODO: we may need some checking on pulling result? +docker pull yeasy/hyperledger-fabric-base:$IMG_TAG \ + && docker pull yeasy/hyperledger-fabric-peer:$IMG_TAG \ + && docker pull yeasy/hyperledger-fabric-orderer:$IMG_TAG \ + && docker pull yeasy/hyperledger-fabric-ca:$IMG_TAG \ + && docker pull hyperledger/fabric-couchdb:$ARCH-$IMG_TAG \ + && docker pull hyperledger/fabric-kafka:$ARCH-$IMG_TAG \ + && docker pull hyperledger/fabric-zookeeper:$ARCH-$IMG_TAG + +# Only useful for debugging +# docker pull yeasy/hyperledger-fabric + +echo_b "Rename images with official tags..." +docker tag yeasy/hyperledger-fabric-peer:$IMG_TAG hyperledger/fabric-peer \ + && docker tag yeasy/hyperledger-fabric-peer:$IMG_TAG hyperledger/fabric-tools \ + && docker tag yeasy/hyperledger-fabric-orderer:$IMG_TAG hyperledger/fabric-orderer \ + && docker tag yeasy/hyperledger-fabric-ca:$IMG_TAG hyperledger/fabric-ca \ + && docker tag yeasy/hyperledger-fabric-base:$IMG_TAG hyperledger/fabric-ccenv:$ARCH-$PROJECT_VERSION \ + && docker tag yeasy/hyperledger-fabric-base:$IMG_TAG hyperledger/fabric-baseos:$ARCH-$BASEIMAGE_RELEASE \ + && docker tag yeasy/hyperledger-fabric-base:$IMG_TAG hyperledger/fabric-baseimage:$ARCH-$BASEIMAGE_RELEASE \ + && docker tag hyperledger/fabric-zookeeper:$ARCH-$IMG_TAG hyperledger/fabric-zookeeper \ + && docker tag hyperledger/fabric-kafka:$ARCH-$IMG_TAG hyperledger/fabric-kafka + +echo_g "Done, now can startup the network using docker-compose..." diff --git a/hyperledger/1.0.1/scripts/download_official_images.sh b/hyperledger/1.0.1/scripts/download_official_images.sh new file mode 100644 index 00000000..a5d334a4 --- /dev/null +++ b/hyperledger/1.0.1/scripts/download_official_images.sh @@ -0,0 +1,42 @@ +#!/bin/bash + +if [ -f ./header.sh ]; then + source ./header.sh +elif [ -f scripts/header.sh ]; then + source scripts/header.sh +else + alias echo_r="echo" + alias echo_g="echo" + alias echo_b="echo" +fi + +echo_b "===Download official images from https://hub.docker.com/u/hyperledger/" + +# pull fabric images +ARCH=x86_64 +BASEIMAGE_RELEASE=0.3.1 +PROJECT_VERSION=1.0.0 +IMG_TAG=1.0.0 + +echo_b "===Pulling fabric images... with tag = ${IMG_TAG}" +docker pull hyperledger/fabric-peer:$ARCH-$IMG_TAG +docker pull hyperledger/fabric-tools:$ARCH-$IMG_TAG +docker pull hyperledger/fabric-orderer:$ARCH-$IMG_TAG +docker pull hyperledger/fabric-ca:$ARCH-$IMG_TAG +docker pull hyperledger/fabric-ccenv:$ARCH-$IMG_TAG +docker pull hyperledger/fabric-baseimage:$ARCH-$BASEIMAGE_RELEASE +docker pull hyperledger/fabric-baseos:$ARCH-$BASEIMAGE_RELEASE +docker pull hyperledger/fabric-couchdb:$ARCH-$IMG_TAG +docker pull hyperledger/fabric-kafka:$ARCH-$IMG_TAG +docker pull hyperledger/fabric-zookeeper:$ARCH-$IMG_TAG + +echo_b "===Re-tagging images to *latest* tag" +docker tag hyperledger/fabric-peer:$ARCH-$IMG_TAG hyperledger/fabric-peer +docker tag hyperledger/fabric-tools:$ARCH-$IMG_TAG hyperledger/fabric-tools +docker tag hyperledger/fabric-orderer:$ARCH-$IMG_TAG hyperledger/fabric-orderer +docker tag hyperledger/fabric-ca:$ARCH-$IMG_TAG hyperledger/fabric-ca +docker tag hyperledger/fabric-zookeeper:$ARCH-$IMG_TAG hyperledger/fabric-zookeeper +docker tag hyperledger/fabric-kafka:$ARCH-$IMG_TAG hyperledger/fabric-kafka +docker tag hyperledger/fabric-couchdb:$ARCH-$IMG_TAG hyperledger/fabric-couchdb + +echo_b "Done, now can startup the network using docker-compose..." diff --git a/hyperledger/1.0.1/scripts/func.sh b/hyperledger/1.0.1/scripts/func.sh new file mode 100644 index 00000000..472c8710 --- /dev/null +++ b/hyperledger/1.0.1/scripts/func.sh @@ -0,0 +1,228 @@ +#!/bin/bash + +# Some useful functions for cc testing + +# Detecting whether can import the header file to render colorful cli output +if [ -f ./header.sh ]; then + source ./header.sh +elif [ -f scripts/header.sh ]; then + source scripts/header.sh +else + alias echo_r="echo" + alias echo_g="echo" + alias echo_b="echo" +fi + +CHANNEL_NAME="$1" +: ${CHANNEL_NAME:="businesschannel"} + +CC_NAME=mycc + +: ${TIMEOUT:="60"} +COUNTER=1 +MAX_RETRY=5 + +ORDERER_CA=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem + +verifyResult () { + if [ $1 -ne 0 ] ; then + echo_b "!!!!!!!!!!!!!!! "$2" !!!!!!!!!!!!!!!!" + echo_r "================== ERROR !!! FAILED to execute End-2-End Scenario ==================" + echo + exit 1 + fi +} + +setGlobals () { + + if [ $1 -eq 0 -o $1 -eq 1 ] ; then + CORE_PEER_LOCALMSPID="Org1MSP" + CORE_PEER_TLS_ROOTCERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt + CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp + if [ $1 -eq 0 ]; then + CORE_PEER_ADDRESS=peer0.org1.example.com:7051 + else + CORE_PEER_ADDRESS=peer1.org1.example.com:7051 + fi + else + CORE_PEER_LOCALMSPID="Org2MSP" + CORE_PEER_TLS_ROOTCERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt + CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp + if [ $1 -eq 2 ]; then + CORE_PEER_ADDRESS=peer0.org2.example.com:7051 + else + CORE_PEER_ADDRESS=peer1.org2.example.com:7051 + fi + fi + + env |grep CORE +} + +checkOSNAvailability() { + #Use orderer's MSP for fetching system channel config block + CORE_PEER_LOCALMSPID="OrdererMSP" + CORE_PEER_TLS_ROOTCERT_FILE=$ORDERER_CA + CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp + + local rc=1 + local starttime=$(date +%s) + + # continue to poll + # we either get a successful response, or reach TIMEOUT + while test "$(($(date +%s)-starttime))" -lt "$TIMEOUT" -a $rc -ne 0 + do + sleep 3 + echo "Attempting to fetch system channel 'testchainid' ...$(($(date +%s)-starttime)) secs" + if [ -z "$CORE_PEER_TLS_ENABLED" -o "$CORE_PEER_TLS_ENABLED" = "false" ]; then + peer channel fetch 0 -o orderer.example.com:7050 -c "testchainid" >&log.txt + else + peer channel fetch 0 -o orderer.example.com:7050 -c "testchainid" --tls $CORE_PEER_TLS_ENABLED --cafile $ORDERER_CA >&log.txt + fi + test $? -eq 0 && VALUE=$(cat log.txt | awk '/Received block/ {print $NF}') + test "$VALUE" = "0" && let rc=0 + done + cat log.txt + verifyResult $rc "Ordering Service is not available, Please try again ..." + echo "===================== Ordering Service is up and running ===================== " + echo +} + +# Use peer0/org1 to create a channel +createChannel() { + setGlobals 0 + if [ -z "$CORE_PEER_TLS_ENABLED" -o "$CORE_PEER_TLS_ENABLED" = "false" ]; then + peer channel create -o orderer.example.com:7050 -c $CHANNEL_NAME -f ./channel-artifacts/channel.tx --timeout $TIMEOUT >&log.txt + else + peer channel create -o orderer.example.com:7050 -c $CHANNEL_NAME -f ./channel-artifacts/channel.tx --tls $CORE_PEER_TLS_ENABLED --cafile $ORDERER_CA --timeout $TIMEOUT >&log.txt + fi + res=$? + cat log.txt + verifyResult $res "Channel creation failed" + echo_g "===================== Channel \"$CHANNEL_NAME\" is created successfully ===================== " + echo +} + +updateAnchorPeers() { + PEER=$1 + setGlobals $PEER + + if [ -z "$CORE_PEER_TLS_ENABLED" -o "$CORE_PEER_TLS_ENABLED" = "false" ]; then + peer channel update -o orderer.example.com:7050 -c $CHANNEL_NAME -f ./channel-artifacts/${CORE_PEER_LOCALMSPID}anchors.tx >&log.txt + else + peer channel update -o orderer.example.com:7050 -c $CHANNEL_NAME -f ./channel-artifacts/${CORE_PEER_LOCALMSPID}anchors.tx --tls $CORE_PEER_TLS_ENABLED --cafile $ORDERER_CA >&log.txt + fi + res=$? + cat log.txt + verifyResult $res "Anchor peer update failed" + echo "===================== Anchor peers for org \"$CORE_PEER_LOCALMSPID\" on \"$CHANNEL_NAME\" is updated successfully ===================== " + sleep 5 + echo +} + +## Sometimes Join takes time hence RETRY atleast for 5 times +joinWithRetry () { + peer channel join -b $CHANNEL_NAME.block >&log.txt + res=$? + cat log.txt + if [ $res -ne 0 -a $COUNTER -lt $MAX_RETRY ]; then + COUNTER=` expr $COUNTER + 1` + echo_b "PEER$1 failed to join the channel, Retry after 2 seconds" + sleep 2 + joinWithRetry $1 + else + COUNTER=1 + fi + verifyResult $res "After $MAX_RETRY attempts, PEER$ch has failed to Join the Channel" +} + +# Join given (by default all) peers into the channel +joinChannel () { + peer_to_join=$(seq 0 3) + if [ $# -gt 0 ]; then + peer_to_join=$@ + fi + for i in $peer_to_join; do + setGlobals $i + joinWithRetry $i + echo_g "===================== PEER$i joined on the channel \"$CHANNEL_NAME\" ===================== " + sleep 2 + echo + done +} + +# Install chaincode on specifized peer node +installChaincode () { + PEER=$1 + setGlobals $PEER + peer chaincode install -n $CC_NAME -v 1.0 -p github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02 >&log.txt + res=$? + cat log.txt + verifyResult $res "Chaincode installation on remote peer PEER$PEER has Failed" + echo_g "===================== Chaincode is installed on remote peer PEER$PEER ===================== " + echo +} + +# Instantiate chaincode on specifized peer node +instantiateChaincode () { + PEER=$1 + setGlobals $PEER + # while 'peer chaincode' command can get the orderer endpoint from the peer (if join was successful), + # lets supply it directly as we know it using the "-o" option + if [ -z "$CORE_PEER_TLS_ENABLED" -o "$CORE_PEER_TLS_ENABLED" = "false" ]; then + peer chaincode instantiate -o orderer.example.com:7050 -C $CHANNEL_NAME -n $CC_NAME -v 1.0 -c '{"Args":["init","a","100","b","200"]}' -P "OR ('Org1MSP.member','Org2MSP.member')" >&log.txt + else + peer chaincode instantiate -o orderer.example.com:7050 --tls $CORE_PEER_TLS_ENABLED --cafile $ORDERER_CA -C $CHANNEL_NAME -n $CC_NAME -v 1.0 -c '{"Args":["init","a","100","b","200"]}' -P "OR ('Org1MSP.member','Org2MSP.member')" >&log.txt + fi + res=$? + cat log.txt + verifyResult $res "Chaincode instantiation on PEER$PEER on channel '$CHANNEL_NAME' failed" + echo_g "===================== Chaincode Instantiation on PEER$PEER on channel '$CHANNEL_NAME' is successful ===================== " + echo +} + +chaincodeQuery () { + PEER=$1 + echo_b "===================== Querying on PEER$PEER on channel '$CHANNEL_NAME'... ===================== " + setGlobals $PEER + local rc=1 + local starttime=$(date +%s) + + # continue to poll + # we either get a successful response, or reach TIMEOUT + while test "$(($(date +%s)-starttime))" -lt "$TIMEOUT" -a $rc -ne 0 + do + sleep 3 + echo_b "Attempting to Query PEER$PEER ...$(($(date +%s)-starttime)) secs" + peer chaincode query -C $CHANNEL_NAME -n $CC_NAME -c '{"Args":["query","a"]}' >&log.txt + test $? -eq 0 && VALUE=$(cat log.txt | awk '/Query Result/ {print $NF}') + test "$VALUE" = "$2" && let rc=0 + done + echo + cat log.txt + if test $rc -eq 0 ; then + echo_g "===================== Query on PEER$PEER on channel '$CHANNEL_NAME' is successful ===================== " + else + echo_r "!!!!!!!!!!!!!!! Query result on PEER$PEER is INVALID !!!!!!!!!!!!!!!!" + echo_r "================== ERROR !!! FAILED to execute End-2-End Scenario ==================" + echo + exit 1 + fi +} + +chaincodeInvoke () { + PEER=$1 + setGlobals $PEER + # while 'peer chaincode' command can get the orderer endpoint from the peer (if join was successful), + # lets supply it directly as we know it using the "-o" option + if [ -z "$CORE_PEER_TLS_ENABLED" -o "$CORE_PEER_TLS_ENABLED" = "false" ]; then + peer chaincode invoke -o orderer.example.com:7050 -C $CHANNEL_NAME -n $CC_NAME -c '{"Args":["invoke","a","b","10"]}' >&log.txt + else + peer chaincode invoke -o orderer.example.com:7050 --tls $CORE_PEER_TLS_ENABLED --cafile $ORDERER_CA -C $CHANNEL_NAME -n $CC_NAME -c '{"Args":["invoke","a","b","10"]}' >&log.txt + fi + res=$? + cat log.txt + verifyResult $res "Invoke execution on PEER$PEER failed " + echo_g "===================== Invoke transaction on PEER$PEER on channel '$CHANNEL_NAME' is successful ===================== " + echo +} + diff --git a/hyperledger/1.0.1/scripts/header.sh b/hyperledger/1.0.1/scripts/header.sh new file mode 100644 index 00000000..7620a87e --- /dev/null +++ b/hyperledger/1.0.1/scripts/header.sh @@ -0,0 +1,19 @@ +#!/usr/bin/env bash + +## DO NOT MODIFY THE FOLLOWING PART, UNLESS YOU KNOW WHAT IT MEANS ## +echo_r () { + [ $# -ne 1 ] && return 0 + echo -e "\033[31m$1\033[0m" +} +echo_g () { + [ $# -ne 1 ] && return 0 + echo -e "\033[32m$1\033[0m" +} +echo_y () { + [ $# -ne 1 ] && return 0 + echo -e "\033[33m$1\033[0m" +} +echo_b () { + [ $# -ne 1 ] && return 0 + echo -e "\033[34m$1\033[0m" +} \ No newline at end of file diff --git a/hyperledger/1.0.1/scripts/initialize_all.sh b/hyperledger/1.0.1/scripts/initialize_all.sh new file mode 100644 index 00000000..767ef334 --- /dev/null +++ b/hyperledger/1.0.1/scripts/initialize_all.sh @@ -0,0 +1,59 @@ +#!/bin/bash + +# Importing useful functions for cc testing +if [ -f ./func.sh ]; then + source ./func.sh +elif [ -f scripts/func.sh ]; then + source scripts/func.sh +fi + +echo +echo " ============================================== " +echo " ==========initialize businesschannel========== " +echo " ============================================== " +echo + +echo_b "Channel name : "$CHANNEL_NAME + +## Create channel +echo_b "Creating channel..." +createChannel + +## Join all the peers to the channel +echo_b "Having all peers join the channel..." +joinChannel + + +## Set the anchor peers for each org in the channel +echo_b "Updating anchor peers for org1..." +updateAnchorPeers 0 +echo_b "Updating anchor peers for org2..." +updateAnchorPeers 2 + +## Install chaincode on all peers +echo_b "Installing chaincode on all 4 peers..." +installChaincode 0 +installChaincode 1 +installChaincode 2 +installChaincode 3 + +# Instantiate chaincode on all peers +# Instantiate can only be executed once on any node +echo_b "Instantiating chaincode on all 2 channels (once for each channel)..." +instantiateChaincode 0 +instantiateChaincode 2 + + +echo +echo_g "===================== All GOOD, initialization completed ===================== " +echo + +echo +echo " _____ _ _ ____ " +echo "| ____| | \ | | | _ \ " +echo "| _| | \| | | | | |" +echo "| |___ | |\ | | |_| |" +echo "|_____| |_| \_| |____/ " +echo + +exit 0 diff --git a/hyperledger/1.0.1/scripts/initialize_peer0.sh b/hyperledger/1.0.1/scripts/initialize_peer0.sh new file mode 100644 index 00000000..c1f6f6ee --- /dev/null +++ b/hyperledger/1.0.1/scripts/initialize_peer0.sh @@ -0,0 +1,53 @@ +#!/bin/bash + +# Importing useful functions for cc testing +if [ -f ./func.sh ]; then + source ./func.sh +elif [ -f scripts/func.sh ]; then + source scripts/func.sh +fi + +echo +echo " ============================================== " +echo " ==========initialize businesschannel========== " +echo " ============================================== " +echo + +echo_b "Channel name : "$CHANNEL_NAME + +## Create channel +echo_b "Creating channel..." +createChannel + +## Join all the peers to the channel +echo_b "Having all peers join the channel..." +joinChannel 0 + + +## Set the anchor peers for each org in the channel +echo_b "Updating anchor peers for peer0/org1..." +updateAnchorPeers 0 + +## Install chaincode on all peers +echo_b "Installing chaincode on peer0..." +installChaincode 0 + +# Instantiate chaincode on all peers +# Instantiate can only be executed once on any node +echo_b "Instantiating chaincode on the channel..." +instantiateChaincode 0 + + +echo +echo_g "===================== All GOOD, initialization completed ===================== " +echo + +echo +echo " _____ _ _ ____ " +echo "| ____| | \ | | | _ \ " +echo "| _| | \| | | | | |" +echo "| |___ | |\ | | |_| |" +echo "|_____| |_| \_| |____/ " +echo + +exit 0 diff --git a/hyperledger/1.0.1/scripts/setup_Docker.sh b/hyperledger/1.0.1/scripts/setup_Docker.sh new file mode 100644 index 00000000..7e5a534d --- /dev/null +++ b/hyperledger/1.0.1/scripts/setup_Docker.sh @@ -0,0 +1,40 @@ +#!/usr/bin/env bash + +# Install docker on Ubuntu/Debian system + +# Detecting whether can import the header file to render colorful cli output +if [ -f ./header.sh ]; then + source ./header.sh +elif [ -f scripts/header.sh ]; then + source scripts/header.sh +else + alias echo_r="echo" + alias echo_g="echo" + alias echo_b="echo" +fi + +if [ xroot != x$(whoami) ] +then + echo_r "You must run as root (Hint: sudo su)" + exit +fi + +apt-get update && apt-get install curl -y + +echo_b "Install Docker..." + +wget -qO- https://get.docker.com/ | sh +sudo service docker stop +nohup sudo docker daemon --api-cors-header="*" -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock& + +echo_g "Docker Installation Done" + +echo_b "Install Docker-Compose..." + +curl -L https://github.com/docker/compose/releases/download/1.8.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose +chmod +x /usr/local/bin/docker-compose +docker-compose --version + + +echo_g "Docker-Compose Installation Done" + diff --git a/hyperledger/1.0.1/scripts/test_cc_all.sh b/hyperledger/1.0.1/scripts/test_cc_all.sh new file mode 100644 index 00000000..9e13635a --- /dev/null +++ b/hyperledger/1.0.1/scripts/test_cc_all.sh @@ -0,0 +1,45 @@ +#!/bin/bash + +# Importing useful functions for cc testing +if [ -f ./func.sh ]; then + source ./func.sh +elif [ -f scripts/func.sh ]; then + source scripts/func.sh +fi + +echo_b "Channel name : "$CHANNEL_NAME + +#Query on chaincode on Peer0/Org1 +echo_b "Querying chaincode on all 4 peers..." +chaincodeQuery 0 100 +chaincodeQuery 1 100 +chaincodeQuery 2 100 +chaincodeQuery 3 100 + +#Invoke on chaincode on Peer0/Org1 +echo_b "Sending invoke transaction (transfer 10) on org1/peer0..." +chaincodeInvoke 0 + +#Query on chaincode on Peer1/Org2, check if the result is 90 +echo_b "Querying chaincode on all 4 peers..." +chaincodeQuery 0 90 +chaincodeQuery 1 90 +chaincodeQuery 2 90 +chaincodeQuery 3 90 + +#Invoke on chaincode on Peer1/Org2 +echo_b "Sending invoke transaction on org2/peer3..." +chaincodeInvoke 3 + +#Query on chaincode on Peer1/Org2, check if the result is 80 +echo_b "Querying chaincode on all 4peers..." +chaincodeQuery 0 80 +chaincodeQuery 1 80 +chaincodeQuery 2 80 +chaincodeQuery 3 80 + +echo +echo_g "===================== All GOOD, End-2-End execution completed ===================== " +echo + +exit 0 diff --git a/hyperledger/1.0.1/scripts/test_cc_peer0.sh b/hyperledger/1.0.1/scripts/test_cc_peer0.sh new file mode 100644 index 00000000..658e4d6e --- /dev/null +++ b/hyperledger/1.0.1/scripts/test_cc_peer0.sh @@ -0,0 +1,27 @@ +#!/bin/bash + +# Importing useful functions for cc testing +if [ -f ./func.sh ]; then + source ./func.sh +elif [ -f scripts/func.sh ]; then + source scripts/func.sh +fi + +echo_b "Channel name : "$CHANNEL_NAME + + +echo_b "====================Query the existing value of a====================================" +chaincodeQuery 0 100 + +echo_b "=====================Invoke a transaction to transfer 10 from a to b==================" +chaincodeInvoke 0 + +sleep 2 + +echo_b "=====================Check if the result of a is 90===================================" +chaincodeQuery 0 90 + +echo +echo_g "=====================All GOOD, MVE Test completed ===================== " +echo +exit 0 diff --git a/hyperledger/1.0.1/scripts/test_lscc.sh b/hyperledger/1.0.1/scripts/test_lscc.sh new file mode 100644 index 00000000..14b6b371 --- /dev/null +++ b/hyperledger/1.0.1/scripts/test_lscc.sh @@ -0,0 +1,59 @@ +#!/usr/bin/env bash + +# This script will run some qscc queries for testing. + +# Detecting whether can import the header file to render colorful cli output +# Need add choice option +if [ -f ./header.sh ]; then + source ./header.sh +elif [ -f scripts/header.sh ]; then + source scripts/header.sh +else + alias echo_r="echo" + alias echo_g="echo" + alias echo_b="echo" +fi + +ORDERER_CA=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem + +CHANNEL_NAME="$1" +: ${CHANNEL_NAME:="businesschannel"} + +echo_b "LSCC testing" + +# invoke required following params + #-o orderer.example.com:7050 \ + #--tls "true" \ + #--cafile ${ORDERER_CA} \ + +echo_b "Get id" +peer chaincode query \ + -C "${CHANNEL_NAME}" \ + -n lscc \ + -c '{"Args":["getid","businesschannel", "mycc"]}' + +echo_b "Get cc ChaincodeDeploymentSpec" +peer chaincode query \ + -C "${CHANNEL_NAME}" \ + -n lscc \ + -c '{"Args":["getdepspec","businesschannel", "mycc"]}' + +echo_b "Get cc bytes" +peer chaincode query \ + -C "${CHANNEL_NAME}" \ + -n lscc \ + -c '{"Args":["getccdata","businesschannel", "mycc"]}' + +echo_b "Get all chaincodes installed on the channel" +peer chaincode query \ + -C "${CHANNEL_NAME}" \ + -n lscc \ + -c '{"Args":["getinstalledchaincodes"]}' + +echo_b "Get all chaincodes instantiated on the channel" +peer chaincode query \ + -C "${CHANNEL_NAME}" \ + -n lscc \ + -c '{"Args":["getchaincodes"]}' + +echo_g "LSCC testing done!" \ No newline at end of file diff --git a/hyperledger/1.0.1/scripts/test_qscc.sh b/hyperledger/1.0.1/scripts/test_qscc.sh new file mode 100644 index 00000000..41bddd72 --- /dev/null +++ b/hyperledger/1.0.1/scripts/test_qscc.sh @@ -0,0 +1,27 @@ +#!/usr/bin/env bash + +# This script will run some qscc queries for testing. + +# Detecting whether can import the header file to render colorful cli output +# Need add choice option +if [ -f ./header.sh ]; then + source ./header.sh +elif [ -f scripts/header.sh ]; then + source scripts/header.sh +else + alias echo_r="echo" + alias echo_g="echo" + alias echo_b="echo" +fi + + +#CHANNEL_NAME="$1" +#: ${CHANNEL_NAME:="businesschannel"} + +echo_b "Qscc GetChainInfo" +peer chaincode query -C "" -n qscc -c '{"Args":["GetChainInfo","businesschannel"]}' + +echo_b "Qscc GetBlockByNumber 2" +peer chaincode query -C "" -n qscc -c '{"Args":["GetBlockByNumber","businesschannel","2"]}' + +echo_g "Qscc testing done!" \ No newline at end of file