Skip to content

Commit c2bfde6

Browse files
committed
Update
1 parent 8e67a33 commit c2bfde6

File tree

11 files changed

+232
-101
lines changed

11 files changed

+232
-101
lines changed

README.md

+113-27
Original file line numberDiff line numberDiff line change
@@ -199,10 +199,10 @@ EOF
199199

200200
```bash
201201
export PEER_IMAGE=hyperledger/fabric-peer
202-
export PEER_VERSION=3.0.0-preview
202+
export PEER_VERSION=2.5.5
203203

204204
export ORDERER_IMAGE=hyperledger/fabric-orderer
205-
export ORDERER_VERSION=3.0.0-preview
205+
export ORDERER_VERSION=2.5.5
206206

207207
export CA_IMAGE=hyperledger/fabric-ca
208208
export CA_VERSION=1.5.7
@@ -213,10 +213,10 @@ export CA_VERSION=1.5.7
213213

214214
```bash
215215
export PEER_IMAGE=hyperledger/fabric-peer
216-
export PEER_VERSION=3.0.0-preview
216+
export PEER_VERSION=2.5.5
217217

218218
export ORDERER_IMAGE=hyperledger/fabric-orderer
219-
export ORDERER_VERSION=3.0.0-preview
219+
export PEER_VERSION=2.5.5
220220

221221
export CA_IMAGE=hyperledger/fabric-ca
222222
export CA_VERSION=1.5.7
@@ -293,12 +293,12 @@ kubectl hlf ca register --name=org1-ca --user=peer --secret=peerpw --type=peer \
293293
### Deploy a peer
294294

295295
```bash
296-
kubectl hlf peer create --statedb=couchdb --image=$PEER_IMAGE --version=$PEER_VERSION --storage-class=standard --enroll-id=peer --mspid=Org1MSP \
296+
kubectl hlf peer create --statedb=leveldb --image=$PEER_IMAGE --version=$PEER_VERSION --storage-class=standard --enroll-id=peer --mspid=Org1MSP \
297297
--enroll-pw=peerpw --capacity=5Gi --name=org1-peer0 --ca-name=org1-ca.default \
298298
--hosts=peer0-org1.localho.st --istio-port=443
299299

300300

301-
kubectl hlf peer create --statedb=couchdb --image=$PEER_IMAGE --version=$PEER_VERSION --storage-class=standard --enroll-id=peer --mspid=Org1MSP \
301+
kubectl hlf peer create --statedb=leveldb --image=$PEER_IMAGE --version=$PEER_VERSION --storage-class=standard --enroll-id=peer --mspid=Org1MSP \
302302
--enroll-pw=peerpw --capacity=5Gi --name=org1-peer1 --ca-name=org1-ca.default \
303303
--hosts=peer1-org1.localho.st --istio-port=443
304304

@@ -365,16 +365,6 @@ kubectl hlf ordnode create --image=$ORDERER_IMAGE --version=$ORDERER_VERSION \
365365
--hosts=orderer2-ord.localho.st --admin-hosts=admin-orderer2-ord.localho.st --istio-port=443
366366

367367

368-
kubectl hlf ordnode create --image=$ORDERER_IMAGE --version=$ORDERER_VERSION \
369-
--storage-class=standard --enroll-id=orderer --mspid=OrdererMSP \
370-
--enroll-pw=ordererpw --capacity=2Gi --name=ord-node4 --ca-name=ord-ca.default \
371-
--hosts=orderer3-ord.localho.st --admin-hosts=admin-orderer3-ord.localho.st --istio-port=443
372-
373-
kubectl hlf ordnode create --image=$ORDERER_IMAGE --version=$ORDERER_VERSION \
374-
--storage-class=standard --enroll-id=orderer --mspid=OrdererMSP \
375-
--enroll-pw=ordererpw --capacity=2Gi --name=ord-node5 --ca-name=ord-ca.default \
376-
--hosts=orderer4-ord.localho.st --admin-hosts=admin-orderer4-ord.localho.st --istio-port=443
377-
378368

379369
kubectl wait --timeout=180s --for=condition=Running fabricorderernodes.hlf.kungfusoftware.es --all
380370
```
@@ -408,6 +398,20 @@ kubectl hlf ca enroll --name=ord-ca --namespace=default \
408398
--ca-name tlsca --output orderermsp.yaml
409399
```
410400

401+
### Register and enrolling Org1MSP Orderer identity
402+
403+
```bash
404+
# register
405+
kubectl hlf ca register --name=org1-ca --user=admin --secret=adminpw \
406+
--type=admin --enroll-id enroll --enroll-secret=enrollpw --mspid=Org1MSP
407+
408+
# enroll
409+
410+
kubectl hlf ca enroll --name=org1-ca --namespace=default \
411+
--user=admin --secret=adminpw --mspid Org1MSP \
412+
--ca-name tlsca --output org1msp-tlsca.yaml
413+
```
414+
411415

412416
### Register and enrolling Org1MSP identity
413417

@@ -421,6 +425,12 @@ kubectl hlf ca enroll --name=org1-ca --namespace=default \
421425
--user=admin --secret=adminpw --mspid Org1MSP \
422426
--ca-name ca --output org1msp.yaml
423427

428+
# enroll
429+
kubectl hlf identity create --name org1-admin --namespace default \
430+
--ca-name org1-ca --ca-namespace default \
431+
--ca ca --mspid Org1MSP --enroll-id admin --enroll-secret adminpw
432+
433+
424434
```
425435

