Skip to content

Commit 70237c3

Browse files
committed
Updates to the node SDK docs and sample files
Fix broken links and formatting issues on doc files Include docker image and compose files to support docs Update sample apps with environment settings fix src and tag in dockerfile fix docker image name in doc Change-Id: I7e2781411199039ee851ec5da63d3f9377767cac Signed-off-by: Bret Harrison <[email protected]>
1 parent d32d946 commit 70237c3

12 files changed

+357
-404
lines changed
+25-9
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,50 @@
11
# Setting up the Full Hyperledger fabric Developer's Environment
22

3-
1. See [Setting Up The Development Environment](../dev-setup/devenv.md) to set up your development environment.
3+
* See [Setting Up The Development Environment](../dev-setup/devenv.md) to set up your development environment.
4+
5+
* The following commands are all issued from the vagrant environment. The following will open a terminal session:
46

5-
2. Issue the following commands to build the Hyperledger fabric client (HFC) Node.js SDK including the API reference documentation
7+
```
8+
cd <your cloned location>/fabric/devenv
9+
vagrant up
10+
vagrant ssh
11+
```
12+
13+
* Issue the following commands to build the Hyperledger fabric client (HFC) Node.js SDK including the API reference documentation
614

715
```
816
cd /opt/gopath/src/github.com/hyperledger/fabric/sdk/node
917
make all
1018
```
11-
3. Issue the following command where your Node.js application is located if you wish to use the `require("hfc")`, this will install the HFC locally.
19+
* Issue the following command where your Node.js application is located if you wish to use the `require("hfc")`, this will install the HFC locally.
1220

1321
```
1422
npm install /opt/gopath/src/github.com/hyperledger/fabric/sdk/node
1523
```
1624

17-
Or use point directly to the HFC directly by using the following require in your code:
25+
Or point to the HFC directly by using the following `require()` in your code:
1826

1927
```javascript
2028
require("/opt/gopath/src/github.com/hyperledger/fabric/sdk/node");
2129
```
2230

23-
4. To see the API reference documentation which is built in step 2:
31+
* To build the API reference documentation:
2432

2533
```
26-
cd /opt/gopath/src/github.com/hyperledger/fabric/sdk/node/doc
27-
```
34+
cd /opt/gopath/src/github.com/hyperledger/fabric/sdk/node
35+
make doc
36+
```
2837

29-
The [Self Contained Node.js Environment](node-sdk-self-contained.md) will have the reference documentation already built and may be accessed by:
38+
* To build the reference documentation in the [Self Contained Node.js Environment](node-sdk-self-contained.md):
3039

3140
```
3241
docker exec -it nodesdk /bin/bash
33-
cd /opt/gopath/src/github.com/hyperledger/fabric/sdk/node/doc
42+
cd /opt/gopath/src/github.com/hyperledger/fabric/sdk/node
43+
make doc
3444
```
45+
46+
* The the API reference documentation will be available in:
47+
```
48+
/opt/gopath/src/github.com/hyperledger/fabric/sdk/node/doc
49+
```
50+

docs/nodeSDK/app-overview.md

+4-4
Original file line numberDiff line numberDiff line change
@@ -30,19 +30,19 @@ This interaction with the Peer consists of submitting transactions to the blockc
3030
* invoke - to execute a chaincode function which changes the state of the *blockchain database*;
3131
* query - to execute a chaincode function which may return state information related to the *blockchain database*.
3232

33-
The **SDK** also interacts with a **Membership Services** process. In fact, if security is enabled in the Peer (strongly recommended), the Node.js client SDK must interact with Membership Services first in order to retrieve *credentials* which are then used to interact with the Peer. These *credentials* consist of certificates as described in [Membership Services](membership-services.md).
33+
The **SDK** also interacts with a **Membership Services** process. In fact, if security is enabled in the Peer (strongly recommended), the Node.js client SDK must interact with Membership Services first in order to retrieve credential certificates which are then used to interact with the Peer.
3434

3535
The interaction with the Membership Services consists of:
3636

37-
* register - to indicate a new user to the blockchain
37+
* register - to invite a new user to the blockchain
3838
* enroll - to get access to the blockchain
3939

4040
<a name="webApp"></a>
4141
## Web Application
4242

4343
The following diagram provides an overview of the major components of Hyperledger fabric for the web application developer.
4444

45-
At a high-level, you can think of the Block Chain as a database with which the web application interacts; therefore, it is similar to the following topology.
45+
At a high-level, you can think of the blockchain as a database with which the web application interacts; therefore, it is similar to the following topology.
4646

4747
```
4848
browser --> web tier --> database tier
@@ -53,4 +53,4 @@ browser --> web tier --> database tier
5353

5454
In the diagram above, the blue boxes are Hyperledger fabric components and the green boxes are application developer components. Each outer box represents a separate process.
5555

