Good Questions thanks @Shubham Chadokar
Channel.tx is needed which contain channel policy information
while joining we will need the latest block which contains network configuration which is needed in order to join peers to channel.
SEE below detailed information
Statement1:
The mychannel.tx is the genesis block in the channel and any peer who
want to join the channel require this.
Answer
Note: mychannel.tx is not the genesis block
I would like to highlight the difference between genesis.block mychannel.tx
ordering system channel: orderers maintain the long list of all organizations that are allowed to create channels. This list of organizations is known as the “consortium”, and the list itself is kept in the configuration of the “orderer system channel”.
Now the interesting part what is present inside mychannel.tx
- mychannel.tx is a binary file
- One can decode this file using protolator
Commands:
Step1: GOTO fabricsamples/bin ./configtxlator start
Step2: GOTO mychannel.tx file location then issue below command
curl -X POST --data-binary @mychannel.tx
http://127.0.0.1:7059/protolator/decode/common.Envelope >
mychannel.json
The results of decoding the file mychannel.tx which is a common.Envelope produced by the configtxgen tool contains a common.ConfigUpdate object. This object has the name "config_update" within the "payload.data" JSON object.
This is the object that is needed as the source of the template to be used for creating new channels. The common.ConfigUpdate is the object that will be signed by all organizations and submitted to the orderer to create a new channel.
mychannel.tx contains read/write set of mychannel
Result:
{ "channel_id": "mychannel", "read_set": {
"groups": {
"Application": {
"groups": {
"Org1MSP": {}
}
}
},
"values": {
"Consortium": {
"value": {
"name": "SampleConsortium"
}
}
} }, "write_set": {
"groups": {
"Application": {
"groups": {
"Org1MSP": {}
},
"mod_policy": "Admins",
"policies": {
"Admins": {
"policy": {
"type": 3,
"value": {
"rule": "MAJORITY",
"sub_policy": "Admins"
}
}
},
"Readers": {
"policy": {
"type": 3,
"value": {
"sub_policy": "Readers"
}
}
},
"Writers": {
"policy": {
"type": 3,
"value": {
"sub_policy": "Writers"
}
}
}
},
"version": "1"
}
},
"values": {
"Consortium": {
"value": {
"name": "SampleConsortium"
}
}
} } }
I have done the same for the genesis.block check this
http://ideone.com/L1hcRX which contain genesis.block as json format
which contain all network information.
Statement 2:
the complete tutorial once the orderer genesis block is created it never used. And also Is there any other blockchain also present other than the channel ledger?
Answer
I hope now you have got sufficient information. genesis block main purpose is network configuration, once network is up and running we will not use again except you onboard new organization which contain orderer you can use old genesis.block later it will fetch latest configuration from other orderers.
Does this orderer genesis block require for system channel?
YES