426436
### Create the secret
@@ -445,9 +455,9 @@ kubectl apply -f - <<EOF
445455
apiVersion: hlf.kungfusoftware.es/v1alpha1
446456
kind: FabricMainChannel
447457
metadata:
448-
name: demo
458+
name: demo2
449459
spec:
450-
name: demo
460+
name: demo2
451461
adminOrdererOrganizations:
452462
- mspID: OrdererMSP
453463
adminPeerOrganizations:
@@ -493,7 +503,41 @@ spec:
493503
secretKey: org1msp.yaml
494504
secretName: wallet
495505
secretNamespace: default
496-
externalPeerOrganizations: []
506+
externalPeerOrganizations:
507+
- mspID: Org2MSP
508+
tlsRootCert: |
509+
-----BEGIN CERTIFICATE-----
510+
MIICRjCCAeugAwIBAgIQHA5nWgCvnS9ECuauCtat6TAKBggqhkjOPQQDAjBtMQsw
511+
CQYDVQQGEwJFUzERMA8GA1UEBxMIQWxpY2FudGUxETAPBgNVBAkTCEFsaWNhbnRl
512+
MRkwFwYDVQQKExBLdW5nIEZ1IFNvZnR3YXJlMQ0wCwYDVQQLEwRUZWNoMQ4wDAYD
513+
VQQDEwV0bHNjYTAeFw0yMzExMTIxNTA3MTlaFw0zMzExMTMxNTA3MTlaMG0xCzAJ
514+
BgNVBAYTAkVTMREwDwYDVQQHEwhBbGljYW50ZTERMA8GA1UECRMIQWxpY2FudGUx
515+
GTAXBgNVBAoTEEt1bmcgRnUgU29mdHdhcmUxDTALBgNVBAsTBFRlY2gxDjAMBgNV
516+
BAMTBXRsc2NhMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEVB/ZqhVePy96JJH/
517+
QhYCT6hRlH7xQVSrTwI1QjLG6GgENV2c10m2EkXH/BHpLJCjZ8ZkGiqVVx/XMxZd
518+
E6p1B6NtMGswDgYDVR0PAQH/BAQDAgGmMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggr
519+
BgEFBQcDATAPBgNVHRMBAf8EBTADAQH/MCkGA1UdDgQiBCBcmb8svFB8Yn96e3d4
520+
Ft+8wZTrAYLielLn6Je/zxbjODAKBggqhkjOPQQDAgNJADBGAiEA3ad5GVhA5RSr
521+
mjhnKlazFh53einWYfWxcYNy42v+EbcCIQCt+Fc4nzlMg0ebG3HDlpa9wjJpX9MW
522+
caEunJxSdY4vWg==
523+
-----END CERTIFICATE-----
524+
signRootCert: |
525+
-----BEGIN CERTIFICATE-----
526+
MIICQTCCAeagAwIBAgIRALIMDeWXSDaW2cYssTwLrTAwCgYIKoZIzj0EAwIwajEL
527+
MAkGA1UEBhMCRVMxETAPBgNVBAcTCEFsaWNhbnRlMREwDwYDVQQJEwhBbGljYW50
528+
ZTEZMBcGA1UEChMQS3VuZyBGdSBTb2Z0d2FyZTENMAsGA1UECxMEVGVjaDELMAkG
529+
A1UEAxMCY2EwHhcNMjMxMTEyMTUwNzE5WhcNMzMxMTEzMTUwNzE5WjBqMQswCQYD
530+
VQQGEwJFUzERMA8GA1UEBxMIQWxpY2FudGUxETAPBgNVBAkTCEFsaWNhbnRlMRkw
531+
FwYDVQQKExBLdW5nIEZ1IFNvZnR3YXJlMQ0wCwYDVQQLEwRUZWNoMQswCQYDVQQD
532+
EwJjYTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABAomf+HmUFMdRS7D+IZRCEkQ
533+
QEDyrakkXYEE/vwSlXhSW5PsVVXQdi/wmXj2YwoPqsDk2IrXc7KT2tni5wOxJ8mj
534+
bTBrMA4GA1UdDwEB/wQEAwIBpjAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUH
535+
AwEwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQgESLOdwga9AciHgTGFTR6Zxzh
536+
Z/vpQ2gC3V0MbzFvfOYwCgYIKoZIzj0EAwIDSQAwRgIhAKLN7BlISJJzjjHOqJ25
537+
EFfWSywv6MgddOsGgrQxsedCAiEAxhMj/EJcYvVu5rr+xiHo7TarixkdvmA5k/eW
538+
kOWiji0=
539+
-----END CERTIFICATE-----
540+
497541
ordererOrganizations:
498542
- caName: "ord-ca"
499543
caNamespace: "default"
@@ -502,11 +546,11 @@ spec:
502546
port: 7053
503547
mspID: OrdererMSP
504548
ordererEndpoints:
505-
- ord-node1:7050
549+
- orderer0-ord.localho.st:443
506550
orderersToJoin: []
507551
orderers:
508-
- host: ord-node1
509-
port: 7050
552+
- host: orderer0-ord.localho.st
553+
port: 443
510554
tlsCert: |-
511555
${ORDERER0_TLS_CERT}
512556
@@ -524,17 +568,17 @@ kubectl apply -f - <<EOF
524568
apiVersion: hlf.kungfusoftware.es/v1alpha1
525569
kind: FabricFollowerChannel
526570
metadata:
527-
name: testbft02-org1msp
571+
name: demo2-org1msp
528572
spec:
529573
anchorPeers:
530-
- host: org1-peer0.default
531-
port: 7051
574+
- host: peer0-org1.localho.st
575+
port: 443
532576
hlfIdentity:
533577
secretKey: org1msp.yaml
534578
secretName: wallet
535579
secretNamespace: default
536580
mspId: Org1MSP
537-
name: testbft02
581+
name: demo2
538582
externalPeersToJoin: []
539583
orderers:
540584
- certificate: |
@@ -683,12 +727,54 @@ At this point, you should have:
683727

