github.com/tenywen/fabric@v1.0.0-beta.0.20170620030522-a5b1ed380643/examples/cluster/Makefile (about) 1 # Copyright Greg Haskins All Rights Reserved 2 # 3 # SPDX-License-Identifier: Apache-2.0 4 # 5 PEERS += $(patsubst %,peer%,$(shell seq 1 4)) 6 NODES += $(PEERS) 7 NODES += orderer 8 NODES += cli 9 NODES += ca 10 11 DAEMONS = $(filter-out cli,$(NODES)) 12 13 CHANNEL_NAME ?= mychannel 14 15 CRYPTOOUTPUT = build/cryptogen 16 ORDERER_ORG = $(CRYPTOOUTPUT)/ordererOrganizations/orderer.net 17 PEER_ORG= $(CRYPTOOUTPUT)/peerOrganizations/org1.net 18 19 CA_PATH = $(PEER_ORG)/ca 20 ORDERER_PATH = $(ORDERER_ORG)/orderers 21 PEER_PATH = $(PEER_ORG)/peers 22 USERS_PATH = $(PEER_ORG)/users 23 24 CHANNEL_TXNS=build/channel.tx build/anchor.tx 25 26 mspmap.orderer := $(ORDERER_PATH)/orderer.orderer.net 27 mspmap.peer1 := $(PEER_PATH)/peer1.org1.net 28 mspmap.peer2 := $(PEER_PATH)/peer2.org1.net 29 mspmap.peer3 := $(PEER_PATH)/peer3.org1.net 30 mspmap.peer4 := $(PEER_PATH)/peer4.org1.net 31 mspmap.cli := $(USERS_PATH)/Admin@org1.net 32 33 COMPOSE=docker-compose -f compose/docker-compose.yaml 34 DRUN=$(COMPOSE) run --rm cli 35 36 TLS ?= true 37 export TLS_ENABLED=$(TLS) 38 39 CRYPTOGEN=build/bin/cryptogen 40 CONFIGTXGEN=build/bin/configtxgen 41 42 FABRICPKG=github.com/hyperledger/fabric 43 pkgmap.cryptogen := $(FABRICPKG)/common/tools/cryptogen 44 pkgmap.configtxgen := $(FABRICPKG)/common/configtx/tool/configtxgen 45 46 help: 47 @cat usage.txt 48 49 compose-up: nodes 50 @echo "Booting docker-compose environment" 51 $(COMPOSE) up -d $(DAEMONS) 52 $(DRUN) ./configure.sh $(CHANNEL_NAME) "$(CHANNEL_TXNS)" "$(PEERS)" $(TLS) 53 @./compose/report-env.sh "$(DAEMONS)" build/client.config $(TLS) 54 55 compose-down: 56 $(COMPOSE) down 57 rm -rf build/nodes $(CRYPTOOUTPUT) 58 59 nodes: $(patsubst %,build/nodes/%,$(NODES)) 60 61 $(CRYPTOOUTPUT): config/cryptogen.yaml $(CRYPTOGEN) 62 @mkdir -p ${@D} 63 $(CRYPTOGEN) generate --config $< --output $@ 64 65 .PRECIOUS: %.yaml 66 %.yaml: 67 @mkdir -p ${@D} 68 cp config/${@F} $@ 69 70 %/genesis.block: build/configtx.yaml build/core.yaml $(CONFIGTXGEN) 71 @mkdir -p ${@D} 72 FABRIC_CFG_PATH=build $(CONFIGTXGEN) -profile SampleOrg -outputBlock $@ 73 74 %.tx: build/configtx.yaml build/core.yaml $(CONFIGTXGEN) 75 76 %/channel.tx: 77 @mkdir -p ${@D} 78 FABRIC_CFG_PATH=build $(CONFIGTXGEN) -profile SampleChannel \ 79 -channelID ${CHANNEL_NAME} \ 80 -outputCreateChannelTx $@ 81 82 %/anchor.tx: 83 @mkdir -p ${@D} 84 FABRIC_CFG_PATH=build $(CONFIGTXGEN) -profile SampleChannel \ 85 -channelID ${CHANNEL_NAME} \ 86 -outputAnchorPeersUpdate $@ \ 87 -asOrg Org1MSP 88 89 .PRECIOUS: %/msp 90 %/msp: $(CRYPTOOUTPUT) 91 $(eval NODE = ${patsubst build/nodes/%/msp,%,${@}}) 92 @mkdir -p ${@D} 93 cp -R $(mspmap.${NODE})/* ${@D} 94 95 .PRECIOUS: build/bin/% 96 build/bin/%: 97 @mkdir -p ${@D} 98 GOBIN=$(abspath ${@D}) go install $(pkgmap.${@F}) 99 100 build/nodes/orderer: build/nodes/orderer/orderer.yaml 101 build/nodes/orderer: build/nodes/orderer/genesis.block 102 build/nodes/cli: $(CHANNEL_TXNS) 103 104 build/nodes/ca: build/nodes/ca/fabric-ca-server-config.yaml 105 @mkdir -p $@ 106 cp $(CA_PATH)/*_sk $@/ca.key 107 cp $(CA_PATH)/*.pem $@/ca.crt 108 109 build/nodes/%: build/nodes/%/msp build/nodes/%/configtx.yaml build/nodes/%/core.yaml 110 @echo "Built $@" 111 112 clean: compose-down 113 rm -rf build