Date   

Hyperledger Fabric Documentation Workgroup call - Eastern hemisphere - Fri, 01/01/2021 #cal-notice

fabric@lists.hyperledger.org Calendar <noreply@...>
 

Hyperledger Fabric Documentation Workgroup call - Eastern hemisphere

When:
Friday, 1 January 2021
6:00am to 7:00am
(GMT+00:00) Europe/London

Where:
https://zoom.us/my/hyperledger.community.backup?pwd=dkJKdHRlc3dNZEdKR1JYdW40R2pDUT09

Organizer:
pama@...

Description:
Documentation workgroup call.
Agenda, minutes and recordings: https://wiki.hyperledger.org/display/fabric/Documentation+Working+Group


Join Zoom Meeting
https://zoom.us/j/6223336701?pwd=dkJKdHRlc3dNZEdKR1JYdW40R2pDUT09
 
Meeting ID: 622 333 6701
Passcode: 475869


Hyperledger Fabric Documentation Workgroup call - Eastern hemisphere - Fri, 01/01/2021 6:00am-7:00am #cal-reminder

fabric@lists.hyperledger.org Calendar <fabric@...>
 

Reminder: Hyperledger Fabric Documentation Workgroup call - Eastern hemisphere

When: Friday, 1 January 2021, 6:00am to 7:00am, (GMT+00:00) Europe/London

Where:https://zoom.us/my/hyperledger.community.backup?pwd=dkJKdHRlc3dNZEdKR1JYdW40R2pDUT09

View Event

Organizer: Pam Andrejko pama@...

Description: Documentation workgroup call.
Agenda, minutes and recordings: https://wiki.hyperledger.org/display/fabric/Documentation+Working+Group


Join Zoom Meeting
https://zoom.us/j/6223336701?pwd=dkJKdHRlc3dNZEdKR1JYdW40R2pDUT09
 
Meeting ID: 622 333 6701
Passcode: 475869


Re: Ordering Service REST API

Brett T Logan <brett.t.logan@...>
 

I missed replying all in the original thread, doing so now for the record.
 
Brett Logan
Software Engineer, IBM Blockchain
Phone: 1-984-242-6890
 
 
 

----- Original message -----
From: Chris Davidson <ackmena@...>
To: Brett T Logan <Brett.T.Logan@...>
Cc:
Subject: [EXTERNAL] RE: [Hyperledger Fabric] Ordering Service REST API
Date: Tue, Dec 29, 2020 12:33 PM
 
Thanks and have a great 2021.
-CD
 
 
Sent with ProtonMail Secure Email.
 
‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐
On Tuesday, December 29, 2020 10:57 PM, Brett T Logan <Brett.T.Logan@...> wrote:
 
The plan is to actually add support for JWT for authenticating requests.
 
Chris Davidson --- [EXTERNAL] Re: [Hyperledger Fabric] Ordering Service REST API ---
 
From: "Chris Davidson" <ackmena@...>
To: "Brett T Logan" <Brett.T.Logan@...>
Date: Tue, Dec 29, 2020 12:25
Subject: [EXTERNAL] Re: [Hyperledger Fabric] Ordering Service REST API

Brett
Thanks for the quick response. I did go through the PR, seems like an excellent addition. May I ask a simple question?
If you use REST API for osnadmin, you would need to supply the ca-cert,client-cert and client-key. How do you plan to accept these for the API? This would be very helpful in cases where you cannot depend on the CLI? Would be very grateful for any pointers/tips.
Regards
CD
 
 
Sent with ProtonMail Secure Email.
 
‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐
On Tuesday, December 29, 2020 10:19 PM, Brett T Logan <Brett.T.Logan@...> wrote:
 
Hi Chris,

It's a work in progress, you can checkout the PR here: https://github.com/hyperledger/fabric/pull/2113 Unfortunately it probably won't be complete until after the New Year with most people out for the holidays.

Brett Logan
 
Chris Davidson via lists.hyperledger.org --- [EXTERNAL] [Hyperledger Fabric] Ordering Service REST API ---
 
From: "Chris Davidson via lists.hyperledger.org" <ackmena=protonmail.com@...>
To: fabric@...
Date: Tue, Dec 29, 2020 11:42
Subject: [EXTERNAL] [Hyperledger Fabric] Ordering Service REST API

Hi All,
Is there any swagger documentation or any pointers to access the REST API exposed by each ordering node?
This is referenced here:
 
Thanks in advance and a happy new year to all you folks!
Regards
CD
 
 
Sent with ProtonMail Secure Email.
 
 
 
 


Re: Fabric 2.0: commit readiness returns false but approvalformyorg returned success

Manindra Singh
 

Hi Nikhil,

In response to your following comment, I re-ran the commit readiness command with those options but still get the same result:
"I do not see the following parameters on the commit readiness command: --init-required true --signature-policy "AND ('Org1MSP.peer','Org2MSP.peer')" "
Command: peer lifecycle chaincode checkcommitreadiness -o orderer.example.com:7050 --channelID allarewelcome --tls --cafile $ORDERER_TLS_CA -name sacc --version 1.0 --sequence 1 --init-required true --signature-policy "AND ('Org1MSP.peer','Org2MSP.peer')" --output json

