Skip to content

Commit f953b52

Browse files
authored
Merge pull request #1 from dzikowski/fix-bft
Fix BFT support
2 parents a711deb + 6cfdd01 commit f953b52

File tree

4 files changed

+54
-48
lines changed

4 files changed

+54
-48
lines changed

src/setup-docker/templates/fabric-config/configtx-raft-template.yaml.ejs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
Host: <%= orderer.address %>
2828
Port: <%= orderer.port %>
2929
MSPID: <%= orderer.orgMspName %>
30-
Identity: crypto-config/peerOrganizations/<%= orderer.domain %>/peers/<%= orderer.address %>/msp/tlscacerts/tlsca.orderer.example.com-cert.pem
30+
Identity: crypto-config/peerOrganizations/<%= orderer.domain %>/peers/<%= orderer.address %>/msp/signcerts/<%= orderer.address %>-cert.pem
3131
ClientTLSCert: crypto-config/peerOrganizations/<%= orderer.domain %>/peers/<%= orderer.address %>/tls/server.crt
3232
ServerTLSCert: crypto-config/peerOrganizations/<%= orderer.domain %>/peers/<%= orderer.address %>/tls/server.crt
3333
<% })} -%>

src/setup-docker/templates/fabric-docker/commands-generated.sh

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,8 @@ generateArtifacts() {
1515
<%_ ordererGroups.forEach((ordererGroup) => { _%>
1616
1717
<% if(!global.capabilities.isV3) {%>
18-
printItalics "Generating genesis block for group <%= ordererGroup.name %>" "U1F3E0"
19-
genesisBlockCreate "$FABLO_NETWORK_ROOT/fabric-config" "$FABLO_NETWORK_ROOT/fabric-config/config" "<%= ordererGroup.profileName %>"
20-
<% } else { %>
21-
echo "System channel not supported for Fabric version 3"
18+
printItalics "Generating genesis block for group <%= ordererGroup.name %>" "U1F3E0"
19+
genesisBlockCreate "$FABLO_NETWORK_ROOT/fabric-config" "$FABLO_NETWORK_ROOT/fabric-config/config" "<%= ordererGroup.profileName %>"
2220
<% } %>
2321
2422
<%_ }) _%>
@@ -44,18 +42,18 @@ generateChannelsArtifacts() {
4442
}
4543
4644
installChannels() {
47-
set -x
4845
<% if (!channels || !channels.length) { -%>
49-
5046
echo "No channels"
5147
<% } else if (global.capabilities.isV3) { -%>
5248
<% channels.forEach((channel) => { -%>
5349
<% channel.ordererGroup.orderers.forEach((orderer) => { -%>
5450
<% const org = orgs.find((org) => org.name === orderer.orgName); -%>
5551
docker exec -i <%= org.cli.address %> bash -c <% -%>
56-
"source scripts/channel_fns.sh; createChannelAndJoinTls '<%= channel.name %>' '<%= orderer.orgMspName %>' 'example.com' 'crypto/users/Admin@test/msp' '<%= orderer.address %>:<%= orderer.adminPort %>';"
52+
"source scripts/channel_fns.sh; createChannelAndJoinTls '<%= channel.name %>' '<%= orderer.orgMspName %>' '<%= orderer.address %>:<%= orderer.adminPort %>' 'crypto/users/Admin@<%= orderer.domain %>/tls/client.crt' 'crypto/users/Admin@<%= orderer.domain %>/tls/client.key' 'crypto-orderer/tlsca.<%= orderer.domain %>-cert.pem';"
5753
<% }) -%>
58-
sleep 8
54+
<% if (channel.ordererGroup.consensus !== "BFT") { -%>
55+
sleep 4 # Wait for Raft cluster to establish consensus
56+
<% } -%>
5957
<% channel.orgs.forEach((org, orgNo) => { -%>
6058
<% org.peers.forEach((peer, peerNo) => { -%>
6159
<% if (orgNo == 0 && peerNo == 0) { -%>

src/setup-docker/templates/fabric-docker/docker-compose.yaml

Lines changed: 23 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -188,29 +188,39 @@ services:
188188
- FABRIC_LOGGING_SPEC=${LOGGING_LEVEL}
189189
- ORDERER_GENERAL_LISTENADDRESS=0.0.0.0
190190
- ORDERER_GENERAL_LISTENPORT=<%= orderer.port %>
191-
- ORDERER_GENERAL_GENESISMETHOD=file
192-
<%_ if(global.capabilities.isV2) { _%>
193-
- ORDERER_GENERAL_BOOTSTRAPFILE=/var/hyperledger/config/<%= ordererGroup.genesisBlockName %>
194-
<%_ } else { _%>
195-
- ORDERER_GENERAL_GENESISFILE=/var/hyperledger/config/<%= ordererGroup.genesisBlockName %>
196-
<%_ } _%>
197-
- ORDERER_GENERAL_LOCALMSPID=<%= org.mspName %>
191+
- ORDERER_GENERAL_LOCALMSPID=<%= orderer.orgMspName %>
198192
- ORDERER_GENERAL_LOCALMSPDIR=/var/hyperledger/orderer/msp
199-
- GODEBUG=netdns=go
200193
<%_ if(global.tls) { _%>
201-
# metrics
202-
- ORDERER_OPERATIONS_LISTENADDRESS=<%= orderer.address %>:9440
203-
- ORDERER_METRICS_PROVIDER=prometheus
204-
# enabled TLS
194+
# TLS Configuration
205195
- ORDERER_GENERAL_TLS_ENABLED=true
206196
- ORDERER_GENERAL_TLS_PRIVATEKEY=/var/hyperledger/orderer/tls/server.key
207197
- ORDERER_GENERAL_TLS_CERTIFICATE=/var/hyperledger/orderer/tls/server.crt
208198
- ORDERER_GENERAL_TLS_ROOTCAS=[/var/hyperledger/orderer/tls/ca.crt]
199+
# Cluster TLS Configuration
209200
- ORDERER_GENERAL_CLUSTER_CLIENTCERTIFICATE=/var/hyperledger/orderer/tls/server.crt
210201
- ORDERER_GENERAL_CLUSTER_CLIENTPRIVATEKEY=/var/hyperledger/orderer/tls/server.key
211202
- ORDERER_GENERAL_CLUSTER_ROOTCAS=[/var/hyperledger/orderer/tls/ca.crt]
212-
- ORDERER_ADMIN_LISTENADDRESS=<%= orderer.address %>:7053
213203
<%_ } _%>
204+
<%_ if(global.capabilities.isV2) { _%>
205+
# Genesis file configuration (for solo and raft)
206+
- ORDERER_GENERAL_GENESISMETHOD=file
207+
- ORDERER_GENERAL_BOOTSTRAPFILE=/var/hyperledger/config/<%= ordererGroup.genesisBlockName %>
208+
<%_ } _%>
209+
<%_ if(global.capabilities.isV3) { _%>
210+
# V3 specific settings
211+
- ORDERER_GENERAL_BOOTSTRAPMETHOD=none
212+
- ORDERER_CHANNELPARTICIPATION_ENABLED=true
213+
# Admin endpoint configuration
214+
- ORDERER_ADMIN_TLS_ENABLED=true
215+
- ORDERER_ADMIN_TLS_CERTIFICATE=/var/hyperledger/orderer/tls/server.crt
216+
- ORDERER_ADMIN_TLS_PRIVATEKEY=/var/hyperledger/orderer/tls/server.key
217+
- ORDERER_ADMIN_TLS_ROOTCAS=[/var/hyperledger/orderer/tls/ca.crt]
218+
- ORDERER_ADMIN_TLS_CLIENTROOTCAS=[/var/hyperledger/orderer/tls/ca.crt]
219+
- ORDERER_ADMIN_LISTENADDRESS=0.0.0.0:<%= orderer.adminPort %>
220+
<%_ } _%>
221+
# Metrics configuration
222+
- ORDERER_OPERATIONS_LISTENADDRESS=<%= orderer.address %>:9443
223+
- ORDERER_METRICS_PROVIDER=prometheus
214224
working_dir: /var/hyperledger/orderer
215225
command: orderer
216226
ports:

src/setup-docker/templates/fabric-docker/scripts/cli/channel_fns-v3.sh

Lines changed: 24 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -30,36 +30,34 @@ createChannelAndJoin() {
3030

3131
createChannelAndJoinTls() {
3232
local CHANNEL_NAME=$1
33+
local ORDERER_MSP_NAME=$2
34+
local ORDERER_ADMIN_ADDRESS=$3
35+
local ADMIN_TLS_SIGN_CERT=$(realpath "$4")
36+
local ADMIN_TLS_PRIVATE_KEY=$(realpath "$5")
37+
local TLS_CA_CERT_PATH=$(realpath "$6")
3338

34-
local CORE_PEER_LOCALMSPID=$2
35-
local CORE_PEER_ADDRESS=$3
36-
# local CORE_PEER_MSPCONFIGPATH=$(realpath "$4")
37-
# local CORE_PEER_TLS_MSPCONFIGPATH=$(realpath "$5")
38-
# local TLS_CA_CERT_PATH=$(realpath "$6")
39-
local ORDERER_URL=$5
40-
41-
# local CORE_PEER_TLS_CERT_FILE=$CORE_PEER_TLS_MSPCONFIGPATH/client.crt
42-
# local CORE_PEER_TLS_KEY_FILE=$CORE_PEER_TLS_MSPCONFIGPATH/client.key
43-
# local CORE_PEER_TLS_ROOTCERT_FILE=$CORE_PEER_TLS_MSPCONFIGPATH/ca.crt
44-
45-
local DIR_NAME=step-createChannelAndJoinTls-$CHANNEL_NAME-$CORE_PEER_LOCALMSPID
39+
local DIR_NAME=step-createChannelAndJoinTls-$CHANNEL_NAME-$ORDERER_MSP_NAME
4640

4741
echo "Creating channel with name (TLS): ${CHANNEL_NAME}"
48-
echo " Orderer: $ORDERER_URL"
49-
echo " CORE_PEER_LOCALMSPID: $CORE_PEER_LOCALMSPID"
50-
# echo " CORE_PEER_ADDRESS: $CORE_PEER_ADDRESS"
51-
# echo " CORE_PEER_MSPCONFIGPATH: $CORE_PEER_MSPCONFIGPATH"
52-
# echo " TLS_CA_CERT_PATH is: $TLS_CA_CERT_PATH"
53-
# echo " CORE_PEER_TLS_CERT_FILE: $CORE_PEER_TLS_CERT_FILE"
54-
# echo " CORE_PEER_TLS_KEY_FILE: $CORE_PEER_TLS_KEY_FILE"
55-
# echo " CORE_PEER_TLS_ROOTCERT_FILE: $CORE_PEER_TLS_ROOTCERT_FILE"
42+
echo " ORDERER_MSP_NAME: $ORDERER_MSP_NAME"
43+
echo " ORDERER_ADMIN_ADDRESS: $ORDERER_ADMIN_ADDRESS"
44+
echo " ADMIN_TLS_SIGN_CERT: $ADMIN_TLS_SIGN_CERT"
45+
echo " ADMIN_TLS_PRIVATE_KEY: $ADMIN_TLS_PRIVATE_KEY"
46+
echo " TLS_CA_CERT_PATH: $TLS_CA_CERT_PATH"
47+
48+
if [ ! -d "$DIR_NAME" ]; then
49+
mkdir "$DIR_NAME"
50+
cp /var/hyperledger/cli/config/"$CHANNEL_NAME".pb "$DIR_NAME"
51+
fi
52+
53+
osnadmin channel join \
54+
--channelID "${CHANNEL_NAME}" \
55+
--config-block "$DIR_NAME/$CHANNEL_NAME.pb" \
56+
-o "${ORDERER_ADMIN_ADDRESS}" \
57+
--client-cert "${ADMIN_TLS_SIGN_CERT}" \
58+
--client-key "${ADMIN_TLS_PRIVATE_KEY}" \
59+
--ca-file "${TLS_CA_CERT_PATH}"
5660

57-
mkdir "$DIR_NAME" && cd "$DIR_NAME"
58-
59-
60-
cp /var/hyperledger/cli/config/"$CHANNEL_NAME".pb .
61-
osnadmin channel join --channelID "${CHANNEL_NAME}" --config-block ./"$CHANNEL_NAME".pb -o "${ORDERER_URL}" # --ca-file "${TLS_CA_CERT_PATH}" --client-cert "${ADMIN_SIGN_CERT}" --client-key "${ADMIN_PRIVATE_KEY}"
62-
6361
rm -rf "$DIR_NAME"
6462
}
6563

0 commit comments

Comments
 (0)