56-
The browser interacts with the developer's Node.js web application using the Hyperledger fabric's Node.js client SDK. The SDK handles all interactions with other Hyperledger fabric components in the same manor as described in the [SDK interactions](#sdk-interactions) section of [Standalone Application](#standaloneApp).
56+
The browser interacts with the developer's Node.js web application using the Hyperledger fabric's Node.js client SDK. The SDK handles all interactions with other Hyperledger fabric components as described in the [SDK interactions](#sdk-interactions) section of [Standalone Application](#standaloneApp).

docs/nodeSDK/node-sdk-guide.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,12 @@ The Hyperledger fabric Client (HFC) SDK for Node.js provides a powerful and easy
2121

2222
* [Node.js Standalone Application in Vagrant](sample-standalone-app.md) for a sample standalone Node.js application running in the full development environment within Vagrant.
2323

24-
* [Node.js Web Application](sample-web-app.md) for a sample web application and to see how to use the Node.js client SDK for a sample web app leveraging the client SDK to interact with blockchain network.
24+
* [Node.js Web Application](sample-web-app.md) for a sample web application and to see how to use the Node.js client SDK for a sample web app leveraging the client SDK to interact with a blockchain network.
2525

2626

2727

2828
#### Related information
2929

30-
* To build and view the reference documentation for the Node.js client SDK APIs follow the instructions [here](app-developer-env-setup.md).
30+
* To build the reference documentation for the Node.js client SDK APIs follow the instructions [here](app-developer-env-setup.md).
3131

3232
* To learn more about chaincode, see [Writing, Building, and Running Chaincode in a Development Environment](../Setup/Chaincode-setup.md).

docs/nodeSDK/node-sdk-indepth.md

+17-7
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,19 @@
22

33
The Hyperledger fabric Client (HFC) SDK provides a powerful and easy to use API to interact with a Hyperledger fabric blockchain.
44

5+
Below, you'll find the following sections:
6+
7+
- [Installing only the SDK](#installing-only-the-sdk)
8+
- [Terminology](#terminology)
9+
- [HFC Objects](#hfc-objects)
10+
- [Pluggability](#pluggability)
11+
- [Chaincode Deployment](#chaincode-deployment)
12+
- [Enabling TLS](#enabling-tls)
13+
- [Troubleshooting](#troubleshooting)
14+
515
## Installing only the SDK
616

7-
If you are an experienced node.js developer and already have a blockchain environment set up and running elsewhere, you can set up a client-only environment to run the node.js client by installing the HFC node module as shown below. This assumes npm version 2.11.3 and node.js version 0.12.7 are already installed.
17+
If you are an experienced node.js developer and already have a blockchain environment set up and running elsewhere, you can set up a client-only environment to run the node.js client by installing the HFC node module as shown below. This assumes a minimum of npm version 2.11.3 and node.js version 0.12.7 are already installed.
818

919
* To install the latest HFC module of Hyperledger fabric
1020

@@ -14,7 +24,7 @@ If you are an experienced node.js developer and already have a blockchain enviro
1424

1525
### Terminology
1626

17-
In order to transact on a hyperledger blockchain, you must first have an identity which has been both **registered** and **enrolled** with Membership Services. For a topological overview of how the components interact, see [Application Developer's Overview](app-developer-overview.md).
27+
In order to transact on a Hyperledger fabric blockchain, you must first have an identity which has been both **registered** and **enrolled** with Membership Services. For a topological overview of how the components interact, see [Application Developer's Overview](app-overview.md).
1828

1929
Think of **registration** as *issuing a user invitation* to join a blockchain. It consists of adding a new user name (also called an *enrollment ID*) to the membership service configuration. This can be done programatically with the `Member.register` method, or by adding the enrollment ID directly to the [membersrvc.yaml](https://github.com/hyperledger/fabric/blob/master/membersrvc/membersrvc.yaml) configuration file.
2030

@@ -46,7 +56,7 @@ The following is a high-level description of the HFC objects (classes and interf
4656

4757
This class implements the bulk of the deploy, invoke, and query logic. It interacts with Membership Services to get a TCert to perform these operations. Note that there is a one-to-one relationship between TCert and TransactionContext. In other words, a single TransactionContext will always use the same TCert. If you want to issue multiple transactions with the same TCert, then you can get a `TransactionContext` object from a `Member` object directly and issue multiple deploy, invoke, or query operations on it. Note however that if you do this, these transactions are linkable, which means someone could tell that they came from the same user, though not know which user. For this reason, you will typically just call deploy, invoke, and query on the Member or User object.
4858

49-
#### Pluggability
59+
## Pluggability
5060

5161
HFC was designed to support two pluggable components:
5262

@@ -56,9 +66,9 @@ HFC was designed to support two pluggable components:
5666

5767
2. Pluggable `MemberServices` which is used to register and enroll members. Member services enables hyperledger to be a permissioned blockchain, providing security services such as anonymity, unlinkability of transactions, and confidentiality
5868

59-
### Chaincode Deployment
69+
## Chaincode Deployment
6070

61-
#### 'net' mode
71+
### 'net' mode
6272

6373
To have the chaincode deployment succeed in network mode, you must properly set
6474
up the chaincode project outside of your Hyperledger fabric source tree to include all the **golang** dependencies such that when tarred up and sent to the peer, the peer will be able to build the chain code and then deploy it. The
@@ -90,7 +100,7 @@ present.
90100
go build
91101
```
92102

93-
#### 'dev' mode
103+
### 'dev' mode
94104
For deploying chaincode in development mode see [Writing, Building, and Running Chaincode in a Development Environment](../Setup/Chaincode-setup.md).
95105
The chaincode must be running and connected to the peer before issuing the `deploy()` from the Node.js application. The hfc `chain` object must be set to dev mode.
96106

@@ -143,7 +153,7 @@ To configure the peer to connect to the Membership Services server over TLS (oth
143153

144154
*Note:* If you cleanup the folder `/var/hyperledger/production` then don't forget to copy again the *tlsca.cert* file as described above.
145155

146-
### Troublingshooting
156+
### Troubleshooting
147157
If you see errors stating that the client has already been registered/enrolled, keep in mind that you can perform the enrollment process only once, as the enrollmentSecret is a one-time-use password. You will see these errors if you have performed a user registration/enrollment and subsequently deleted the cryptographic tokens stored on the client side. The next time you try to enroll, errors similar to the ones below will be seen.
148158

149159
```

0 commit comments

Comments
 (0)