diff --git a/docs/custom_theme/searchbox.html b/docs/custom_theme/searchbox.html new file mode 100644 index 00000000000..bc5bbda0889 --- /dev/null +++ b/docs/custom_theme/searchbox.html @@ -0,0 +1,5 @@ +
+
+ +
+
diff --git a/docs/protocol-spec.md b/docs/protocol-spec.md index e80b4d1894e..c10a4f8adea 100644 --- a/docs/protocol-spec.md +++ b/docs/protocol-spec.md @@ -13,134 +13,134 @@ ________________________________________________________ ## Table of Contents #### [1. Introduction](#1-introduction_1) - - [1.1 What is the fabric?](#11-what-is-the-fabric) - - [1.2 Why the fabric?](#12-why-the-fabric) - - [1.3 Terminology](#13-terminology) + * [1.1 What is the fabric?](#11-what-is-the-fabric) + * [1.2 Why the fabric?](#12-why-the-fabric) + * [1.3 Terminology](#13-terminology) #### [2. Fabric](#2-fabric_1) - - [2.1 Architecture](#21-architecture) - - [2.1.1 Membership Services](#211-membership-services) - - [2.1.2 Blockchain Services](#212-blockchain-services) - - [2.1.3 Chaincode Services](#213-chaincode-services) - - [2.1.4 Events](#214-events) - - [2.1.5 Application Programming Interface (API)](#215-application-programming-interface-api) - - [2.1.6 Command Line Interface (CLI)](#216-command-line-interface-cli) - - [2.2 Topology](#22-topology) - - [2.2.1 Single Validating Peer](#221-single-validating-peer) - - [2.2.2 Multiple Validating Peers](#222-multiple-validating-peers) - - [2.2.3 Multichain](#223-multichain) + * [2.1 Architecture](#21-architecture) + - [2.1.1 Membership Services](#211-membership-services) + - [2.1.2 Blockchain Services](#212-blockchain-services) + - [2.1.3 Chaincode Services](#213-chaincode-services) + - [2.1.4 Events](#214-events) + - [2.1.5 Application Programming Interface (API)](#215-application-programming-interface-api) + - [2.1.6 Command Line Interface (CLI)](#216-command-line-interface-cli) + * [2.2 Topology](#22-topology) + - [2.2.1 Single Validating Peer](#221-single-validating-peer) + - [2.2.2 Multiple Validating Peers](#222-multiple-validating-peers) + - [2.2.3 Multichain](#223-multichain) #### [3. Protocol](#3-protocol_1) - - [3.1 Message](#31-message) - - [3.1.1 Discovery Messages](#311-discovery-messages) - - [3.1.2 Transaction Messages](#312-transaction-messages) - - [3.1.2.1 Transaction Data Structure](#3121-transaction-data-structure) - - [3.1.2.2 Transaction Specification](#3122-transaction-specification) - - [3.1.2.3 Deploy Transaction](#3123-deploy-transaction) - - [3.1.2.4 Invoke Transaction](#3124-invoke-transaction) - - [3.1.2.5 Query Transaction](#3125-query-transaction) - - [3.1.3 Synchronization Messages](#313-synchronization-messages) - - [3.1.4 Consensus Messages](#314-consensus-messages) - - [3.2 Ledger](#32-ledger) - - [3.2.1 Blockchain](#321-blockchain) - - [3.2.1.1 Block](#3211-block) - - [3.2.1.2 Block Hashing](#3212-block-hashing) - - [3.2.1.3 NonHashData](#3213-nonhashdata) - - [3.2.1.4 Transaction Execution](#3214-transaction-execution) - - [3.2.2 World State](#322-world-state) - - [3.2.2.1 Hashing the world state](#3221-hashing-the-world-state) - - [3.2.2.1.1 Bucket-tree](#32211-buckettree) - - [3.3 Chaincode](#33-chaincode) - - [3.3.1 Virtual Machine Instantiation](#331-virtual-machine-instantiation) - - [3.3.2 Chaincode Protocol](#332-chaincode-protocol) - - [3.3.2.1 Chaincode Deploy](#3321-chaincode-deploy) - - [3.3.2.2 Chaincode Invoke](#3322-chaincode-invoke) - - [3.3.2.3 Chaincode Query](#3323-chaincode-query) - - [3.3.2.4 Chaincode State](#3324-chaincode-state) - - [3.4 Pluggable Consensus Framework](#34-pluggable-consensus-framework) - - [3.4.1 Consenter interface](#341-consenter-interface) - - [3.4.2 CPI interface](#342-cpi-interface) - - [3.4.3 Inquirer interface](#343-inquirer-interface) - - [3.4.4 Communicator interface](#344-communicator-interface) - - [3.4.5 SecurityUtils interface](#345-securityutils-interface) - - [3.4.6 LedgerStack interface](#346-ledgerstack-interface) - - [3.4.7 Executor interface](#347-executor-interface) - - [3.4.7.1 Beginning a transaction batch](#3471-beginning-a-transaction-batch) - - [3.4.7.2 Executing transactions](#3472-executing-transactions) - - [3.4.7.3 Committing and rolling-back transactions](#3473-committing-and-rollingback-transactions) - - [3.4.8 Ledger interface](#348-ledger-interface) - - [3.4.8.1 ReadOnlyLedger interface](#3481-readonlyledger-interface) - - [3.4.8.2 UtilLedger interface](#3482-utilledger-interface) - - [3.4.8.3 WritableLedger interface](#3483-writableledger-interface) - - [3.4.9 RemoteLedgers interface](#349-remoteledgers-interface) - - [3.4.10 controller package](#3410-controller-package) - - [3.4.10.1 controller.NewConsenter](#34101-controllernewconsenter) - - [3.4.11 helper package](#3411-helper-package) - - [3.4.11.1 High-level overview](#34111-highlevel-overview) - - [3.4.11.2 helper.ConsensusHandler](#34112-helperconsensushandler) - - [3.4.11.3 helper.NewConsensusHandler](#34113-helpernewconsensushandler) - - [3.4.11.4 helper.Helper](#34114-helperhelper) - - [3.4.11.5 helper.NewHelper](#34115-helpernewhelper) - - [3.4.11.6 helper.HandleMessage](#34116-helperhandlemessage) - - [3.5 Events](#35-events) - - [3.5.1 Event Stream](#351-event-stream) - - [3.5.1.1 Event Producer](#3511-event-producer) - - [3.5.1.2 Event Consumer](#3512-event-consumer) - - [3.5.2 Event Adapters](#352-event-adapters) - - [3.5.3 Event Structure](#353-event-structure) + * [3.1 Message](#31-message) + - [3.1.1 Discovery Messages](#311-discovery-messages) + - [3.1.2 Transaction Messages](#312-transaction-messages) + * [3.1.2.1 Transaction Data Structure](#3121-transaction-data-structure) + * [3.1.2.2 Transaction Specification](#3122-transaction-specification) + * [3.1.2.3 Deploy Transaction](#3123-deploy-transaction) + * [3.1.2.4 Invoke Transaction](#3124-invoke-transaction) + * [3.1.2.5 Query Transaction](#3125-query-transaction) + - [3.1.3 Synchronization Messages](#313-synchronization-messages) + - [3.1.4 Consensus Messages](#314-consensus-messages) + * [3.2 Ledger](#32-ledger) + - [3.2.1 Blockchain](#321-blockchain) + * [3.2.1.1 Block](#3211-block) + * [3.2.1.2 Block Hashing](#3212-block-hashing) + * [3.2.1.3 NonHashData](#3213-nonhashdata) + * [3.2.1.4 Transaction Execution](#3214-transaction-execution) + - [3.2.2 World State](#322-world-state) + * [3.2.2.1 Hashing the world state](#3221-hashing-the-world-state) + * [3.2.2.1.1 Bucket-tree](#32211-buckettree) + * [3.3 Chaincode](#33-chaincode) + - [3.3.1 Virtual Machine Instantiation](#331-virtual-machine-instantiation) + - [3.3.2 Chaincode Protocol](#332-chaincode-protocol) + * [3.3.2.1 Chaincode Deploy](#3321-chaincode-deploy) + * [3.3.2.2 Chaincode Invoke](#3322-chaincode-invoke) + * [3.3.2.3 Chaincode Query](#3323-chaincode-query) + * [3.3.2.4 Chaincode State](#3324-chaincode-state) + * [3.4 Pluggable Consensus Framework](#34-pluggable-consensus-framework) + - [3.4.1 Consenter interface](#341-consenter-interface) + - [3.4.2 CPI interface](#342-cpi-interface) + - [3.4.3 Inquirer interface](#343-inquirer-interface) + - [3.4.4 Communicator interface](#344-communicator-interface) + - [3.4.5 SecurityUtils interface](#345-securityutils-interface) + - [3.4.6 LedgerStack interface](#346-ledgerstack-interface) + - [3.4.7 Executor interface](#347-executor-interface) + * [3.4.7.1 Beginning a transaction batch](#3471-beginning-a-transaction-batch) + * [3.4.7.2 Executing transactions](#3472-executing-transactions) + * [3.4.7.3 Committing and rolling-back transactions](#3473-committing-and-rollingback-transactions) + - [3.4.8 Ledger interface](#348-ledger-interface) + * [3.4.8.1 ReadOnlyLedger interface](#3481-readonlyledger-interface) + * [3.4.8.2 UtilLedger interface](#3482-utilledger-interface) + * [3.4.8.3 WritableLedger interface](#3483-writableledger-interface) + - [3.4.9 RemoteLedgers interface](#349-remoteledgers-interface) + - [3.4.10 controller package](#3410-controller-package) + * [3.4.10.1 controller.NewConsenter](#34101-controllernewconsenter) + - [3.4.11 helper package](#3411-helper-package) + * [3.4.11.1 High-level overview](#34111-highlevel-overview) + * [3.4.11.2 helper.ConsensusHandler](#34112-helperconsensushandler) + * [3.4.11.3 helper.NewConsensusHandler](#34113-helpernewconsensushandler) + * [3.4.11.4 helper.Helper](#34114-helperhelper) + * [3.4.11.5 helper.NewHelper](#34115-helpernewhelper) + * [3.4.11.6 helper.HandleMessage](#34116-helperhandlemessage) + * [3.5 Events](#35-events) + - [3.5.1 Event Stream](#351-event-stream) + * [3.5.1.1 Event Producer](#3511-event-producer) + * [3.5.1.2 Event Consumer](#3512-event-consumer) + - [3.5.2 Event Adapters](#352-event-adapters) + - [3.5.3 Event Structure](#353-event-structure) #### [4. Security](#4-security_1) - - [4.1 Business security requirements](#41-business-security-requirements) - - [4.2 User Privacy through Membership Services](#42-user-privacy-through-membership-services) - - [4.2.1 User/Client Enrollment Process](#421-userclient-enrollment-process) - - [4.2.2 Expiration and revocation of certificates](#422-expiration-and-revocation-of-certificates) - - [4.3 Transaction security offerings at the infrastructure level](#43-transaction-security-offerings-at-the-infrastructure-level) - - [4.3.1 Security Lifecycle of Transactions](#431-security-lifecycle-of-transactions) - - [4.3.2 Transaction confidentiality](#432-transaction-confidentiality) - - [4.3.2.1 Confidentiality against users](#4321-confidentiality-against-users) - - [4.3.2.2 Confidentiality against validators](#4322-confidentiality-against-validators) - - [4.3.3 Replay attack resistance](#433-replay-attack-resistance) - - [4.4 Access control features on the application](#44-access-control-features-on-the-application) - - [4.4.1 Invocation access control](#441-invocation-access-control) - - [4.4.2 Read access control](#442-read-access-control) - - [4.5 Online wallet service](#45-online-wallet-service) - - [4.6 Network security (TLS)](#46-network-security-tls) - - [4.7 Restrictions in the current release](#47-restrictions-in-the-current-release) - - [4.7.1 Simplified client](#471-simplified-client) - - [4.7.2 Simplified transaction confidentiality](#472-simplified-transaction-confidentiality) + * [4.1 Business security requirements](#41-business-security-requirements) + * [4.2 User Privacy through Membership Services](#42-user-privacy-through-membership-services) + - [4.2.1 User/Client Enrollment Process](#421-userclient-enrollment-process) + - [4.2.2 Expiration and revocation of certificates](#422-expiration-and-revocation-of-certificates) + * [4.3 Transaction security offerings at the infrastructure level](#43-transaction-security-offerings-at-the-infrastructure-level) + - [4.3.1 Security Lifecycle of Transactions](#431-security-lifecycle-of-transactions) + - [4.3.2 Transaction confidentiality](#432-transaction-confidentiality) + * [4.3.2.1 Confidentiality against users](#4321-confidentiality-against-users) + * [4.3.2.2 Confidentiality against validators](#4322-confidentiality-against-validators) + - [4.3.3 Replay attack resistance](#433-replay-attack-resistance) + * [4.4 Access control features on the application](#44-access-control-features-on-the-application) + - [4.4.1 Invocation access control](#441-invocation-access-control) + - [4.4.2 Read access control](#442-read-access-control) + * [4.5 Online wallet service](#45-online-wallet-service) + * [4.6 Network security (TLS)](#46-network-security-tls) + * [4.7 Restrictions in the current release](#47-restrictions-in-the-current-release) + - [4.7.1 Simplified client](#471-simplified-client) + - [4.7.2 Simplified transaction confidentiality](#472-simplified-transaction-confidentiality) #### [5. Byzantine Consensus](#5-byzantine-consensus_1) - - [5.1 Overview](#51-overview) - - [5.2 Core PBFT Functions](#52-core-pbft-functions) - - [5.2.1 newPbftCore](#521-newpbftcore) + * [5.1 Overview](#51-overview) + * [5.2 Core PBFT Functions](#52-core-pbft-functions) + * [5.2.1 newPbftCore](#521-newpbftcore) #### [6. Application Programming Interface](#6-application-programming-interface_1) - - [6.1 REST Service](#61-rest-service) - - [6.2 REST API](#62-rest-api) - - [6.2.1 REST Endpoints](#621-rest-endpoints) - - [6.2.1.1 Block API](#6211-block-api) - - [6.2.1.2 Blockchain API](#6212-blockchain-api) - - [6.2.1.3 Chaincode API](#6213-chaincode-api) - - [6.2.1.4 Network API](#6214-network-api) - - [6.2.1.5 Registrar API (member services)](#6215-registrar-api-member-services) - - [6.2.1.6 Transactions API](#6216-transactions-api) - - [6.3 CLI](#63-cli) - - [6.3.1 CLI Commands](#631-cli-commands) - - [6.3.1.1 node start](#6311-node-start) - - [6.3.1.2 network login](#6312-network-login) - - [6.3.1.3 chaincode deploy](#6313-chaincode-deploy) - - [6.3.1.4 chaincode invoke](#6314-chaincode-invoke) - - [6.3.1.5 chaincode query](#6315-chaincode-query) + * [6.1 REST Service](#61-rest-service) + * [6.2 REST API](#62-rest-api) + - [6.2.1 REST Endpoints](#621-rest-endpoints) + * [6.2.1.1 Block API](#6211-block-api) + * [6.2.1.2 Blockchain API](#6212-blockchain-api) + * [6.2.1.3 Chaincode API](#6213-chaincode-api) + * [6.2.1.4 Network API](#6214-network-api) + * [6.2.1.5 Registrar API (member services)](#6215-registrar-api-member-services) + * [6.2.1.6 Transactions API](#6216-transactions-api) + * [6.3 CLI](#63-cli) + - [6.3.1 CLI Commands](#631-cli-commands) + * [6.3.1.1 node start](#6311-node-start) + * [6.3.1.2 network login](#6312-network-login) + * [6.3.1.3 chaincode deploy](#6313-chaincode-deploy) + * [6.3.1.4 chaincode invoke](#6314-chaincode-invoke) + * [6.3.1.5 chaincode query](#6315-chaincode-query) #### [7. Application Model](#7-application-model_1) - - [7.1 Composition of an Application](#71-composition-of-an-application) - - [7.2 Sample Application](#72-sample-application) + * [7.1 Composition of an Application](#71-composition-of-an-application) + * [7.2 Sample Application](#72-sample-application) #### [8. Future Directions](#8-future-directions_1) - - [8.1 Enterprise Integration](#81-enterprise-integration) - - [8.2 Performance and Scalability](#82-performance-and-scalability) - - [8.3 Additional Consensus Plugins](#83-additional-consensus-plugins) - - [8.4 Additional Languages](#84-additional-languages) + * [8.1 Enterprise Integration](#81-enterprise-integration) + * [8.2 Performance and Scalability](#82-performance-and-scalability) + * [8.3 Additional Consensus Plugins](#83-additional-consensus-plugins) + * [8.4 Additional Languages](#84-additional-languages) #### [9.1 Authors](#91-authors) #### [9.2 Reviewers](#92-reviewers) diff --git a/mkdocs.yml b/mkdocs.yml index 3fc6565fc3c..d3994d8599b 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -3,6 +3,9 @@ site_url: http://hyperledger-fabric.readthedocs.io theme: readthedocs repo_url: https://github.com/hyperledger/fabric.git site_description: 'Welcome to the Hyperledger fabric documentation' +strict: true +theme_dir: 'docs/custom_theme' + pages: - Home: index.md