Open alphacybercom opened 2 years ago
you can import B node into A.
What do you mean? Do you mean that it's possible to export B
's profile into A
's profile file?
In case, how to do that?
please run just minifab to see all possible commands. you will see both export and import commands.
Here is the output of ./minifab
.
Usage:
minifab <mode> [options]
<mode> - one of operations or combination of operations separated by comma
- 'up' - bring up the network and do all default channel and chaincode operations
- 'netup' - bring up the network only
- 'down' - tear down the network
- 'restart' - restart the network
- 'generate' - generate required certificates and genesis block
- 'profilegen' - generate channel based profiles
- 'install' - install chaincode
- 'approve' - approve chaincode
- 'instantiate' - instantiate chaincode for fabric release < 2.0
- 'initialize' - initialize chaincode for fabric release >= 2.0
- 'commit' - commit chaincode for fabric releases greater or equal to 2.0
- 'invoke' - run chaincode invoke method
- 'query' - run chaincode query method
- 'create' - create application channel
- 'join' - join all peers currently in the network to a channel
- 'blockquery' - do channel block query and produce a channel tx json file
- 'channelquery' - do channel query and produce a channel configuration json file
- 'channelsign' - do channel config update signoff
- 'channelupdate' - do channel update with a given new channel configuration json file
- 'anchorupdate' - do channel update which makes all peer nodes anchors for the all orgs
- 'nodeimport' - import external node certs and endpoints
- 'discover' - discover channel endorsement policy
- 'cleanup' - remove all the nodes and cleanup runtime files
- 'stats' - list all nodes and status
- 'explorerup' - start up Hyperledger explorer
- 'explorerdown' - shutdown Hyperledger explorer
- 'portainerup' - start up portainer web management
- 'portainerdown' - shutdown portainer web management
- 'ccup' - update or force re-install chaincode as specified version (alias to install,approve,commit,instantiate/initialize).
- 'apprun' - (experimental) run chaincode app if there is any
- 'caliperrun' - (experimental) run caliper test
- 'orgjoin' - (experimental) join an org to the current channel
- 'update' - (experimental) update minifabric to the latest version
options:
-c|--channel-name - channel name to use (defaults to "mychannel")
-s|--database-type - the database backend to use: goleveldb (default) or couchdb
-l|--chaincode-language - the language of the chaincode: go (default), node, or java
-i|--fabric-release - the fabric release to be used to launch the network (defaults to "2.1")
-n|--chaincode-name - chaincode name to be installed/instantiated/approved
-b|--block-number - block number to be queried
-v|--chaincode-version - chaincode version to be installed
-p|--chaincode-parameters - chaincode instantiation and invocation parameters
-t|--transient-parameters - chaincode instantiation and invocation transient parameters
-r|--chaincode-private - flag if chaincode processes private data, default is false
-e|--expose-endpoints - flag if node endpoints should be exposed, default is false
-o|--organization - organization to be used for org specific operations
-y|--chaincode-policy - chaincode policy
-d|--init-required - chaincode initialization flag, default is true
-f|--run-output - minifabric run time output callback, can be 'minifab'(default), 'default', 'dense'
-h|--help - print this message
As you can see, no import/export commands are returned.
Solved by running minifab profilegen
on B
. In this way, (local) connection profile files are generated on B
.
I've noticed that, although minifab profilegen
was executed on B
, as reported above, without errors, my NodeJS application can't successfully execute queries on the blockchain and, for each query I execute/invocation I make, an error like the following one is returned.
{ TypeError: Cannot read property 'status' of undefined
at Transaction.submit ($MYFOLDER/node_modules/fabric-network/lib/transaction.js:252:32)
at process._tickCallback (internal/process/next_tick.js:68:7)
responses:
[ { version: 1,
timestamp: null,
response: [Object],
payload:
<Buffer 0a [cut] ... >,
endorsement: [Object],
connection: [Object],
peer: 'peer1.org2.mydomain.com' },
{ version: 1,
timestamp: null,
response: [Object],
payload:
<Buffer 0a [cut] ... >,
endorsement: [Object],
connection: [Object],
peer: 'peer2.org2.mydomain.com' } ],
errors: [] }
The same NodeJS code (linking to a different connection profile plus a different wallet file) works on A
.
I've created a blockchain network composed of two different nodes
A
(primary) andB
(secondary), on two different hosts. I also have a nodejs client application which connects toA
trough thevars/profiles/mychannel_connection_for_nodesdk.json
connection profile file. Nevertheless, I'd need to generate the equivalent profile onB
, in order to deploy the nodejs application also on the secondary hostB
, connecting to the local blockchain node running inB
.I've seen that by using in
B
the same connection profile file available onA
, the nodejs application onB
successfully interacts with the blockchain. Nevertheless, as such file does not include any information onB
(just includesA
's endpoints), it is not possible to interact with the blockchain locally onB
.Hence, I suppose I have to either export
B
information in thevars/profiles/mychannel_connection_for_nodesdk.json
connection profile file ofA
, or directly generate a connection profile inB
. Right? In case, how can I do that?