From 6ee4a3419f13de4f2f1f452bb2f0ea2fcedda6ff Mon Sep 17 00:00:00 2001 From: cdaughtr Date: Thu, 3 Nov 2016 11:04:27 -0400 Subject: [PATCH] Remove docs/nodeSDK from fabric and add links This is the second part of moving the docs out of fabric and into fabric-sdk-node. nodeSDK readthedocs will be deleted from fabric and replaced by links to fabric-sdk-node.readthedocs. See FAB-863. Change-Id: I0258b7afde48a8b5cf8f290eb871a6e1fbe52986 Signed-off-by: cdaughtr --- docs/Setup/NodeSDK-setup.md | 2 +- docs/dev-setup/build.md | 2 +- docs/index.md | 2 +- docs/nodeSDK/app-developer-env-setup.md | 50 ------ docs/nodeSDK/app-overview.md | 56 ------ .../images/standalone-app-developer.png | Bin 52033 -> 0 bytes docs/nodeSDK/images/web-app-developer.png | Bin 52033 -> 0 bytes docs/nodeSDK/node-sdk-guide.md | 32 ---- docs/nodeSDK/node-sdk-indepth.md | 169 ------------------ docs/nodeSDK/sample-standalone-app.md | 49 ----- docs/nodeSDK/sample-web-app.md | 13 -- docs/starter/fabric-starter-kit.md | 4 +- mkdocs.yml | 8 - 13 files changed, 5 insertions(+), 382 deletions(-) delete mode 100755 docs/nodeSDK/app-developer-env-setup.md delete mode 100755 docs/nodeSDK/app-overview.md delete mode 100644 docs/nodeSDK/images/standalone-app-developer.png delete mode 100644 docs/nodeSDK/images/web-app-developer.png delete mode 100755 docs/nodeSDK/node-sdk-guide.md delete mode 100755 docs/nodeSDK/node-sdk-indepth.md delete mode 100755 docs/nodeSDK/sample-standalone-app.md delete mode 100755 docs/nodeSDK/sample-web-app.md diff --git a/docs/Setup/NodeSDK-setup.md b/docs/Setup/NodeSDK-setup.md index 8226cf54f96..f23a4dafa13 100755 --- a/docs/Setup/NodeSDK-setup.md +++ b/docs/Setup/NodeSDK-setup.md @@ -18,7 +18,7 @@ execute the following command: npm install -g hfc ``` -See [Hyperledger fabric Node.js client SDK](../nodeSDK/node-sdk-guide.md) for more information. +See [Hyperledger fabric Node.js client SDK](http://fabric-sdk-node.readthedocs.io/en/latest/node-sdk-guide) for more information. ## Hyperledger fabric network diff --git a/docs/dev-setup/build.md b/docs/dev-setup/build.md index 90b0958ed41..4ba48393940 100644 --- a/docs/dev-setup/build.md +++ b/docs/dev-setup/build.md @@ -77,7 +77,7 @@ go test -v -run=TestGetFoo ### Running Node.js Unit Tests -You must also run the Node.js unit tests to insure that the Node.js client SDK is not broken by your changes. To run the Node.js unit tests, follow the instructions [here](https://github.com/hyperledger/fabric/tree/master/sdk/node#unit-tests). +You must also run the Node.js unit tests to insure that the Node.js client SDK is not broken by your changes. To run the Node.js unit tests, follow the instructions [here](https://github.com/hyperledger/fabric-sdk-node/README.md). ### Running Behave BDD Tests [Behave](http://pythonhosted.org/behave/) tests will setup networks of peers with different security and consensus configurations and verify that transactions run properly. To run these tests diff --git a/docs/index.md b/docs/index.md index e7a8efa210b..139c1a260c4 100644 --- a/docs/index.md +++ b/docs/index.md @@ -124,7 +124,7 @@ relating to Chaincode. - [APIs - CLI, REST, and Node.js](API/CoreAPI.md) - [CLI](API/CoreAPI.md#cli): working with the command-line interface. - [REST](API/CoreAPI.md#rest-api): working with the REST API (*deprecated*). -- [Node.js SDK](nodeSDK/node-sdk-guide.md): working with the Node.js SDK. +- [Node.js SDK](http://fabric-sdk-node.readthedocs.io/en/latest/node-sdk-guide): working with the Node.js SDK. ## Fabric developer guide diff --git a/docs/nodeSDK/app-developer-env-setup.md b/docs/nodeSDK/app-developer-env-setup.md deleted file mode 100755 index ef3ea6ae8cd..00000000000 --- a/docs/nodeSDK/app-developer-env-setup.md +++ /dev/null @@ -1,50 +0,0 @@ -# Setting up the Full Hyperledger fabric Developer's Environment - - * See [Setting Up The Development Environment](../dev-setup/devenv.md) to set up your development environment. - - * The following commands are all issued from the vagrant environment. The following will open a terminal session: - -``` - cd /fabric/devenv - vagrant up - vagrant ssh -``` - - * Issue the following commands to build the Hyperledger fabric client (HFC) Node.js SDK including the API reference documentation - -``` - cd /opt/gopath/src/github.com/hyperledger/fabric/sdk/node - make all -``` - * 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. - -``` - npm install /opt/gopath/src/github.com/hyperledger/fabric/sdk/node -``` - - Or point to the HFC directly by using the following `require()` in your code: - -```javascript - require("/opt/gopath/src/github.com/hyperledger/fabric/sdk/node"); -``` - - * To build the API reference documentation: - -``` - cd /opt/gopath/src/github.com/hyperledger/fabric/sdk/node - make doc -``` - - * To build the reference documentation in the [Fabric-starter-kit](../starter/fabric-starter-kit.md) - -``` - docker exec -it nodesdk /bin/bash - cd /opt/gopath/src/github.com/hyperledger/fabric/sdk/node - make doc -``` - - * The the API reference documentation will be available in: - ``` - /opt/gopath/src/github.com/hyperledger/fabric/sdk/node/doc - ``` - diff --git a/docs/nodeSDK/app-overview.md b/docs/nodeSDK/app-overview.md deleted file mode 100755 index fc9d8fd7919..00000000000 --- a/docs/nodeSDK/app-overview.md +++ /dev/null @@ -1,56 +0,0 @@ -# Application Overview - -Hyperledger fabric supports two types of applications: - - * A standalone application that interacts directly with a blockchain. - See the [Standalone Application](#standaloneApp) section. - - * A web application that interacts with a blockchain on behalf of its web application users. - See the [Web Application](#webApp) section. - - -## Standalone Application - -The following diagram provides an overview of the major components of Hyperledger fabric for the standalone application developer. - - - -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. - -The **Standalone Application** may be developed in Node.js by using the Hyperledger fabric Client (HFC) SDK for Node.js. This SDK handles all interactions with other Hyperledger fabric components. - - -#### SDK interactions - -The **SDK** interacts with a **Peer** process. If the Peer process fails, the Node.js Client SDK can fail-over to another Peer as shown by the dotted line from the Node.js Client SDK to another Peer. - -This interaction with the Peer consists of submitting transactions to the blockchain. There are three types of transactions: - - * deploy - to deploy developer's chaincode as depicted by the green **CC1** boxes in the diagram; - * invoke - to execute a chaincode function which changes the state of the *blockchain database*; - * query - to execute a chaincode function which may return state information related to the *blockchain database*. - -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. - -The interaction with the Membership Services consists of: - - * register - to invite a new user to the blockchain - * enroll - to get access to the blockchain - - -## Web Application - -The following diagram provides an overview of the major components of Hyperledger fabric for the web application developer. - -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. - -``` -browser --> web tier --> database tier - -``` - - - -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. - -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). diff --git a/docs/nodeSDK/images/standalone-app-developer.png b/docs/nodeSDK/images/standalone-app-developer.png deleted file mode 100644 index 1fb8ac8226860dd37c8053783783a705af347c79..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 52033 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�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 P1|aZs^>bP0l+XkKHf1*1 diff --git a/docs/nodeSDK/images/web-app-developer.png b/docs/nodeSDK/images/web-app-developer.png deleted file mode 100644 index 1fb8ac8226860dd37c8053783783a705af347c79..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 52033 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�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 P1|aZs^>bP0l+XkKHf1*1 diff --git a/docs/nodeSDK/node-sdk-guide.md b/docs/nodeSDK/node-sdk-guide.md deleted file mode 100755 index 146f7463cae..00000000000 --- a/docs/nodeSDK/node-sdk-guide.md +++ /dev/null @@ -1,32 +0,0 @@ -# Hyperledger fabric Client (HFC) SDK for Node.js - -The Hyperledger fabric Client (HFC) SDK for Node.js provides a powerful and easy to use API to interact with a Hyperledger fabric blockchain. The HFC is designed to be used in the Node.js JavaScript runtime. - -#### Overview and Deep Dive - -* [Application Developer's Overview](app-overview.md) for a topological overview of applications and a blockchain. - -* [Hyperledger fabric Client (HFC) SDK for Node.js](node-sdk-indepth.md) the Node.js client SDK in more depth - -#### Development Environment Choices - -* *Recommended:* [Fabric-starter-kit](../starter/fabric-starter-kit.md) uses pre-built docker images for the Node.js client application interacting with Hyperledger fabric blockchain. This environment may suffice for a majority of Node.js application developers. The environment contains a built-in standalone sample ready to go. - -* [Full Hyperledger fabric development environment](app-developer-env-setup.md) on how to set up an environment for developing chaincode and applications. - - **Note:** Only recommended for development of the Hyperledger fabric Client SDK itself. - - -#### Sample Code - -* [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. - -* [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. - - - -#### Related information - - * To build the reference documentation for the Node.js client SDK APIs follow the instructions [here](app-developer-env-setup.md). - - * To learn more about chaincode, see [Writing, Building, and Running Chaincode in a Development Environment](../Setup/Chaincode-setup.md). diff --git a/docs/nodeSDK/node-sdk-indepth.md b/docs/nodeSDK/node-sdk-indepth.md deleted file mode 100755 index 58eec77378b..00000000000 --- a/docs/nodeSDK/node-sdk-indepth.md +++ /dev/null @@ -1,169 +0,0 @@ -# Hyperledger fabric Client (HFC) SDK for Node.js - -The Hyperledger fabric Client (HFC) SDK provides a powerful and easy to use API to interact with a Hyperledger fabric blockchain. - -Below, you'll find the following sections: - -- [Installing only the SDK](#installing-only-the-sdk) -- [Terminology](#terminology) -- [HFC Objects](#hfc-objects) -- [Pluggability](#pluggability) -- [Chaincode Deployment](#chaincode-deployment) -- [Enabling TLS](#enabling-tls) -- [Troubleshooting](#troubleshooting) - -## Installing only the SDK - -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. - -* To install the latest HFC module of Hyperledger fabric - -``` - npm install hfc -``` - -### Terminology - -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). - -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. - -Think of **enrollment** as *accepting a user invitation* to join a blockchain. This is always done by the entity that will transact on the blockchain. This can be done programatically via the `Member.enroll` method. - -## HFC Objects - -HFC is written primarily in typescript. The source can be found in the `fabric/sdk/node/src` directory. The reference documentation is generated automatically from this source code and can be found in`fabric/sdk/node/doc` after building the project. - -The following is a high-level description of the HFC objects (classes and interfaces) to help guide you through the object hierarchy. - -* **Chain** - - This is the main top-level class which is the client's representation of a chain. HFC allows you to interact with multiple chains and to share a single `KeyValStore` and `MemberServices` object with multiple chains if needed. For each chain, you add one or more `Peer` objects which represents the endpoint(s) to which HFC connects to transact on the chain. The second peer is used only if the first peer fails. The third peer is used only if both the first and second peers fail, etc. - -* **KeyValStore** - - This is a very simple interface which HFC uses to store and retrieve all persistent data. This data includes private keys, so it is very important to keep this storage secure. The default implementation is a simple file-based version found in the `FileKeyValStore` class. If running in a clustered web application, you will need to either ensure that a shared file system is used, or you must implement your own `KeyValStore` that can be shared among all cluster members. - -* **MemberServices** - - This is an interface representing Membership Services and is implemented by the `MemberServicesImpl` class. It provides security and identity related features such as privacy, unlinkability, and confidentiality. This implementation issues *ECerts* (enrollment certificates) and *TCerts* (transaction certificates). ECerts are for enrollment identity and TCerts are for transactions. - -* **Member** or **User** - - The Member class most often represents an end User who transacts on the chain, but it may also represent other types of members such as peers. From the Member class, you can *register* and *enroll* members or users. This interacts with the `MemberServices` object. You can also deploy, query, and invoke chaincode directly, which interacts with the `Peer`. The implementation for deploy, query and invoke simply creates a temporary `TransactionContext` object and delegates the work to it. - -* **TransactionContext** - - 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. - -## Pluggability - -HFC was designed to support two pluggable components: - -1. Pluggable `KeyValStore` key value store which is used to retrieve and store keys associated with a member. The key value store is used to store sensitive private keys, so care must be taken to properly protect access. - - **IMPORTANT NOTE**: The default KeyValStore is file-based. If multiple instances of a web application run in a cluster, you must provide an implementation of the KeyValStore which is used by all members of the cluster. - -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 - -## Chaincode Deployment - -### 'net' mode - -To have the chaincode deployment succeed in network mode, you must properly set -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 -following instructions will demonstrate how to properly set up the directory -structure to deploy *chaincode_example02* in network mode. - -The chaincode project must be placed under the `$GOPATH/src` directory. For example, the [chaincode_example02](https://github.com/hyperledger/fabric/blob/master/examples/chaincode/go/chaincode_example02/chaincode_example02.go) -project should be placed under `$GOPATH/src/` as shown below. - -``` - mkdir -p $GOPATH/src/github.com/chaincode_example02/ - cd $GOPATH/src/github.com/chaincode_example02 - curl GET https://raw.githubusercontent.com/hyperledger/fabric/master/examples/chaincode/go/chaincode_example02/chaincode_example02.go > chaincode_example02.go -``` - -After you have placed your chaincode project under the `$GOPATH/src`, you will need to vendor the dependencies. From the directory containing your chaincode source, run the following commands: - -``` - go get -u github.com/kardianos/govendor - cd $GOPATH/src/github.com/chaincode_example02 - govendor init - govendor fetch github.com/hyperledger/fabric -``` - -Now, execute `go build` to verify that all of the chaincode dependencies are -present. - -``` - go build -``` - -### 'dev' mode -For deploying chaincode in development mode see [Writing, Building, and Running Chaincode in a Development Environment](../Setup/Chaincode-setup.md). -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. - -```javascript -chain.setDevMode(true); -``` -The deploy request must include the `chaincodeName` that the chaincode registered with the peer. The built-in chaincode example checks an environment variable `CORE_CHAINCODE_ID_NAME=mycc` when it starts. - -```json - var deployRequest = { - chaincodeName: 'mycc', - fcn: "init", - args: ["a", "100", "b", "200"] - }; -``` - -### Enabling TLS - -If you wish to configure TLS with the Membership Services server, the following steps are required: - -- Modify `$GOPATH/src/github.com/hyperledger/fabric/membersrvc/membersrvc.yaml` as follows: - -``` - server: - tls: - cert: - file: "/var/hyperledger/production/.membersrvc/tlsca.cert" - key: - file: "/var/hyperledger/production/.membersrvc/tlsca.priv" -``` - -To specify to the Membership Services (TLS) Certificate Authority (TLSCA) what X.509 v3 Certificate (with a corresponding Private Key) to use: - -- Modify `$GOPATH/src/github.com/hyperledger/fabric/peer/core.yaml` as follows: - -``` - peer: - pki: - tls: - enabled: true - rootcert: - file: "/var/hyperledger/production/.membersrvc/tlsca.cert" -``` - -To configure the peer to connect to the Membership Services server over TLS (otherwise, the connection will fail). - -- Bootstrap your Membership Services and the peer. This is needed in order to have the file *tlsca.cert* generated by the member services. - -- Copy `/var/hyperledger/production/.membersrvc/tlsca.cert` to `$GOPATH/src/github.com/hyperledger/fabric/sdk/node`. - -*Note:* If you cleanup the folder `/var/hyperledger/production` then don't forget to copy again the *tlsca.cert* file as described above. - -### Troubleshooting -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. - -``` - Error: identity or token do not match - -``` - -``` - Error: user is already registered - -``` - -To address this, remove any stored cryptographic material from the CA server by following the instructions [here](https://github.com/hyperledger/fabric/blob/master/docs/Setup/Chaincode-setup.md#removing-temporary-files-when-security-is-enabled). You will also need to remove any of the cryptographic tokens stored on the client side by deleting the KeyValStore directory. That directory is configurable and is set to `/tmp/keyValStore` within the unit tests. diff --git a/docs/nodeSDK/sample-standalone-app.md b/docs/nodeSDK/sample-standalone-app.md deleted file mode 100755 index 8ee2c6249f8..00000000000 --- a/docs/nodeSDK/sample-standalone-app.md +++ /dev/null @@ -1,49 +0,0 @@ -# Node.js Standalone Application in Vagrant - -This section describes how to run a sample standalone Node.js application which interacts with a Hyperledger fabric blockchain. - -* If you haven't already done so, see [Setting Up The Application Development Environment](app-developer-env-setup.md) to get your environment set up. The remaining steps assume that you are running **inside the vagrant environment**. - -* Issue the following commands to build the Node.js Client SDK: - -``` - cd /opt/gopath/src/github.com/hyperledger/fabric - make node-sdk -``` - -* Start the membership services and peer processes. We run the peer in dev mode for simplicity. - -``` - cd /opt/gopath/src/github.com/hyperledger/fabric/build/bin - membersrvc > membersrvc.log 2>&1& - peer node start --peer-chaincodedev > peer.log 2>&1& -``` - -* Build and run chaincode example 2: - -``` - cd /opt/gopath/src/github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02 - go build - CORE_CHAINCODE_ID_NAME=mycc CORE_PEER_ADDRESS=0.0.0.0:7051 ./chaincode_example02 > log 2>&1& -``` - -* Put the following sample app in a file named **app.js** in the */tmp* directory. Take a moment (now or later) to read the comments and code to begin to learn the Node.js Client SDK APIs. - - You may retrieve the [sample application](https://raw.githubusercontent.com/hyperledger/fabric/master/examples/sdk/node/app.js) file: -``` - cd /tmp - curl -o app.js https://raw.githubusercontent.com/hyperledger/fabric/master/examples/sdk/node/app.js -``` -* Run **npm** to install Hyperledger Fabric Node.js SDK in the `/tmp` directory -``` - npm install /opt/gopath/src/github.com/hyperledger/fabric/sdk/node -``` - -* To run the application : - -``` - CORE_CHAINCODE_ID_NAME=mycc CORE_PEER_ADDRESS=0.0.0.0:7051 MEMBERSRVC_ADDRESS=0.0.0.0:7054 DEPLOY_MODE=dev node app -``` - -Congratulations! You've successfully run your first Hyperledger fabric application. - diff --git a/docs/nodeSDK/sample-web-app.md b/docs/nodeSDK/sample-web-app.md deleted file mode 100755 index 911942ce083..00000000000 --- a/docs/nodeSDK/sample-web-app.md +++ /dev/null @@ -1,13 +0,0 @@ -# Node.js Web Application - -The following is a web application template. It is NOT a complete program. - -This template code demonstrates how to communicate with a blockchain from a Node.js web application. It does not show how to listen for incoming requests nor how to authenticate your web users as this is application specific. The code below is intended to demonstrate how to interact with a Hyperledger fabric blockchain from an existing web application. - -You may retrieve the [sample application]( https://raw.githubusercontent.com/hyperledger/fabric/master/examples/sdk/node/web-app.js) file: - -``` - curl -o app.js https://raw.githubusercontent.com/hyperledger/fabric/master/examples/sdk/node/web-app.js -``` - - diff --git a/docs/starter/fabric-starter-kit.md b/docs/starter/fabric-starter-kit.md index 7a0be5022ef..96c8e35d37a 100755 --- a/docs/starter/fabric-starter-kit.md +++ b/docs/starter/fabric-starter-kit.md @@ -9,7 +9,7 @@ the fabric's Node.js SDK, and chaincode written in Go. There are three Docker images that, when run, will provide a basic network environment. There is an image to run a single `peer`, one to run the `membersrvc`, and one to run both your Node.js application and your -chaincode. See [Application Developer's Overview](../nodeSDK/app-overview.md) on how the +chaincode. See [Application Developer's Overview](http://fabric-sdk-node.readthedocs.io/en/latest/app-overview) on how the components running within the containers will communicate. The starter kit comes with a sample Node.js application ready to execute and @@ -132,7 +132,7 @@ images: * run npm to install Hyperledger fabric Node.js SDK in the `mytest` directory: ``` - npm install /opt/gopath/src/github.com/hyperledger/fabric/sdk/node + npm install /opt/gopath/src/github.com/hyperledger/fabric-sdk-node ``` * run the application from within the **starter** Docker container using the following commands: diff --git a/mkdocs.yml b/mkdocs.yml index cea624c8caf..6b17d12bef8 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -53,14 +53,6 @@ pages: - Attributes: tech/attributes.md - Best Practices: tech/best-practices.md -- NodeSDK: - - App-developer-env-setup: nodeSDK/app-developer-env-setup.md - - App-Overview: nodeSDK/app-overview.md - - Node-SDK-guide: nodeSDK/node-sdk-guide.md - - Node-SDK-indepth: nodeSDK/node-sdk-indepth.md - - Sample-Standalone-app: nodeSDK/sample-standalone-app.md - - Sample-web-app: nodeSDK/sample-web-app.md - - Starter Kit: - Starter Kit: starter/fabric-starter-kit.md