Reputation: 3
Hello everyone i am trying to use service discovery with the node js client to generate transaction proposals, the problem i am having is that when discovery generates the endorsement plan it sends the proposals to the same peer and fails to endorse, here is one of the endorsement plans generated, idk why but peer names are all wrong
{
"chaincode": "auditoria-cc",
"groups": {
"G0": {
"peers": [
{
"mspid": "Org1MSP",
"endpoint": "peer0.org1.autentia-bchain.com:7051",
"ledger_height": {
"low": 11,
"high": 0,
"unsigned": true
},
"chaincodes": [
{
"name": "auditoria-cc",
"version": "1.0"
}
],
"name": "peer0.org1.autentia-bchain.com"
}
]
},
"G1": {
"peers": [
{
"mspid": "Org2MSP",
"endpoint": "peer0.org2.autentia-bchain.com:7051",
"ledger_height": {
"low": 11,
"high": 0,
"unsigned": true
},
"chaincodes": [
{
"name": "auditoria-cc",
"version": "1.0"
}
],
"name": "peer0.org1.autentia-bchain.com"
}
]
},
"G2": {
"peers": [
{
"mspid": "Org3MSP",
"endpoint": "peer0.org3.autentia-bchain.com:7051",
"ledger_height": {
"low": 11,
"high": 0,
"unsigned": true
},
"chaincodes": [
{
"name": "auditoria-cc",
"version": "1.0"
}
],
"name": "peer0.org1.autentia-bchain.com"
}
]
},
"G3": {
"peers": [
{
"mspid": "Org4MSP",
"endpoint": "peer0.org4.autentia-bchain.com:7051",
"ledger_height": {
"low": 11,
"high": 0,
"unsigned": true
},
"chaincodes": [
{
"name": "auditoria-cc",
"version": "1.0"
}
],
"name": "peer0.org1.autentia-bchain.com"
}
]
}
},
"layouts": [
{
"G1": 1,
"G2": 1,
"G0": 1
},
{
"G3": 1,
"G0": 1,
"G1": 1
},
{
"G2": 1,
"G3": 1,
"G0": 1
},
{
"G2": 1,
"G3": 1,
"G1": 1
}
],
"plan_id": "{\"chaincodes\":[{\"name\":\"auditoria-cc\"}]}",
"endorsements": {
}
}
Here is the log when it sends the proposals
[2019-05-13 12:39:39.894] [DEBUG] Helper - [DiscoveryEndorsementHandler]: _endorse - starting layout plan 0
[2019-05-13 12:39:39.895] [DEBUG] Helper - [DiscoveryEndorsementHandler]: _endorse_layout - start
[2019-05-13 12:39:39.895] [DEBUG] Helper - [DiscoveryEndorsementHandler]: _build_endorse_group_member >> G2:0 - start
[2019-05-13 12:39:39.895] [DEBUG] Helper - [DiscoveryEndorsementHandler]: _build_endorse_group_member >> G2:0 - send endorsement to peer0.org1.autentia-bchain.com
[2019-05-13 12:39:39.895] [DEBUG] Helper - [DiscoveryEndorsementHandler]: _build_endorse_group_member >> G3:1 - start
[2019-05-13 12:39:39.895] [DEBUG] Helper - [DiscoveryEndorsementHandler]: _build_endorse_group_member >> G3:1 - send endorsement to peer0.org1.autentia-bchain.com
[2019-05-13 12:39:39.895] [DEBUG] Helper - [DiscoveryEndorsementHandler]: _build_endorse_group_member >> G0:2 - start
[2019-05-13 12:39:39.896] [DEBUG] Helper - [DiscoveryEndorsementHandler]: _build_endorse_group_member >> G0:2 - send endorsement to peer0.org1.autentia-bchain.com
[2019-05-13 12:39:39.902] [WARN] Helper - [DiscoveryEndorsementHandler]: _build_endorse_group_member >> G0:2 - endorsement failed - Error: failed to execute transaction fe2fb28959f06b693e5b834ecfe5fab3aabe8e393f4cc1b2376db7b5aed9f096: error sending: txid: fe2fb28959f06b693e5b834ecfe5fab3aabe8e393f4cc1b2376db7b5aed9f096(auditoria-channel) exists
[2019-05-13 12:39:39.902] [DEBUG] Helper - [DiscoveryEndorsementHandler]: _build_endorse_group_member >> G0:2 - not able to get a completed endorsement
[2019-05-13 12:39:39.902] [WARN] Helper - [DiscoveryEndorsementHandler]: _build_endorse_group_member >> G3:1 - endorsement failed - Error: failed to execute transaction fe2fb28959f06b693e5b834ecfe5fab3aabe8e393f4cc1b2376db7b5aed9f096: error sending: txid: fe2fb28959f06b693e5b834ecfe5fab3aabe8e393f4cc1b2376db7b5aed9f096(auditoria-channel) exists
[2019-05-13 12:39:39.902] [DEBUG] Helper - [DiscoveryEndorsementHandler]: _build_endorse_group_member >> G3:1 - not able to get a completed endorsement
[2019-05-13 12:39:39.965] [DEBUG] Helper - [DiscoveryEndorsementHandler]: _build_endorse_group_member >> G2:0 - endorsement completed to peer0.org1.autentia-bchain.com - 200
EDIT 1: initialization log
[2019-05-13 17:31:18.543] [DEBUG] Helper - getClientForOrg - ****** END Org1 test1
[2019-05-13 17:31:18.544] [DEBUG] invoke-chaincode - Successfully got the fabric client for the organization "Org1"
[2019-05-13 17:31:18.544] [DEBUG] Helper - [NetworkConfig101.js]: getChannel - name auditoria-channel
[2019-05-13 17:31:18.544] [DEBUG] Helper - [NetworkConfig101.js]: getPeer - name peer0.org1.autentia-bchain.com, channel_org: undefined
[2019-05-13 17:31:18.546] [DEBUG] Helper - [NetworkConfig101.js]: getOrganization - name Org1
[2019-05-13 17:31:18.546] [DEBUG] Helper - [Organization.js]: Organization.const
[2019-05-13 17:31:18.546] [DEBUG] Helper - [NetworkConfig101.js]: getPeer - name peer0.org1.autentia-bchain.com, channel_org: undefined
[2019-05-13 17:31:18.547] [DEBUG] Helper - [NetworkConfig101.js]: getCertificateAuthority - name ca.org1.autentia-bchain.com
[2019-05-13 17:31:18.547] [DEBUG] Helper - [CertificateAuthority.js]: CertificateAuthority.const
[2019-05-13 17:31:18.547] [DEBUG] Helper - [NetworkConfig101.js]: getOrganization - name Org1
[2019-05-13 17:31:18.547] [DEBUG] Helper - [Organization.js]: Organization.const
[2019-05-13 17:31:18.547] [DEBUG] Helper - [NetworkConfig101.js]: getPeer - name peer0.org1.autentia-bchain.com, channel_org: undefined
[2019-05-13 17:31:18.547] [DEBUG] Helper - [NetworkConfig101.js]: getCertificateAuthority - name ca.org1.autentia-bchain.com
[2019-05-13 17:31:18.547] [DEBUG] Helper - [CertificateAuthority.js]: CertificateAuthority.const
[2019-05-13 17:31:18.547] [DEBUG] Helper - [NetworkConfig101.js]: _addPeersToChannel - peer0.org1.autentia-bchain.com - grpcs://localhost:7051
[2019-05-13 17:31:18.547] [DEBUG] Helper - [NetworkConfig101.js]: getPeer - name peer0.org2.autentia-bchain.com, channel_org: undefined
[2019-05-13 17:31:18.548] [DEBUG] Helper - [NetworkConfig101.js]: getOrganization - name Org1
[2019-05-13 17:31:18.548] [DEBUG] Helper - [Organization.js]: Organization.const
[2019-05-13 17:31:18.548] [DEBUG] Helper - [NetworkConfig101.js]: getPeer - name peer0.org1.autentia-bchain.com, channel_org: undefined
[2019-05-13 17:31:18.548] [DEBUG] Helper - [NetworkConfig101.js]: getCertificateAuthority - name ca.org1.autentia-bchain.com
[2019-05-13 17:31:18.548] [DEBUG] Helper - [CertificateAuthority.js]: CertificateAuthority.const
[2019-05-13 17:31:18.548] [DEBUG] Helper - [NetworkConfig101.js]: getOrganization - name Org2
[2019-05-13 17:31:18.548] [DEBUG] Helper - [Organization.js]: Organization.const
[2019-05-13 17:31:18.548] [DEBUG] Helper - [NetworkConfig101.js]: getPeer - name peer0.org2.autentia-bchain.com, channel_org: undefined
[2019-05-13 17:31:18.548] [DEBUG] Helper - [NetworkConfig101.js]: getCertificateAuthority - name ca.org2.autentia-bchain.com
[2019-05-13 17:31:18.549] [DEBUG] Helper - [CertificateAuthority.js]: CertificateAuthority.const
[2019-05-13 17:31:18.549] [DEBUG] Helper - [NetworkConfig101.js]: getOrganization - name Org2
[2019-05-13 17:31:18.549] [DEBUG] Helper - [Organization.js]: Organization.const
[2019-05-13 17:31:18.549] [DEBUG] Helper - [NetworkConfig101.js]: getPeer - name peer0.org2.autentia-bchain.com, channel_org: undefined
[2019-05-13 17:31:18.549] [DEBUG] Helper - [NetworkConfig101.js]: getCertificateAuthority - name ca.org2.autentia-bchain.com
[2019-05-13 17:31:18.549] [DEBUG] Helper - [CertificateAuthority.js]: CertificateAuthority.const
[2019-05-13 17:31:18.549] [DEBUG] Helper - [NetworkConfig101.js]: _addPeersToChannel - peer0.org2.autentia-bchain.com - grpcs://localhost:8051
[2019-05-13 17:31:18.550] [DEBUG] Helper - [NetworkConfig101.js]: getPeer - name peer0.org3.autentia-bchain.com, channel_org: undefined
[2019-05-13 17:31:18.553] [DEBUG] Helper - [NetworkConfig101.js]: getOrganization - name Org1
[2019-05-13 17:31:18.553] [DEBUG] Helper - [Organization.js]: Organization.const
[2019-05-13 17:31:18.554] [DEBUG] Helper - [NetworkConfig101.js]: getPeer - name peer0.org1.autentia-bchain.com, channel_org: undefined
[2019-05-13 17:31:18.554] [DEBUG] Helper - [NetworkConfig101.js]: getCertificateAuthority - name ca.org1.autentia-bchain.com
[2019-05-13 17:31:18.554] [DEBUG] Helper - [CertificateAuthority.js]: CertificateAuthority.const
[2019-05-13 17:31:18.555] [DEBUG] Helper - [NetworkConfig101.js]: getOrganization - name Org2
[2019-05-13 17:31:18.555] [DEBUG] Helper - [Organization.js]: Organization.const
[2019-05-13 17:31:18.555] [DEBUG] Helper - [NetworkConfig101.js]: getPeer - name peer0.org2.autentia-bchain.com, channel_org: undefined
[2019-05-13 17:31:18.555] [DEBUG] Helper - [NetworkConfig101.js]: getCertificateAuthority - name ca.org2.autentia-bchain.com
[2019-05-13 17:31:18.555] [DEBUG] Helper - [CertificateAuthority.js]: CertificateAuthority.const
[2019-05-13 17:31:18.555] [DEBUG] Helper - [NetworkConfig101.js]: getOrganization - name Org3
[2019-05-13 17:31:18.555] [DEBUG] Helper - [Organization.js]: Organization.const
[2019-05-13 17:31:18.555] [DEBUG] Helper - [NetworkConfig101.js]: getPeer - name peer0.org3.autentia-bchain.com, channel_org: undefined
[2019-05-13 17:31:18.556] [DEBUG] Helper - [NetworkConfig101.js]: getCertificateAuthority - name ca.org3.autentia-bchain.com
[2019-05-13 17:31:18.556] [DEBUG] Helper - [CertificateAuthority.js]: CertificateAuthority.const
[2019-05-13 17:31:18.556] [DEBUG] Helper - [NetworkConfig101.js]: getOrganization - name Org3
[2019-05-13 17:31:18.556] [DEBUG] Helper - [Organization.js]: Organization.const
[2019-05-13 17:31:18.556] [DEBUG] Helper - [NetworkConfig101.js]: getPeer - name peer0.org3.autentia-bchain.com, channel_org: undefined
[2019-05-13 17:31:18.556] [DEBUG] Helper - [NetworkConfig101.js]: getCertificateAuthority - name ca.org3.autentia-bchain.com
[2019-05-13 17:31:18.556] [DEBUG] Helper - [CertificateAuthority.js]: CertificateAuthority.const
[2019-05-13 17:31:18.556] [DEBUG] Helper - [NetworkConfig101.js]: _addPeersToChannel - peer0.org3.autentia-bchain.com - grpcs://localhost:9051
[2019-05-13 17:31:18.556] [DEBUG] Helper - [NetworkConfig101.js]: getPeer - name peer0.org4.autentia-bchain.com, channel_org: undefined
[2019-05-13 17:31:18.557] [DEBUG] Helper - [NetworkConfig101.js]: getOrganization - name Org1
[2019-05-13 17:31:18.557] [DEBUG] Helper - [Organization.js]: Organization.const
[2019-05-13 17:31:18.557] [DEBUG] Helper - [NetworkConfig101.js]: getPeer - name peer0.org1.autentia-bchain.com, channel_org: undefined
[2019-05-13 17:31:18.557] [DEBUG] Helper - [NetworkConfig101.js]: getCertificateAuthority - name ca.org1.autentia-bchain.com
[2019-05-13 17:31:18.558] [DEBUG] Helper - [CertificateAuthority.js]: CertificateAuthority.const
[2019-05-13 17:31:18.558] [DEBUG] Helper - [NetworkConfig101.js]: getOrganization - name Org2
[2019-05-13 17:31:18.559] [DEBUG] Helper - [Organization.js]: Organization.const
[2019-05-13 17:31:18.559] [DEBUG] Helper - [NetworkConfig101.js]: getPeer - name peer0.org2.autentia-bchain.com, channel_org: undefined
[2019-05-13 17:31:18.559] [DEBUG] Helper - [NetworkConfig101.js]: getCertificateAuthority - name ca.org2.autentia-bchain.com
[2019-05-13 17:31:18.559] [DEBUG] Helper - [CertificateAuthority.js]: CertificateAuthority.const
[2019-05-13 17:31:18.559] [DEBUG] Helper - [NetworkConfig101.js]: getOrganization - name Org3
[2019-05-13 17:31:18.559] [DEBUG] Helper - [Organization.js]: Organization.const
[2019-05-13 17:31:18.559] [DEBUG] Helper - [NetworkConfig101.js]: getPeer - name peer0.org3.autentia-bchain.com, channel_org: undefined
[2019-05-13 17:31:18.559] [DEBUG] Helper - [NetworkConfig101.js]: getCertificateAuthority - name ca.org3.autentia-bchain.com
[2019-05-13 17:31:18.559] [DEBUG] Helper - [CertificateAuthority.js]: CertificateAuthority.const
[2019-05-13 17:31:18.560] [DEBUG] Helper - [NetworkConfig101.js]: getOrganization - name Org4
[2019-05-13 17:31:18.560] [DEBUG] Helper - [Organization.js]: Organization.const
[2019-05-13 17:31:18.560] [DEBUG] Helper - [NetworkConfig101.js]: getPeer - name peer0.org4.autentia-bchain.com, channel_org: undefined
[2019-05-13 17:31:18.560] [DEBUG] Helper - [NetworkConfig101.js]: getCertificateAuthority - name ca.org4.autentia-bchain.com
[2019-05-13 17:31:18.560] [DEBUG] Helper - [CertificateAuthority.js]: CertificateAuthority.const
[2019-05-13 17:31:18.560] [DEBUG] Helper - [NetworkConfig101.js]: getOrganization - name Org4
[2019-05-13 17:31:18.560] [DEBUG] Helper - [Organization.js]: Organization.const
[2019-05-13 17:31:18.560] [DEBUG] Helper - [NetworkConfig101.js]: getPeer - name peer0.org4.autentia-bchain.com, channel_org: undefined
[2019-05-13 17:31:18.560] [DEBUG] Helper - [NetworkConfig101.js]: getCertificateAuthority - name ca.org4.autentia-bchain.com
[2019-05-13 17:31:18.560] [DEBUG] Helper - [CertificateAuthority.js]: CertificateAuthority.const
[2019-05-13 17:31:18.561] [DEBUG] Helper - [NetworkConfig101.js]: _addPeersToChannel - peer0.org4.autentia-bchain.com - grpcs://localhost:10051
[2019-05-13 17:31:18.561] [DEBUG] Helper - [NetworkConfig101.js]: getOrderer - name orderer.autentia-bchain.com
[2019-05-13 17:31:18.563] [DEBUG] Helper - [DiscoveryEndorsementHandler]: initialize -
When i do channel.getChannelPeers() i get a list with the peers and the correct names are in it.
[ ChannelPeer {
_mspid: 'Org1MSP',
_channel:
Channel {
_name: 'auditoria-channel',
_channel_peers: [Object],
_anchor_peers: [],
_orderers: [Object],
_kafka_brokers: [],
_clientContext: [Object],
_msp_manager: [Object],
_discovery_interests: [Object],
_discovery_results: [Object],
_last_discover_timestamp: 1557779840912,
_use_discovery: true,
_as_localhost: true,
_endorsement_handler: [Object],
_commit_handler: [Object],
_last_refresh_request: [Object] },
_name: 'peer0.org1.autentia-bchain.com',
_peer:
Peer {
_options: [Object],
clientCert: undefined,
_url: 'grpcs://localhost:7051',
_endpoint: [Object],
_name: 'peer0.org1.autentia-bchain.com',
_request_timeout: 45000,
_grpc_wait_for_ready_timeout: 3000,
_endorserClient: [Object],
_discoveryClient: [Object] },
_roles:
{ endorsingPeer: true,
chaincodeQuery: true,
ledgerQuery: true,
eventSource: true } },
ChannelPeer {
_mspid: 'Org2MSP',
_channel:
Channel {
_name: 'auditoria-channel',
_channel_peers: [Object],
_anchor_peers: [],
_orderers: [Object],
_kafka_brokers: [],
_clientContext: [Object],
_msp_manager: [Object],
_discovery_interests: [Object],
_discovery_results: [Object],
_last_discover_timestamp: 1557779840912,
_use_discovery: true,
_as_localhost: true,
_endorsement_handler: [Object],
_commit_handler: [Object],
_last_refresh_request: [Object] },
_name: 'peer0.org2.autentia-bchain.com',
_peer:
Peer {
_options: [Object],
clientCert: undefined,
_url: 'grpcs://localhost:8051',
_endpoint: [Object],
_name: 'peer0.org2.autentia-bchain.com',
_request_timeout: 45000,
_grpc_wait_for_ready_timeout: 3000,
_endorserClient: [Object],
_discoveryClient: [Object] },
_roles:
{ endorsingPeer: true,
chaincodeQuery: true,
ledgerQuery: true,
eventSource: true } },
ChannelPeer {
_mspid: 'Org3MSP',
_channel:
Channel {
_name: 'auditoria-channel',
_channel_peers: [Object],
_anchor_peers: [],
_orderers: [Object],
_kafka_brokers: [],
_clientContext: [Object],
_msp_manager: [Object],
_discovery_interests: [Object],
_discovery_results: [Object],
_last_discover_timestamp: 1557779840912,
_use_discovery: true,
_as_localhost: true,
_endorsement_handler: [Object],
_commit_handler: [Object],
_last_refresh_request: [Object] },
_name: 'peer0.org3.autentia-bchain.com',
_peer:
Peer {
_options: [Object],
clientCert: undefined,
_url: 'grpcs://localhost:9051',
_endpoint: [Object],
_name: 'peer0.org3.autentia-bchain.com',
_request_timeout: 45000,
_grpc_wait_for_ready_timeout: 3000,
_endorserClient: [Object],
_discoveryClient: [Object] },
_roles:
{ endorsingPeer: true,
chaincodeQuery: true,
ledgerQuery: true,
eventSource: true } },
ChannelPeer {
_mspid: 'Org4MSP',
_channel:
Channel {
_name: 'auditoria-channel',
_channel_peers: [Object],
_anchor_peers: [],
_orderers: [Object],
_kafka_brokers: [],
_clientContext: [Object],
_msp_manager: [Object],
_discovery_interests: [Object],
_discovery_results: [Object],
_last_discover_timestamp: 1557779840912,
_use_discovery: true,
_as_localhost: true,
_endorsement_handler: [Object],
_commit_handler: [Object],
_last_refresh_request: [Object] },
_name: 'peer0.org4.autentia-bchain.com',
_peer:
Peer {
_options: [Object],
clientCert: undefined,
_url: 'grpcs://localhost:10051',
_endpoint: [Object],
_name: 'peer0.org4.autentia-bchain.com',
_request_timeout: 45000,
_grpc_wait_for_ready_timeout: 3000,
_endorserClient: [Object],
_discoveryClient: [Object] },
_roles:
Upvotes: 0
Views: 1759
Reputation: 36
When the NodeSDK application is running first level and is working with a fabric network in a local virtual environment where the peer addresses are seen as "localhost", the port addresses in the virtual environment must also be unique. In the docker-compose when mapping the virtual port to a real port it is easiest to use the same address. Notice in the following example that port address defined the virtual environment is the same as the host mapping.
environment:
- CORE_VM_ENDPOINT=unix:///host/var/run/docker.sock
- CORE_PEER_ID=peer0.org2.example.com
- CORE_PEER_ADDRESS=peer0.org2.example.com:8051
- CORE_PEER_LISTENADDRESS=peer0.org2.example.com:8051
- CORE_PEER_GOSSIP_ENDPOINT=peer0.org2.example.com:8051
- CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer0.org2.example.com:8051
- CORE_PEER_LOCALMSPID=Org2MSP
- CORE_PEER_MSPCONFIGPATH=/etc/hyperledger/peerOrg2/msp
- CORE_PEER_GOSSIP_BOOTSTRAP=peer0.org2.example.com:8051
ports:
- 8051:8051
Keep in mind that the host name must also be mapped from the virtual name to "localhost", this is done by using the connect option "aslocalhost:true" when the channel is initialized.
await channel.initialize({discover:true, asLocalhost:true})
Hope the following will help
https://fabric-sdk-node.github.io/release-1.4/tutorial-discovery.html
Upvotes: 1
Reputation: 36
Could we see a debug log of when the channel was initialized. It would be helpful to see the Discovery results being read in from the Peer's Discovery Service. The Peer's name seen in the endorsement plan does not come from the Discovery Service, this is a name assigned by the NodeSDK and these should be unique and contain the host and port. Since they are not unique, the same Peer is indeed being used.
Upvotes: 0