The main README gives an high-level overview of the FPC architecture. Here we provide additional details.
More detailed architectural information and overview of the protocols can be found in the Fabric Private Chaincode RFC.
The full detailed operation of FPC is documented in a series of UML
Sequence Diagrams. Note that FPC version 1.x corresponds to FPC Lite
in documents and code.
Specifically:
- The
fpc-lifecycle-v2
(puml) diagram describes the normal lifecycle of a chaincode in FPC, focusing in particular on those elements that change in FPC vs. regular Fabric. - The
fpc-registration
(puml) diagram describes how an FPC Chaincode Enclave is created on a Peer and registered in the FPC Registry, including the Remote Attestation process. - The
fpc-key-dist
(puml) diagram describes the process by which chaincode-unique cryptographic keys are created and distributed among enclaves running identical chaincodes. Note that in the current version of FPC, key generation is performed, but the key distribution protocol has not yet been implemented. - The
fpc-cc-invocation
(puml) diagram illustrates the invocation process at the beginning of the chaincode lifecycle in detail, focusing on the cryptographic operations between the Client and Peer leading up to submission of a transaction for Ordering. - The
fpc-cc-execution
(puml) diagram provides further detail of the execution phase of an FPC chaincode, focusing in particular on thegetState
andputState
interactions with the Ledger. - The
fpc-validation
(puml) diagram describes the FPC-specific process of validation. - The
fpc-components
(puml) diagram shows the important data structures of FPC components and messages exchanged between components. - The detailed message definitions can be found as protobufs.
- The interfaces document defines the interfaces exposed by the FPC components and their internal state.
Additional Google documents provide details on FPC 1.0:
- The FPC for Health use case describes how FPC 1.0 enables a health care use case. The document also gives more details on the FPC 1.0-enabled application domains and related constraints. Lastly, it provides a security analysis why these constraints are sufficient for security.
- The FPC externalized endorsement validation describes the FPC 1.0 enclave endorsement validation mechanism.