684728
- Ordering service with 1 nodes and a CA
685729
- Peer organization with a peer and a CA
686-
- A channel **demo**
730+
- A channel **demo2**
687731
- A chaincode install in peer0
688732
- A chaincode approved and committed
689733

690734
If something went wrong or didn't work, please, open an issue.
691735

736+
737+
738+
### Prepare connection string for a peer
739+
740+
To prepare the connection string, we have to create a CRD of type `FabricNetworkConfig` with the following command:
741+
742+
```bash
743+
kubectl apply -f - <<EOF
744+
apiVersion: hlf.kungfusoftware.es/v1alpha1
745+
kind: FabricNetworkConfig
746+
metadata:
747+
name: nc
748+
namespace: default
749+
spec:
750+
channels:
751+
- testbft02
752+
identities:
753+
- name: org1-admin
754+
namespace: default
755+
internal: false
756+
namespaces: []
757+
organization: ''
758+
organizations:
759+
- Org1MSP
760+
- OrdererMSP
761+
secretName: nc-networkconfig
762+
EOF
763+
764+
```
765+
## Launch the explorer
766+
767+
```bash
768+
export API_HOST=operator-api.localho.st
769+
export HLF_SECRET_NAME="nc-networkconfig"
770+
export HLF_MSPID="Org1MSP"
771+
export HLF_SECRET_KEY="config.yaml" # e.g. networkConfig.yaml
772+
export HLF_USER="org1-admin-default"
773+
kubectl hlf operatorapi create --name=operator-api --namespace=default --version="v0.0.17-beta9" --hosts=$API_HOST --ingress-class-name=istio \
774+
--hlf-mspid="${HLF_MSPID}" --hlf-secret="${HLF_SECRET_NAME}" --hlf-secret-key="${HLF_SECRET_KEY}" \
775+
--hlf-user="${HLF_USER}"
776+
```
777+
692778
## Cleanup the environment
693779

