Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Create dummy Fabric chain networks #1

Open
yvonmanzi opened this issue Mar 26, 2021 · 3 comments
Open

Create dummy Fabric chain networks #1

yvonmanzi opened this issue Mar 26, 2021 · 3 comments
Assignees

Comments

@yvonmanzi
Copy link
Contributor

Create a Fabric blockchain network and try to understand how the same concept could be utilized for our particular use-case.

@yvonmanzi
Copy link
Contributor Author

We could go ahead and close this issue once we all got the network thing going. @codingbug671 You could close this once you got it working as well. Before Bushra closes this issue actually, we could first discuss some of the learnings from our first encounter with Blockchain. What are some of the struggles? What new insights did we discover? Any new ideas on how we could potentially shape our project? Anything really.

@yvonmanzi
Copy link
Contributor Author

Running Blockchain/Hyperledger Notes

  • There are about 5 framework projects under the Hyperledger umbrella.

  • Indy is great for identities. Instead of companies storing your info, they only store a pointer to your encrypted id.

  • Fabric is the most popular one.

  • Fabric is permissioned blockchain. Peers are known and not everyone can join. New peers are vetted. Bitcoin and Ethereum, on the other hand, are public permissionless networks. Anyone can join and peers are not vetted. Peers are not known to each other. 

  • Each node on a Fabric network is also known as a PEER.

  • Each peer has to belong to an ORGANIZATION.

  • Each ORGANIZATION has to define crypto material that identities(defines) it on the network. CRYTOGEN tool or Fabric CAs are the tools used to generate that crypto material.

  • PEERS are the fundamental building blocks of a fabric network

    • Peers store blockchain ledger
    • They validate transactions before they're committed to the ledger
    • They run smart contracts, aka business logic.
  • Each network has an ORDERER organization to determine the order of which transactions took place.

    • This orderer organization can have one or more orderer peers.
    • Raft ordering service is the common ordering service. keep an eye on that.
  • Channel: acts as a communication pipe joining one or more organization to allow them to communicate.

    • Each channel has a separate blockchain ledger
    • To interact with this channel ledger, you need a smart contract.
  • Smart contract: contains business logic on how to

    • append new assets to the channel ledger
    • transfer assets, etc.
  • peers on the channel invoke the smart contract to transfer assets, append new assets, etc on the channel ledger.

  • Multiple organizations typically have to sign the transactions before they are committed to the ledger. that's how trust works in Fabric framework

  • Smart contract are deployed on the network in packages called CHAINCODE.

  • CHAINCODE:

    • Is first installed on each peer across the channel, then
    • it is finally defined on the channel itself using FABRIC CHAINCODE LIFECYCLE. ?
    • FABRIC CHAINCODE LIFECYCLE
      • Allows multiple organizations to agree on the parameters of a chaincode before the chaincode is deployed on the channel
  • GENESIS BLOCK?

    • created using configtx.yaml
    • consortium defines what organizations are recognized as members of the network?
  • Each one of the box is an organization. Each organization has peer, ledgerdb, and certificate authority(CA) containers. Thus, in total, this network would have 6 containers. A network of these containers is called ...

@yvonmanzi yvonmanzi pinned this issue Apr 5, 2021
@yvonmanzi
Copy link
Contributor Author

Let's maybe keep this issue open for now, to keep our notes here, until we figure out the wiki page.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants