This is a question related to Fabric v1 architecture:
From my understanding, Peers subscribe to a Channel to the ordering service and then receive the channel related blocks from it as they are created.
So:
- Channel is like splitting the Blockchain (partitioning) and therefore I imagine each channel is like an independant chain of blocks with its own incrementing integer sequence number (seqno).
- Each transaction broadcast must be done within the scope of a specific Channel (with, I presume, a default public Channel).
Is this correct?
Clearly Channel can help for scaling but is it also meant to address Privacy?
If so, is there some configuration defining which member has permission access to a particular Channel ?
Channel is used to create sub network(Private). This network have number of peers(member). Purpose of this channel prepare private network and perform confidential transactions.
Each transaction of network executed on Channel.
Each channel have their separate ledger which are stored in each peer on channel.
As stated by all previous answers, channels can be seen as "independent" chains that add privacy. And you are right that a transaction is done on a specific channel.
However, fabric is capable of more than just having multiple channels on one peer. Within chaincode, you are able to call other chaincodes. And actually, it is possible to call chaincodes from other channels if the peer is part of the channel and the chaincode is installed on the peer. But on the other channel, no transaction is added to the ledger, so you are only able to make queries (reads) in the other chaincode.
What you said is correct. Channels are like partitions. You can create a channel and invite peers to join the channel and as such you are defining which members have access to the channel. Channels can help in privacy as clients connecting to one channel are unaware of the existence of other channels.
I finally find the answer here:
We can establish a separate channel per confidential domain where only permitted peers may subscribe to. Transactions sent to a channel will be ordered respective to each other within the channel, so a batch only contains transactions from the channel, not from any other channels.
batch means block. So yes, each Channel is an independant chain of transaction block containing only transaction for this particular Channel. So with Fabric, you can run multiple Blockchains within the same infrastructure (Ordering service, Membership service...)