Output:

{
"approvals": {
"Org1MSP": false,
"Org2MSP": false
}
}

Hi Chris,

In response to your following comment, please find the result of querying installed chaincodes, $
CC_PACKAGE_ID on Org1 peer(same result comes for Org2 peer also):
"If you query the peer for installed chaincodes, what is the output?
You are using a variable export ($CC_PACKAGE_ID) to represent the packageID. Please note actual value of $CC_PACKAGE_ID and make sure it matches the one in your output (in this instance from your log below...sacc_1.0:5562f868f6fd43ff8873f403aa52bc6928161fec933065d0b81e2193f6038bd0)"
Command: peer lifecycle chaincode queryinstalled
Output: 
Installed chaincodes on peer:
Package ID: sacc_1.0:5562f868f6fd43ff8873f403aa52bc6928161fec933065d0b81e2193f6038bd0, Label: sacc_1.0

Command: echo $CC_PACKAGE_ID
Output: sacc_1.0:5562f868f6fd43ff8873f403aa52bc6928161fec933065d0b81e2193f6038bd0



Re: Fabric 2.0: commit readiness returns false but approvalformyorg returned success

Manindra Singh
 

Hi,

I have a network of 2 orgs - Org1 and Org2. I am getting the same error when checking commit readiness using following even though I ran approveformyorg on both Orgs:
Command: peer lifecycle chaincode checkcommitreadiness --channelID allarewelcome --name sacc --version 1.0 --sequence 1 --output json
Output:
{
"approvals": {
"Org1MSP": false,
"Org2MSP": false
}
}

Executed the approveformyorg command on both Org1 and Org2:
Command: peer lifecycle chaincode approveformyorg -o orderer.example.com:7050 --tls --cafile $ORDERER_TLS_CA --name sacc --version 1.0 --channelID allarewelcome --sequence 1 --package-id $CC_PACKAGE_ID --init-required true --signature-policy "AND ('Org1MSP.peer','Org2MSP.peer')"
Output for Org1:
2020-12-26 12:46:35.726 UTC [chaincodeCmd] ClientWait -> INFO 001 txid [9c46efbd1cbac697c4ae1ff1dbe68554a4348523664e7a8ef27b1bb93dd6848d] committed with status (VALID) at peer0.org1.example.com:7051

Logs from peer0.org1.example.com:
2020-12-26 12:46:33.199 UTC [lifecycle] ApproveChaincodeDefinitionForOrg -> INFO 09b Successfully endorsed chaincode approval with name 'sacc', package ID 'sacc_1.0:5562f868f6fd43ff8873f403aa52bc6928161fec933065d0b81e2193f6038bd0', on channel 'allarewelcome' with definition {sequence: 1, endorsement info: (version: '1.0', plugin: 'escc', init required: true), validation info: (plugin: 'vscc', policy: '0a2c120c120a080212020800120208011a0d120b0a074f7267314d535010031a0d120b0a074f7267324d53501003'), collections: ()}


Similar output for Org2 also. As mentioned by Siddharth, signature policy is also specified in approveformyorg command but still getting the same issue. Can anyone help with anything else that is missing? Please let me know if I need to provide any more details.


Ordering Service REST API

Chris Davidson
 

Hi All,
Is there any swagger documentation or any pointers to access the REST API exposed by each ordering node?
This is referenced here:

Thanks in advance and a happy new year to all you folks!
Regards
CD


Sent with ProtonMail Secure Email.


Private Chaincode Lab - Tue, 12/29/2020 #cal-notice

fabric@lists.hyperledger.org Calendar <noreply@...>
 

Private Chaincode Lab

When:
Tuesday, 29 December 2020
8:00am to 9:00am
(GMT-08:00) America/Los Angeles

Where:
https://zoom.us/my/hyperledger.community.3?pwd=UE90WHhEaHRqOGEyMkV3cldKa2d2dz09

Organizer:
bur@...

Description:
Two of the Hyperleger Labs projects (private data objects and private chain code) are collaborating to develop a "private smart contracts" capability.

Join Zoom Meeting https://zoom.us/j/5184947650?pwd=UE90WHhEaHRqOGEyMkV3cldKa2d2dz09 Meeting ID: 518 494 7650 Passcode: 475869


Questions when using API Server

Deok Youb Kim
 

I compose the system with the following structure.

Mobile App <-> Api Server <-> Fabric Network(Peer, Orderer)

I want to manage the user's key and certificate in the mobile app. In this case, what should be done when invoke and query?

For example, when performing a query, QueryByChaincodeRequest is created in the Mobile App, and after passing it to API Server, the API Server wants to perform Query using the MSP information of the user. This is because I want to manage the user's key only in the Mobile App.