694780
```bash

charts/hlf-ca/values.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -26,4 +26,4 @@ gatewayApi:
2626
gatewayName: ""
2727
gatewayNamespace: ""
2828

29-
envVars: []
29+
envVars: []

charts/hlf-ordnode/templates/service.yaml

+4
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,10 @@ metadata:
77
spec:
88
type: {{ .Values.service.type }}
99
ports:
10+
- port: 443
11+
targetPort: 7050
12+
protocol: TCP
13+
name: grpc-443
1014
- port: {{ .Values.service.port }}
1115
targetPort: 7050
1216
protocol: TCP

charts/hlf-ordnode/values.yaml

+1-7
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,7 @@ genesis: CiIaIDucvmxr45nIpNz5bdNbGR37tbG28dfCtU2Uz8ixeKBAEuhDCuVDCuJDCnwKXggBEAE
88
bootstrapMethod: "none"
99
channelParticipationEnabled: false
1010

11-
resources:
12-
limits:
13-
cpu: 100m
14-
memory: 128Mi
15-
requests:
16-
cpu: 100m
17-
memory: 128Mi
11+
resources: {}
1812

1913
proxy:
2014
enabled: false

charts/hlf-peer/values.yaml

+8-14
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,12 @@ istio:
88
hosts: []
99
ingressGateway: ingressgateway
1010

11+
traefik:
12+
entryPoints: []
13+
middlewares: []
14+
hosts: []
15+
16+
1117
dockerSocketPath: /var/run/docker.sock
1218

1319
envVars: []
@@ -87,27 +93,15 @@ couchdb:
8793
pullPolicy: IfNotPresent
8894

8995
resources:
90-
peer:
91-
limits:
92-
cpu: 100m
93-
memory: 128Mi
94-
requests:
95-
cpu: 100m
96-
memory: 128Mi
96+
peer: {}
9797
couchdbExporter:
9898
limits:
9999
cpu: 300m
100100
memory: 128Mi
101101
requests:
102102
cpu: 100m
103103
memory: 64Mi
104-
couchdb:
105-
limits:
106-
cpu: 100m
107-
memory: 128Mi
108-
requests:
109-
cpu: 100m
110-
memory: 128Mi
104+
couchdb: {}
111105
chaincode:
112106
limits:
113107
cpu: 100m

controllers/ca/ca_controller.go

+2
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,8 @@ type FabricCAReconciler struct {
5656
Scheme *runtime.Scheme
5757
Config *rest.Config
5858
ClientSet *kubernetes.Clientset
59+
Wait bool
60+
Timeout time.Duration
5961
}
6062

6163
func parseECDSAPrivateKey(contents []byte) (*ecdsa.PrivateKey, error) {

controllers/mainchannel/mainchannel_controller.go

+22
Original file line numberDiff line numberDiff line change
@@ -1265,6 +1265,10 @@ func updateApplicationChannelConfigTx(currentConfigTX configtx.ConfigTx, newConf
12651265
if err != nil {
12661266
return errors.Wrapf(err, "failed to set ACLs")
12671267
}
1268+
err = currentConfigTX.Orderer().SetBatchTimeout(newConfigTx.Orderer.BatchTimeout)
1269+
if err != nil {
1270+
return errors.Wrapf(err, "failed to set batch timeout")
1271+
}
12681272
return nil
12691273
}
12701274
func updateOrdererChannelConfigTx(currentConfigTX configtx.ConfigTx, newConfigTx configtx.Channel) error {
@@ -1387,6 +1391,24 @@ func updateOrdererChannelConfigTx(currentConfigTX configtx.ConfigTx, newConfigTx
13871391
}
13881392
}
13891393

1394+
err = currentConfigTX.Orderer().BatchSize().SetMaxMessageCount(
1395+
newConfigTx.Orderer.BatchSize.MaxMessageCount,
1396+
)
1397+
if err != nil {
1398+
return errors.Wrapf(err, "failed to set max message count")
1399+
}
1400+
err = currentConfigTX.Orderer().BatchSize().SetAbsoluteMaxBytes(
1401+
newConfigTx.Orderer.BatchSize.AbsoluteMaxBytes,
1402+
)
1403+
if err != nil {
1404+
return errors.Wrapf(err, "failed to set absolute max bytes")
1405+
}
1406+
err = currentConfigTX.Orderer().BatchSize().SetPreferredMaxBytes(
1407+
newConfigTx.Orderer.BatchSize.PreferredMaxBytes,
1408+
)
1409+
if err != nil {
1410+
return errors.Wrapf(err, "failed to set preferred max bytes")
1411+
}
13901412
err = currentConfigTX.Orderer().SetPolicies(
13911413
newConfigTx.Orderer.Policies,
13921414
)

controllers/ordnode/ordnode_controller.go

+2
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,8 @@ type FabricOrdererNodeReconciler struct {
5252
Config *rest.Config
5353
AutoRenewCertificates bool
5454
AutoRenewCertificatesDelta time.Duration
55+
Wait bool
56+
Timeout time.Duration
5557
}
5658

5759
const ordererNodeFinalizer = "finalizer.orderernode.hlf.kungfusoftware.es"

0 commit comments

Comments
 (0)