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