I make QueryByChaincodeRequest in Mobile App and try to deliver it to API Server using Serialized, but QueryByChaincodeRequest doesn't seem to be serialized.
Also, the UserContext inside QueryByChaincodeRequest contains the user's key and certificate information, so it seems that this is not what I want.

Is it possible to construct this way? I wonder how to do it.

Thank your help


Hyperledger Fabric Documentation Workgroup call - Eastern hemisphere - Fri, 12/25/2020 #cal-notice

fabric@lists.hyperledger.org Calendar <noreply@...>
 

Hyperledger Fabric Documentation Workgroup call - Eastern hemisphere

When:
Friday, 25 December 2020
6:00am to 7:00am
(GMT+00:00) Europe/London

Where:
https://zoom.us/my/hyperledger.community.backup?pwd=dkJKdHRlc3dNZEdKR1JYdW40R2pDUT09

Organizer:
pama@...

Description:
Documentation workgroup call.
Agenda, minutes and recordings: https://wiki.hyperledger.org/display/fabric/Documentation+Working+Group


Join Zoom Meeting
https://zoom.us/j/6223336701?pwd=dkJKdHRlc3dNZEdKR1JYdW40R2pDUT09
 
Meeting ID: 622 333 6701
Passcode: 475869


Hyperledger Fabric with SoftHSM2 #fabric #hsm

pchomsinsap@...
 

Hi I have been trying to get Hyperledger Fabric (v2.0.1) to connect to SoftHSM2 (v2.5.0), but haven't been successful at that. The main purpose is to create a secret key for symmetric encryption/decryption and securely store the key inside the SoftHSM2. I plan to send unencrypted data from the Fabric smart contract to be encrypted by SoftHSM2 and send back to smart contract to be stored on blockchain ledger. Likewise, I plan to send encrypted data from blockchain to be decrypted by SoftHSM2 and unencrypted data back to smart contract then the users.

My issue is when I package my chaincode and invoke smart contract method, Fabric is not able to find the file with .so extension. In my case, the file is libsofhsm2.so. I've tested my code outside of Fabric to make sure that key generation, encryption, and decryption functions work.

Should I try to package Fabric chaincode manually into the .tar.gz file? Would that be an correct approach? I first thought that Fabric smart contract would be able to locate external file on my computer but maybe I was wrong? I have also looked into configuring Fabric to use PKCS11 but wasn't successful (https://hyperledger-fabric.readthedocs.io/en/release-2.0/dev-setup/build.html?highlight=softhsm2). I thought that this configuration is for Fabric to store user private keys in SoftHSM2 but all I want to store is a secret key which is separate from this. I don't know if this is relevant but the smart contract is written in Javascript instead of Go.

Any help or suggestion would really be appreciated. Thank you!


Hyperledger Fabric Documentation Workgroup call - Eastern hemisphere - Fri, 12/25/2020 6:00am-7:00am #cal-reminder

fabric@lists.hyperledger.org Calendar <fabric@...>
 

Reminder: Hyperledger Fabric Documentation Workgroup call - Eastern hemisphere

When: Friday, 25 December 2020, 6:00am to 7:00am, (GMT+00:00) Europe/London

Where:https://zoom.us/my/hyperledger.community.backup?pwd=dkJKdHRlc3dNZEdKR1JYdW40R2pDUT09

View Event

Organizer: Pam Andrejko pama@...

Description: Documentation workgroup call.
Agenda, minutes and recordings: https://wiki.hyperledger.org/display/fabric/Documentation+Working+Group


Join Zoom Meeting
https://zoom.us/j/6223336701?pwd=dkJKdHRlc3dNZEdKR1JYdW40R2pDUT09
 
Meeting ID: 622 333 6701
Passcode: 475869


Fabric Contributor Meeting - Wed, 12/23/2020 #cal-notice

fabric@lists.hyperledger.org Calendar <noreply@...>
 

Fabric Contributor Meeting

When:
Wednesday, 23 December 2020
9:00am to 10:00am
(GMT-05:00) America/New York

Where:
https://zoom.us/my/hyperledger.community.3?pwd=UE90WHhEaHRqOGEyMkV3cldKa2d2dz09

Organizer:
enyeart@...

Description:
For meeting agendas, recordings, and more details, see https://wiki.hyperledger.org/display/fabric/Contributor+Meetings

Join Zoom Meeting
https://zoom.us/j/5184947650?pwd=UE90WHhEaHRqOGEyMkV3cldKa2d2dz09
 
Meeting ID: 518 494 7650
Passcode: 475869


what does cauthdsl mean in fabric/common/cauthdsl package #fabric-questions #fabric

sukill
 

It looks like a compound word of c, auth and dsl i guess but don't know what does c stand for


Private Chaincode Lab - Tue, 12/22/2020 #cal-notice

fabric@lists.hyperledger.org Calendar <noreply@...>
 

Private Chaincode Lab

When:
Tuesday, 22 December 2020
8:00am to 9:00am
(GMT-08:00) America/Los Angeles

