From a711deb104668f2e22f67aebaf07fdfa32d5c0e7 Mon Sep 17 00:00:00 2001 From: Sanket Date: Fri, 22 Nov 2024 18:15:10 +0530 Subject: [PATCH] version 3 completed heading towards adding BFT support Signed-off-by: Sanket --- e2e-network/docker/test-05-version3-BFT.sh | 2 +- .../fablo-config-hlf3-1orgs-1chaincode.json | 2 +- .../configtx-raft-template.yaml.ejs | 15 +++++++++- .../fabric-docker/commands-generated.sh | 15 +++++----- .../scripts/cli/channel_fns-v3.sh | 28 +++++++++---------- 5 files changed, 38 insertions(+), 24 deletions(-) diff --git a/e2e-network/docker/test-05-version3-BFT.sh b/e2e-network/docker/test-05-version3-BFT.sh index b5d566dd..179d2c53 100755 --- a/e2e-network/docker/test-05-version3-BFT.sh +++ b/e2e-network/docker/test-05-version3-BFT.sh @@ -8,7 +8,7 @@ FABLO_HOME="$TEST_TMP/../../.." export FABLO_HOME -CONFIG="$FABLO_HOME/fablo-config-hlf3-bft-1orgs-1chaincode.json" +CONFIG="$FABLO_HOME/samples/fablo-config-hlf3-bft-1orgs-1chaincode.json" networkUp() { "$FABLO_HOME/fablo-build.sh" diff --git a/samples/fablo-config-hlf3-1orgs-1chaincode.json b/samples/fablo-config-hlf3-1orgs-1chaincode.json index c56c53c1..467c2920 100644 --- a/samples/fablo-config-hlf3-1orgs-1chaincode.json +++ b/samples/fablo-config-hlf3-1orgs-1chaincode.json @@ -16,7 +16,7 @@ "orderers": [ { "groupName": "group1", - "type": "BFT", + "type": "raft", "instances": 4 } ] diff --git a/src/setup-docker/templates/fabric-config/configtx-raft-template.yaml.ejs b/src/setup-docker/templates/fabric-config/configtx-raft-template.yaml.ejs index ef7ad0fe..8218b70b 100755 --- a/src/setup-docker/templates/fabric-config/configtx-raft-template.yaml.ejs +++ b/src/setup-docker/templates/fabric-config/configtx-raft-template.yaml.ejs @@ -8,7 +8,20 @@ <% })} -%> <% if (ordererGroup.consensus == "BFT") { %> - smartBFT: + SmartBFT: + RequestBatchMaxCount: 100 + RequestBatchMaxInterval: 50ms + RequestForwardTimeout: 2s + RequestComplainTimeout: 20s + RequestAutoRemoveTimeout: 3m0s + ViewChangeResendInterval: 5s + ViewChangeTimeout: 20s + LeaderHeartbeatTimeout: 1m0s + CollectTimeout: 1s + RequestBatchMaxBytes: 10485760 + IncomingMessageBufferSize: 200 + RequestPoolSize: 100000 + LeaderHeartbeatCount: 10 ConsenterMapping:<% ordererGroup.orderers.forEach(function(orderer, index) { %> - ID: <%= index+1 %> Host: <%= orderer.address %> diff --git a/src/setup-docker/templates/fabric-docker/commands-generated.sh b/src/setup-docker/templates/fabric-docker/commands-generated.sh index 8d1f81fe..7e3d1717 100644 --- a/src/setup-docker/templates/fabric-docker/commands-generated.sh +++ b/src/setup-docker/templates/fabric-docker/commands-generated.sh @@ -44,24 +44,26 @@ generateChannelsArtifacts() { } installChannels() { + set -x <% if (!channels || !channels.length) { -%> + echo "No channels" <% } else if (global.capabilities.isV3) { -%> <% channels.forEach((channel) => { -%> + <% channel.ordererGroup.orderers.forEach((orderer) => { -%> + <% const org = orgs.find((org) => org.name === orderer.orgName); -%> + docker exec -i <%= org.cli.address %> bash -c <% -%> + "source scripts/channel_fns.sh; createChannelAndJoinTls '<%= channel.name %>' '<%= orderer.orgMspName %>' 'example.com' 'crypto/users/Admin@test/msp' '<%= orderer.address %>:<%= orderer.adminPort %>';" + <% }) -%> + sleep 8 <% channel.orgs.forEach((org, orgNo) => { -%> <% org.peers.forEach((peer, peerNo) => { -%> <% if (orgNo == 0 && peerNo == 0) { -%> printHeadline "Creating '<%= channel.name %>' on <%= org.name %>/<%= peer.name %>" "U1F63B" <% if (!global.tls) { -%> - docker exec -i <%= org.cli.address %> bash -c <% -%> - "source scripts/channel_fns.sh; createChannelAndJoin '<%= channel.name %>' '<%= org.mspName %>' '<%= peer.fullAddress %>' 'crypto/users/Admin@<%= org.domain %>/msp' '<%= channel.ordererHead.address %>:<%= channel.ordererHead.adminPort %>';" - sleep 5 docker exec -i <%= org.cli.address %> bash -c <% -%> "source scripts/channel_fns.sh; fetchChannelAndJoin '<%= channel.name %>' '<%= org.mspName %>' '<%= peer.fullAddress %>' 'crypto/users/Admin@<%= org.domain %>/msp' '<%= channel.ordererHead.fullAddress %>';" <% } else { -%> - docker exec -i <%= org.cli.address %> bash -c <% -%> - "source scripts/channel_fns.sh; createChannelAndJoinTls '<%= channel.name %>' '<%= org.mspName %>' '<%= peer.fullAddress %>' 'crypto/users/Admin@<%= org.domain %>/msp' 'crypto/users/Admin@<%= org.domain %>/tls' 'crypto-orderer/tlsca.<%= channel.ordererHead.domain %>-cert.pem' '<%= channel.ordererHead.address %>:<%= channel.ordererHead.adminPort %>';" - sleep 5 docker exec -i <%= org.cli.address %> bash -c <% -%> "source scripts/channel_fns.sh; fetchChannelAndJoinTls '<%= channel.name %>' '<%= org.mspName %>' '<%= peer.fullAddress %>' 'crypto/users/Admin@<%= org.domain %>/msp' 'crypto/users/Admin@<%= org.domain %>/tls' 'crypto-orderer/tlsca.<%= channel.ordererHead.domain %>-cert.pem' '<%= channel.ordererHead.fullAddress %>';" <% } %> @@ -107,7 +109,6 @@ installChannels() { <% } -%> } - installChaincodes() { <% if (!chaincodes || !chaincodes.length) { -%> echo "No chaincodes" diff --git a/src/setup-docker/templates/fabric-docker/scripts/cli/channel_fns-v3.sh b/src/setup-docker/templates/fabric-docker/scripts/cli/channel_fns-v3.sh index 88be1167..6eaf90ce 100644 --- a/src/setup-docker/templates/fabric-docker/scripts/cli/channel_fns-v3.sh +++ b/src/setup-docker/templates/fabric-docker/scripts/cli/channel_fns-v3.sh @@ -33,26 +33,26 @@ createChannelAndJoinTls() { local CORE_PEER_LOCALMSPID=$2 local CORE_PEER_ADDRESS=$3 - local CORE_PEER_MSPCONFIGPATH=$(realpath "$4") - local CORE_PEER_TLS_MSPCONFIGPATH=$(realpath "$5") - local TLS_CA_CERT_PATH=$(realpath "$6") - local ORDERER_URL=$7 + # local CORE_PEER_MSPCONFIGPATH=$(realpath "$4") + # local CORE_PEER_TLS_MSPCONFIGPATH=$(realpath "$5") + # local TLS_CA_CERT_PATH=$(realpath "$6") + local ORDERER_URL=$5 - local CORE_PEER_TLS_CERT_FILE=$CORE_PEER_TLS_MSPCONFIGPATH/client.crt - local CORE_PEER_TLS_KEY_FILE=$CORE_PEER_TLS_MSPCONFIGPATH/client.key - local CORE_PEER_TLS_ROOTCERT_FILE=$CORE_PEER_TLS_MSPCONFIGPATH/ca.crt + # local CORE_PEER_TLS_CERT_FILE=$CORE_PEER_TLS_MSPCONFIGPATH/client.crt + # local CORE_PEER_TLS_KEY_FILE=$CORE_PEER_TLS_MSPCONFIGPATH/client.key + # local CORE_PEER_TLS_ROOTCERT_FILE=$CORE_PEER_TLS_MSPCONFIGPATH/ca.crt - local DIR_NAME=step-createChannelAndJoinTls-$CHANNEL_NAME-$CORE_PEER_ADDRESS + local DIR_NAME=step-createChannelAndJoinTls-$CHANNEL_NAME-$CORE_PEER_LOCALMSPID echo "Creating channel with name (TLS): ${CHANNEL_NAME}" echo " Orderer: $ORDERER_URL" echo " CORE_PEER_LOCALMSPID: $CORE_PEER_LOCALMSPID" - echo " CORE_PEER_ADDRESS: $CORE_PEER_ADDRESS" - echo " CORE_PEER_MSPCONFIGPATH: $CORE_PEER_MSPCONFIGPATH" - echo " TLS_CA_CERT_PATH is: $TLS_CA_CERT_PATH" - echo " CORE_PEER_TLS_CERT_FILE: $CORE_PEER_TLS_CERT_FILE" - echo " CORE_PEER_TLS_KEY_FILE: $CORE_PEER_TLS_KEY_FILE" - echo " CORE_PEER_TLS_ROOTCERT_FILE: $CORE_PEER_TLS_ROOTCERT_FILE" + # echo " CORE_PEER_ADDRESS: $CORE_PEER_ADDRESS" + # echo " CORE_PEER_MSPCONFIGPATH: $CORE_PEER_MSPCONFIGPATH" + # echo " TLS_CA_CERT_PATH is: $TLS_CA_CERT_PATH" + # echo " CORE_PEER_TLS_CERT_FILE: $CORE_PEER_TLS_CERT_FILE" + # echo " CORE_PEER_TLS_KEY_FILE: $CORE_PEER_TLS_KEY_FILE" + # echo " CORE_PEER_TLS_ROOTCERT_FILE: $CORE_PEER_TLS_ROOTCERT_FILE" mkdir "$DIR_NAME" && cd "$DIR_NAME"