Where:
https://zoom.us/my/hyperledger.community.3?pwd=UE90WHhEaHRqOGEyMkV3cldKa2d2dz09

Organizer:
bur@...

Description:
Two of the Hyperleger Labs projects (private data objects and private chain code) are collaborating to develop a "private smart contracts" capability.

Join Zoom Meeting https://zoom.us/j/5184947650?pwd=UE90WHhEaHRqOGEyMkV3cldKa2d2dz09 Meeting ID: 518 494 7650 Passcode: 475869


Getting block data in a user chaincode #hyperledger-fabric #qscc

@secure12
 

Block data can be retrieved invoking the QSCC using its, e.g. GetBlockByNumber(), functions. However, qscc cannot be invoked from other chaincodes (line 96 of https://github.com/hyperledger/fabric/blob/master/core/scc/qscc/query.go).

Is it possible for user chaincodes to get block data, either directly from the ledger or using QSCC?

I know it is easy to get blocks using the SDK, but we would like the block data be used to ensure consistency between most peers' ledger, so we reckon the block retrieval should be done in the chaincode level.


Why cannot do range query on composite key? #fabric #fabric-questions

Yueming Xu
 

I see that fabric-chaincode-go implementation limits GetStateByRange to only simple keys. However, it would be nice if I can get a set of composite keys by range and then fetch corresponding state data by using the state key embedded in the returned composite keys. 


Is this a limitation of how composite keys are implemented, or is it a limitation of the fabric-chaincode-go package only?


Re: Hyperledger Fabric Operator

DAVID VIEJO POMATA
 

Hello again,

We released a new version of the Hyperledger Fabric Operator which includes:
  • New Kubectl plugin to create a network with a few commands
  • Parametrization for the peer and ordering service

If there is any doubt, please let me know :)

Regards.
David Viejo.


Why does only the first peer report TLS handshake errors? #tls #docker-compose #fabric-questions

chin-kai.ong@...
 

I am trying to deploy a three-orderer two-peer network in Docker swarm, but somehow I keep seeing TLS handshake errors logged in only the first peer.

I'm working with Fabric 1.4.9, and these are the commands I run:
1. cryptogen generate --config=./crypto-config.yaml
2. docker stack deploy --compose-file=docker-compose-orderer.yaml fabric
3. docker stack deploy --compose-file=docker-compose-peer.yaml fabric

My log is as follows:
 
[nodeCmd] serve -> INFO 001 Starting peer:
 Version: 1.4.9
 Commit SHA: da55272a7
 Go version: go1.13.12
 OS/Arch: linux/amd64
 Chaincode:
  Base Image Version: 0.4.21
  Base Docker Namespace: hyperledger
  Base Docker Label: org.hyperledger.fabric
  Docker Namespace: hyperledger
[ledgermgmt] initialize -> INFO 002 Initializing ledger mgmt
[kvledger] NewProvider -> INFO 003 Initializing ledger provider
[kvledger] NewProvider -> INFO 004 ledger provider Initialized
[couchdb] CreateDatabaseIfNotExist -> INFO 00c Created state database _users
[couchdb] CreateDatabaseIfNotExist -> INFO 00d Created state database _replicator
[ledgermgmt] initialize -> INFO 00e ledger mgmt initialized
[peer] func1 -> INFO 00f Auto-detected peer address: 10.0.2.46:7051
[peer] func1 -> INFO 010 Returning peer0.isprint.dev.accessreal.com:7051
[peer] func1 -> INFO 011 Auto-detected peer address: 10.0.2.46:7051
[peer] func1 -> INFO 012 Returning peer0.isprint.dev.accessreal.com:7051
[nodeCmd] serve -> INFO 013 Starting peer with TLS enabled
[nodeCmd] computeChaincodeEndpoint -> INFO 014 Entering computeChaincodeEndpoint with peerHostname: peer0.isprint.dev.accessreal.com
[nodeCmd] computeChaincodeEndpoint -> INFO 015 Exit with ccEndpoint: peer0.isprint.dev.accessreal.com:7052
[sccapi] registerSysCC -> INFO 016 system chaincode lscc(github.com/hyperledger/fabric/core/scc/lscc) registered
[sccapi] registerSysCC -> INFO 017 system chaincode cscc(github.com/hyperledger/fabric/core/scc/cscc) registered
[sccapi] registerSysCC -> INFO 018 system chaincode qscc(github.com/hyperledger/fabric/core/scc/qscc) registered
[sccapi] registerSysCC -> INFO 019 system chaincode (+lifecycle,github.com/hyperledger/fabric/core/chaincode/lifecycle,true) disabled
[certmonitor] trackCertExpiration -> INFO 01a The enrollment certificate will expire on 2030-12-16 19:25:00 +0000 UTC
[certmonitor] trackCertExpiration -> INFO 01b The server TLS certificate will expire on 2030-12-16 19:25:00 +0000 UTC
[peer1.isprint.dev.accessreal.com:8051]
[gossip.gossip] NewGossipService -> INFO 01d Creating gossip service with self membership of Endpoint: peer0.isprint.dev.accessreal.com:7051, InternalEndpoint: peer0.isprint.dev.accessreal.com:7051, PKI-ID: 3f45d9ec65a3844d4ba7ae9393cc94fc95ad037c1bbcdeb982c98b42d0db9bce, Metadata:
[gossip.gossip] start -> INFO 01e Gossip instance peer0.isprint.dev.accessreal.com:7051 started
[sccapi] deploySysCC -> INFO 01f system chaincode lscc/(github.com/hyperledger/fabric/core/scc/lscc) deployed
[cscc] Init -> INFO 020 Init CSCC
[sccapi] deploySysCC -> INFO 021 system chaincode cscc/(github.com/hyperledger/fabric/core/scc/cscc) deployed
[qscc] Init -> INFO 022 Init QSCC
[sccapi] deploySysCC -> INFO 023 system chaincode qscc/(github.com/hyperledger/fabric/core/scc/qscc) deployed
[sccapi] deploySysCC -> INFO 024 system chaincode (+lifecycle,github.com/hyperledger/fabric/core/chaincode/lifecycle) disabled
[nodeCmd] serve -> INFO 025 Deployed system chaincodes
[discovery] NewService -> INFO 026 Created with config TLS: true, authCacheMaxSize: 1000, authCachePurgeRatio: 0.750000
[nodeCmd] registerDiscoveryService -> INFO 027 Discovery service activated
[peer0.isprint.dev.accessreal.com:7051]
[peer0.isprint.dev.accessreal.com:7051]
[nodeCmd] func7 -> INFO 02a Starting profiling server with listenAddress = 0.0.0.0:6060
[/var/hyperledger/production/ledgersData/chains]
[fsblkstorage] LoadPreResetHeight -> INFO 02c Loading Pre-reset heights
[/var/hyperledger/production/ledgersData/chains/chains] missing... exiting
[fsblkstorage] LoadPreResetHeight -> INFO 02e Pre-reset heights loaded
[core.comm] ServerHandshake -> ERRO 02f TLS handshake failed with error remote error: tls: internal error server=PeerServer remoteaddress=10.11.65.1:39393
[core.comm] ServerHandshake -> ERRO 030 TLS handshake failed with error remote error: tls: internal error server=PeerServer remoteaddress=10.11.65.1:41613
[core.comm] ServerHandshake -> ERRO 031 TLS handshake failed with error remote error: tls: internal error server=PeerServer remoteaddress=10.11.65.1:39394
...(and then it's just this error message)

My crypto-config.yaml is as follows:

OrdererOrgs:
  - Name: Orderer
    Domain: dev.accessreal.com
    EnableNodeOUs: true
    Specs:
      - Hostname: orderer1
        SANS:
           - 192.168.50.65
           - isprintdev
      - Hostname: orderer2
        SANS:
           - 192.168.50.65
           - isprintdev
      - Hostname: orderer3
        SANS:
           - 192.168.50.65
           - isprintdev
 
PeerOrgs:
  - Name: isprint
    Domain: isprint.dev.accessreal.com
    EnableNodeOUs: true
    Specs:
      - Hostname: peer0
        SANS: 
           - 192.168.50.65
           - isprintdev
      - Hostname: peer1
        SANS: 
           - 192.168.50.65
           - isprintdev
    Template:
      Count: 2
    Users:
      Count: 1

This is my Docker compose file for the orderers:

version: '3.4'
 
volumes:
  orderer1.dev.accessreal.com:
  orderer2.dev.accessreal.com:
  orderer3.dev.accessreal.com:
  
networks:
  isprint:
    external:
      name: fabric
 
services:
  dev_orderer1:
    image: hyperledger/fabric-orderer
    environment:
      - ORDERER_GENERAL_LOGLEVEL=INFO
      - ORDERER_GENERAL_LISTENADDRESS=0.0.0.0
      - ORDERER_GENERAL_GENESISMETHOD=file
      - ORDERER_GENERAL_GENESISFILE=/var/hyperledger/orderer/orderer.genesis.block
      - ORDERER_GENERAL_LOCALMSPID=OrdererMSP
      - ORDERER_GENERAL_LOCALMSPDIR=/var/hyperledger/orderer/msp
      - ORDERER_GENERAL_TLS_ENABLED=true
      - ORDERER_GENERAL_TLS_PRIVATEKEY=/var/hyperledger/orderer/tls/server.key
      - ORDERER_GENERAL_TLS_CERTIFICATE=/var/hyperledger/orderer/tls/server.crt
      - ORDERER_GENERAL_TLS_ROOTCAS=[/var/hyperledger/orderer/tls/ca.crt]
      - ORDERER_GENERAL_CLUSTER_CLIENTCERTIFICATE=/var/hyperledger/orderer/tls/server.crt
      - ORDERER_GENERAL_CLUSTER_CLIENTPRIVATEKEY=/var/hyperledger/orderer/tls/server.key
      - ORDERER_GENERAL_CLUSTER_ROOTCAS=[/var/hyperledger/orderer/tls/ca.crt]
    working_dir: /opt/gopath/src/github.com/hyperledger/fabric
    command: orderer
    volumes:
    - ./channel-artifacts/genesis.block:/var/hyperledger/orderer/orderer.genesis.block
    - ./crypto-config/ordererOrganizations/dev.accessreal.com/orderers/orderer1.dev.accessreal.com/msp:/var/hyperledger/orderer/msp
    - ./crypto-config/ordererOrganizations/dev.accessreal.com/orderers/orderer1.dev.accessreal.com/tls/:/var/hyperledger/orderer/tls
    - orderer1.dev.accessreal.com:/var/hyperledger/production/orderer
    deploy:
            mode: replicated
            replicas: 1
            restart_policy:
              condition: on-failure
            placement:
                constraints:
                    - node.hostname == isprintdev
    ports:
      - published: 7050
        target: 7050
        mode: host
    networks:
      isprint:
        aliases:
          - orderer1.dev.accessreal.com
 
  dev_orderer2:
    image: hyperledger/fabric-orderer:latest
    environment:
      - ORDERER_GENERAL_LOGLEVEL=INFO
      - ORDERER_GENERAL_LISTENADDRESS=0.0.0.0
      - ORDERER_GENERAL_GENESISMETHOD=file
      - ORDERER_GENERAL_GENESISFILE=/var/hyperledger/orderer/orderer.genesis.block
      - ORDERER_GENERAL_LOCALMSPID=OrdererMSP
      - ORDERER_GENERAL_LOCALMSPDIR=/var/hyperledger/orderer/msp
      - ORDERER_GENERAL_TLS_ENABLED=true
      - ORDERER_GENERAL_TLS_PRIVATEKEY=/var/hyperledger/orderer/tls/server.key
      - ORDERER_GENERAL_TLS_CERTIFICATE=/var/hyperledger/orderer/tls/server.crt
      - ORDERER_GENERAL_TLS_ROOTCAS=[/var/hyperledger/orderer/tls/ca.crt]
      - ORDERER_GENERAL_CLUSTER_CLIENTCERTIFICATE=/var/hyperledger/orderer/tls/server.crt
      - ORDERER_GENERAL_CLUSTER_CLIENTPRIVATEKEY=/var/hyperledger/orderer/tls/server.key
      - ORDERER_GENERAL_CLUSTER_ROOTCAS=[/var/hyperledger/orderer/tls/ca.crt]
    working_dir: /opt/gopath/src/github.com/hyperledger/fabric
    command: orderer
    volumes:
    - ./channel-artifacts/genesis.block:/var/hyperledger/orderer/orderer.genesis.block
    - ./crypto-config/ordererOrganizations/dev.accessreal.com/orderers/orderer2.dev.accessreal.com/msp:/var/hyperledger/orderer/msp
    - ./crypto-config/ordererOrganizations/dev.accessreal.com/orderers/orderer2.dev.accessreal.com/tls/:/var/hyperledger/orderer/tls
    - orderer2.dev.accessreal.com:/var/hyperledger/production/orderer
    deploy:
            mode: replicated
            replicas: 1
            restart_policy:
              condition: on-failure
            placement:
                constraints:
                    - node.hostname == isprintdev
    ports:
      - published: 8050
        target: 7050
        mode: host
    networks:
      isprint:
        aliases:
          - orderer2.dev.accessreal.com
 
  dev_orderer3:
    image: hyperledger/fabric-orderer:latest
    environment:
      - ORDERER_GENERAL_LOGLEVEL=INFO
      - ORDERER_GENERAL_LISTENADDRESS=0.0.0.0
      - ORDERER_GENERAL_GENESISMETHOD=file
      - ORDERER_GENERAL_GENESISFILE=/var/hyperledger/orderer/orderer.genesis.block
      - ORDERER_GENERAL_LOCALMSPID=OrdererMSP
      - ORDERER_GENERAL_LOCALMSPDIR=/var/hyperledger/orderer/msp
      - ORDERER_GENERAL_TLS_ENABLED=true
      - ORDERER_GENERAL_TLS_PRIVATEKEY=/var/hyperledger/orderer/tls/server.key
      - ORDERER_GENERAL_TLS_CERTIFICATE=/var/hyperledger/orderer/tls/server.crt
      - ORDERER_GENERAL_TLS_ROOTCAS=[/var/hyperledger/orderer/tls/ca.crt]
      - ORDERER_GENERAL_CLUSTER_CLIENTCERTIFICATE=/var/hyperledger/orderer/tls/server.crt
      - ORDERER_GENERAL_CLUSTER_CLIENTPRIVATEKEY=/var/hyperledger/orderer/tls/server.key
      - ORDERER_GENERAL_CLUSTER_ROOTCAS=[/var/hyperledger/orderer/tls/ca.crt]
    working_dir: /opt/gopath/src/github.com/hyperledger/fabric
    command: orderer
    volumes:
    - ./channel-artifacts/genesis.block:/var/hyperledger/orderer/orderer.genesis.block
    - ./crypto-config/ordererOrganizations/dev.accessreal.com/orderers/orderer3.dev.accessreal.com/msp:/var/hyperledger/orderer/msp
    - ./crypto-config/ordererOrganizations/dev.accessreal.com/orderers/orderer3.dev.accessreal.com/tls/:/var/hyperledger/orderer/tls
    - orderer3.dev.accessreal.com:/var/hyperledger/production/orderer
    deploy:
            mode: replicated
            replicas: 1
            restart_policy:
              condition: on-failure
            placement:
                constraints:
                    - node.hostname == isprintdev
    ports:
      - published: 9050
        target: 7050
        mode: host
    networks:
      isprint:
        aliases:
          - orderer3.dev.accessreal.com

Then this is the Docker compose file that I use to raise the peers:

version: '3.4'
 
volumes:
  peer0.isprint.dev.accessreal.com:
  peer1.isprint.dev.accessreal.com:
  couchdb1.isprint.dev.accessreal.com:
  couchdb2.isprint.dev.accessreal.com:
  
networks:
  isprint:
    external:
      name: fabric
 
services:
  dev_couchdb1:
    image: hyperledger/fabric-couchdb
    environment:
      - COUCHDB_USER= couchdb
      - COUCHDB_PASSWORD=couchdb123
    volumes:
        - couchdb1.isprint.dev.accessreal.com:/opt/couchdb/data
    deploy:
            mode: replicated
            replicas: 1
            restart_policy:
              condition: on-failure
            placement:
                constraints:
                    - node.hostname == isprintdev
    ports:
     - published: 5984
       target: 5984
       mode: host
    networks:
      isprint:
        aliases:
          - couchdb1.isprint.dev.accessreal.com
 
  dev_couchdb2:
    image: hyperledger/fabric-couchdb
    environment:
      - COUCHDB_USER= couchdb
      - COUCHDB_PASSWORD=couchdb123
    volumes:
        - couchdb2.isprint.dev.accessreal.com:/opt/couchdb/data
    deploy:
            mode: replicated
            replicas: 1
            restart_policy:
              condition: on-failure
            placement:
                constraints:
                    - node.hostname == isprintdev
    ports:
     - published: 6984
       target: 5984
       mode: host
    networks:
      isprint:
        aliases:
          - couchdb2.isprint.dev.accessreal.com
 
  dev_peer0:
    image: hyperledger/fabric-peer:latest
    environment:
      - CORE_LEDGER_STATE_STATEDATABASE=CouchDB
      - CORE_LEDGER_STATE_COUCHDBCONFIG_COUCHDBADDRESS=couchdb1.isprint.dev.accessreal.com:5984
      - CORE_LEDGER_STATE_COUCHDBCONFIG_USERNAME=couchdb
      - CORE_LEDGER_STATE_COUCHDBCONFIG_PASSWORD=couchdb123
      - CORE_VM_ENDPOINT=unix:///host/var/run/docker.sock
      - CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE=fabric
      - CORE_PEER_CHAINCODELISTENADDRESS=0.0.0.0:7052
      - FABRIC_LOGGING_SPEC=INFO
      - CORE_PEER_TLS_ENABLED=true
      - CORE_PEER_GOSSIP_USELEADERELECTION=true
      - CORE_PEER_GOSSIP_ORGLEADER=false
      - CORE_PEER_PROFILE_ENABLED=true
      - CORE_PEER_TLS_CERT_FILE=/etc/hyperledger/fabric/tls/server.crt
      - CORE_PEER_TLS_KEY_FILE=/etc/hyperledger/fabric/tls/server.key
      - CORE_PEER_TLS_ROOTCERT_FILE=/etc/hyperledger/fabric/tls/ca.crt
      - CORE_PEER_ID=peer0.isprint.dev.accessreal.com
      - CORE_PEER_ADDRESS=peer0.isprint.dev.accessreal.com:7051
      - CORE_PEER_GOSSIP_BOOTSTRAP=peer1.isprint.dev.accessreal.com:8051
      - CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer0.isprint.dev.accessreal.com:7051
      - CORE_PEER_LOCALMSPID=isprintMSP
      - CORE_VM_DOCKER_ATTACHSTDOUT=true
      - CORE_CHAINCODE_STARTUPTIMEOUT=1200s
      - CORE_CHAINCODE_EXECUTETIMEOUT=800s
    working_dir: /opt/gopath/src/github.com/hyperledger/fabric/peer
    command: peer node start
    volumes:
        - /var/run/:/host/var/run/
        - ./crypto-config/peerOrganizations/isprint.dev.accessreal.com/peers/peer0.isprint.dev.accessreal.com/msp:/etc/hyperledger/fabric/msp
        - ./crypto-config/peerOrganizations/isprint.dev.accessreal.com/peers/peer0.isprint.dev.accessreal.com/tls:/etc/hyperledger/fabric/tls
        - peer0.isprint.dev.accessreal.com:/var/hyperledger/production
    deploy:
            mode: replicated
            replicas: 1
            restart_policy:
              condition: on-failure
            placement:
                constraints:
                    - node.hostname == isprintdev
    ports:
            - published: 7051
              target: 7051
              mode: host
            - published: 7053
              target: 7053
              mode: host
    networks:
      isprint:
        aliases:
          - peer0.isprint.dev.accessreal.com
 
 
  dev_peer1:
    image: hyperledger/fabric-peer:latest
    environment:
      - CORE_LEDGER_STATE_STATEDATABASE=CouchDB
      - CORE_LEDGER_STATE_COUCHDBCONFIG_COUCHDBADDRESS=couchdb2.isprint.dev.accessreal.com:5984
      - CORE_LEDGER_STATE_COUCHDBCONFIG_USERNAME=couchdb
      - CORE_LEDGER_STATE_COUCHDBCONFIG_PASSWORD=couchdb123
      - CORE_VM_ENDPOINT=unix:///host/var/run/docker.sock
      - CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE=fabric
      - CORE_PEER_CHAINCODELISTENADDRESS=0.0.0.0:7052
      - FABRIC_LOGGING_SPEC=INFO
      - CORE_PEER_TLS_ENABLED=true
      - CORE_PEER_GOSSIP_USELEADERELECTION=true
      - CORE_PEER_GOSSIP_ORGLEADER=false
      - CORE_PEER_PROFILE_ENABLED=true
      - CORE_PEER_TLS_CERT_FILE=/etc/hyperledger/fabric/tls/server.crt
      - CORE_PEER_TLS_KEY_FILE=/etc/hyperledger/fabric/tls/server.key
      - CORE_PEER_TLS_ROOTCERT_FILE=/etc/hyperledger/fabric/tls/ca.crt
      - CORE_PEER_ID=peer1.isprint.dev.accessreal.com
      - CORE_PEER_ADDRESS=peer1.isprint.dev.accessreal.com:8051
      - CORE_PEER_GOSSIP_BOOTSTRAP=peer0.isprint.dev.accessreal.com:7051
      - CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer1.isprint.dev.accessreal.com:8051
      - CORE_PEER_LOCALMSPID=isprintMSP
      - CORE_VM_DOCKER_ATTACHSTDOUT=true
      - CORE_CHAINCODE_STARTUPTIMEOUT=1200s
      - CORE_CHAINCODE_EXECUTETIMEOUT=800s
    working_dir: /opt/gopath/src/github.com/hyperledger/fabric/peer
    command: peer node start
 
    volumes:
        - /var/run/:/host/var/run/
        - ./crypto-config/peerOrganizations/isprint.dev.accessreal.com/peers/peer1.isprint.dev.accessreal.com/msp:/etc/hyperledger/fabric/msp
        - ./crypto-config/peerOrganizations/isprint.dev.accessreal.com/peers/peer1.isprint.dev.accessreal.com/tls:/etc/hyperledger/fabric/tls
        - peer1.isprint.dev.accessreal.com:/var/hyperledger/production
    deploy:
            mode: replicated
            replicas: 1
            restart_policy:
              condition: on-failure
            placement:
                constraints:
                    - node.hostname == isprintdev
    ports:
            - published: 8051
              target: 7051
              mode: host
            - published: 8053
              target: 7053
              mode: host
    networks:
      isprint:
        aliases:
          - peer1.isprint.dev.accessreal.com

Please let me know if there's any other information that I should add to this post. I'm really not that familiar working with Fabric, and I've spent days trying to resolve this but I don't know where to look.


Hyperledger Fabric Documentation Workgroup call - Eastern hemisphere - Fri, 12/18/2020 #cal-notice

fabric@lists.hyperledger.org Calendar <noreply@...>
 

Hyperledger Fabric Documentation Workgroup call - Eastern hemisphere

When:
Friday, 18 December 2020
6:00am to 7:00am
(GMT+00:00) Europe/London

Where:
https://zoom.us/my/hyperledger.community.backup?pwd=dkJKdHRlc3dNZEdKR1JYdW40R2pDUT09

Organizer:
pama@...

Description:
Documentation workgroup call.
Agenda, minutes and recordings: https://wiki.hyperledger.org/display/fabric/Documentation+Working+Group


Join Zoom Meeting
https://zoom.us/j/6223336701?pwd=dkJKdHRlc3dNZEdKR1JYdW40R2pDUT09
 
Meeting ID: 622 333 6701
Passcode: 475869


Network Hardware Requirement

q p <arthus.dot@...>
 

Hello there, I wanted to know if there is a document somewhere about the question of hardware requirements for a network, for example RAM, type of disk, bandwidth for one peer, for one orderer etc etc..

Thank you in advance