Skip to content

Commit 8fe748f

Browse files
FAB-4384 update getting started and doc tidy
removed obsolete and unused .rst files consolidated some redundant files removed unused images consolidated FAQ into single document tidied TOC index consolidated sdk page to link to node and java docs updated the GS to link to beta version of bootstrap.sh updated short URL Change-Id: I880c1cfdec98cdef1e310906bb4911c1eae6c828 Signed-off-by: Christopher Ferris <[email protected]>
1 parent d43269c commit 8fe748f

33 files changed

+182
-208
lines changed

docs/source/CONTRIBUTING.rst

+1-1
Original file line numberDiff line numberDiff line change
@@ -268,7 +268,7 @@ Software License 2.0. See the template of the `license header
268268
We have tried to make it as easy as possible to make contributions. This
269269
applies to how we handle the legal aspects of contribution. We use the
270270
same approach—the `Developer's Certificate of Origin 1.1
271-
(DCO) <https://github.com/hyperledger/fabric/blob/master/docs/source/biz/DCO1.1.txt>`__—that the Linux® Kernel
271+
(DCO) <https://github.com/hyperledger/fabric/blob/master/docs/source/DCO1.1.txt>`__—that the Linux® Kernel
272272
`community <http://elinux.org/Developer_Certificate_Of_Origin>`__ uses
273273
to manage code contributions.
274274

File renamed without changes.

docs/source/FAQ/architecture_FAQ.rst

+96-3
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
V1 Architecture
2-
===========================
1+
Hyperledger Fabric FAQs
2+
=======================
33

44
Endorsement
55
-----------
@@ -90,6 +90,99 @@ queried may be recovering and catching up on block processing?
9090
A. The client can query multiple peers, compare their block heights, compare their query results,
9191
and favor the peers at the higher block heights.
9292

93+
Chaincode (Smart Contracts and Digital Assets)
94+
----------------------------------------------
95+
96+
* Does the fabric implementation support smart contract logic?
97+
98+
Yes. Chaincode is the fabric’s interpretation of the smart contract
99+
method/algorithm, with additional features.
100+
101+
A chaincode is programmatic code deployed on the network, where it is
102+
executed and validated by chain validators together during the consensus
103+
process. Developers can use chaincodes to develop business contracts,
104+
asset definitions, and collectively-managed decentralized applications.
105+
106+
* How do I create a business contract using the fabric?
107+
108+
There are generally two ways to develop business contracts: the first way is to
109+
code individual contracts into standalone instances of chaincode; the
110+
second way, and probably the more efficient way, is to use chaincode to
111+
create decentralized applications that manage the life cycle of one or
112+
multiple types of business contracts, and let end users instantiate
113+
instances of contracts within these applications.
114+
115+
* How do I create assets using the fabric?
116+
117+
Users can use chaincode (for business rules) and membership service (for digital tokens) to
118+
design assets, as well as the logic that manages them.
119+
120+
There are two popular approaches to defining assets in most blockchain
121+
solutions: the stateless UTXO model, where account balances are encoded
122+
into past transaction records; and the account model, where account
123+
balances are kept in state storage space on the ledger.
124+
125+
Each approach carries its own benefits and drawbacks. This blockchain
126+
fabric does not advocate either one over the other. Instead, one of our
127+
first requirements was to ensure that both approaches can be easily
128+
implemented with tools available in the fabric.
129+
130+
* Which languages are supported for writing chaincode?
131+
132+
Chaincode can be written in any programming language and executed in containers
133+
inside the fabric context layer. We are also looking into developing a
134+
templating language (such as Apache Velocity) that can either get
135+
compiled into chaincode or have its interpreter embedded into a
136+
chaincode container.
137+
138+
The fabric's first fully supported chaincode language is Golang, and
139+
support for JavaScript and Java is planned for 2016. Support for
140+
additional languages and the development of a fabric-specific templating
141+
language have been discussed, and more details will be released in the
142+
near future.
143+
144+
* Does the fabric have native currency?
145+
146+
No. However, if you really need a native currency for your chain network, you can develop your own
147+
native currency with chaincode. One common attribute of native currency
148+
is that some amount will get transacted (the chaincode defining that
149+
currency will get called) every time a transaction is processed on its
150+
chain.
151+
152+
Identity Management (Membership Service)
153+
----------------------------------------
154+
155+
* What is unique about the fabric's Membership Service module?
156+
157+
One of the things that makes the Membership Service module stand out from
158+
the pack is our implementation of the latest advances in cryptography.
159+
160+
In addition to ensuring private, auditable transactions, our Membership
161+
Service module introduces the concept of enrollment and transaction
162+
certificates. This innovation ensures that only verified owners can
163+
create asset tokens, allowing an infinite number of transaction
164+
certificates to be issued through parent enrollment certificates while
165+
guaranteeing the private keys of asset tokens can be regenerated if
166+
lost.
167+
168+
Issuers also have the ability revoke transaction certificates or
169+
designate them to expire within a certain timeframe, allowing greater
170+
control over the asset tokens they have issued.
171+
172+
Like most other modules on Fabric, you can always replace the
173+
default module with another membership service option should the need
174+
arise.
175+
176+
* Does its Membership Service make Fabric a centralized solution?
177+
178+
No. The only role of the Membership Service module is to issue digital
179+
certificates to validated entities that want to participate in the
180+
network. It does not execute transactions nor is it aware of how or when
181+
these certificates are used in any particular network.
182+
183+
However, because certificates are the way networks regulate and manage
184+
their users, the module serves a central regulatory and organizational
185+
role.
186+
93187
.. Licensed under Creative Commons Attribution 4.0 International License
94188
https://creativecommons.org/licenses/by/4.0/
95-

docs/source/arch-deep-dive.rst

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
Architecture Explained
22
======================
33

4-
The v1 architecture delivers the following advantages:
4+
The Hyperledger Fabric architecture delivers the following advantages:
55

66
- **Chaincode trust flexibility.** The architecture separates *trust
77
assumptions* for chaincodes (blockchain applications) from trust
@@ -832,4 +832,3 @@ also be combined:
832832

833833
.. Licensed under Creative Commons Attribution 4.0 International License
834834
https://creativecommons.org/licenses/by/4.0/
835-
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
-28.7 KB
Binary file not shown.
-10.7 KB
Binary file not shown.
-35.9 KB
Binary file not shown.

docs/source/biz/images/exchange.png

-20.8 KB
Binary file not shown.
Binary file not shown.
-32.8 KB
Binary file not shown.
Binary file not shown.
-35.6 KB
Binary file not shown.

docs/source/capabilities.rst

+2-3
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
Fabric Capabilities
2-
===================
1+
Hyperledger Fabric Capabilities
2+
===============================
33

44
Hyperledger Fabric is a unique implementation of distributed ledger technology
55
(DLT) that delivers enterprise-ready network security, scalability,
@@ -73,4 +73,3 @@ constrained and industry-specific.
7373

7474
.. Licensed under Creative Commons Attribution 4.0 International License
7575
https://creativecommons.org/licenses/by/4.0/
76-

docs/source/chaincode.rst

-5
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,6 @@
11
What is chaincode?
22
==================
33

4-
[WIP]
5-
6-
coming soon ... end-to-end examples of chaincode demonstrating the
7-
available APIs.
8-
94
Chaincode is a piece of code that is written in one of the supported
105
languages such as Go or Java. It is installed and instantiated through
116
an SDK or CLI onto a network of Hyperledger Fabric peer nodes, enabling

docs/source/demos.rst

-34
This file was deleted.

docs/source/fabric-sdks.rst

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
Hyperledger Fabric SDKs
2+
=======================
3+
4+
Hyperledger Fabric intends to offer a number of SDKs for a wide variety of
5+
programming languages. The first two delivered are the Node.js and Java
6+
SDKs. We hope to provide Python and Go SDKs soon after the 1.0.0 release.
7+
8+
* `Hyperledger Fabric Node SDK documentation <https://fabric-sdk-node.github.io/>`__.
9+
* `Hyperledger Fabric Java SDK documentation <https://github.com/hyperledger/fabric-sdk-java>`__.
10+
11+
.. Licensed under Creative Commons Attribution 4.0 International License
12+
https://creativecommons.org/licenses/by/4.0/

docs/source/fabric_model.rst

+23-3
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,26 @@
1-
The Fabric Model
2-
=================
1+
Hyperledger Fabric Model
2+
========================
3+
4+
This section outlines the key design features woven into Hyperledger Fabric that
5+
fulfill its promise of a comprehensive, yet customizable, enterprise blockchain solution:
6+
7+
* :ref:`Assets` - Asset definitions enable the exchange of almost anything with
8+
monetary value over the network, from whole foods to antique cars to currency
9+
futures.
10+
* :ref:`Chaincode` - Chaincode execution is partitioned from transaction ordering,
11+
limiting the required levels of trust and verification across node types, and
12+
optimizing network scalability and performance.
13+
* :ref:`Ledger-Features` - The immutable, shared ledger encodes the entire
14+
transaction history for each channel, and includes SQL-like query capability
15+
for efficient auditing and dispute resolution.
16+
* :ref:`Privacy-through-Channels` - Channels enable multi-lateral transactions
17+
with the high degrees of privacy and confidentiality required by competing
18+
businesses and regulated industries that exchange assets on a common network.
19+
* :ref:`Security-Membership-Services` - Permissioned membership provides a
20+
trusted blockchain network, where participants know that all transactions can
21+
be detected and traced by authorized regulators and auditors.
22+
* :ref:`Consensus` - Fabric's unique approach to consensus enables the
23+
flexibility and scalability needed for the enterprise.
324

425
.. _Assets:
526

@@ -136,4 +157,3 @@ of consensus.
136157

137158
.. Licensed under Creative Commons Attribution 4.0 International License
138159
https://creativecommons.org/licenses/by/4.0/
139-

docs/source/getting_started.rst

+45-47
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@ Getting Started
22
===============
33

44
.. note:: These instructions have been verified to work against the
5-
version "1.0.0-alpha2" tagged docker images and the pre-compiled
6-
setup utilities within the supplied tarball file. If you run
5+
version "1.0.0-beta" tagged docker images and the pre-compiled
6+
setup utilities within the supplied tar file. If you run
77
these commands with images or tools from the current master
88
branch, it is possible that you will see configuration and panic
99
errors.
@@ -40,44 +40,23 @@ Next, execute the following command:
4040

4141
.. code:: bash
4242
43-
curl -sSL https://goo.gl/NIKLiU | bash
43+
curl -sSL https://goo.gl/LQkuoh | bash
4444
4545
This command downloads and executes a bash script (``bootstrap.sh``) that will
4646
extract all of the necessary artifacts to set up your network and place them
4747
into a folder named ``release``.
4848

49-
It also retrieves the two platform-specific binaries - ``cryptogen`` and
50-
``configtxgen`` - which we'll use later. Finally, the script will
51-
download the Hyperledger Fabric docker images into your local Docker registry.
52-
53-
The script lists out the docker images upon conclusion. You should see the
54-
following:
55-
56-
.. code:: bash
57-
58-
jdoe-mbp:<your_platform> johndoe$ docker images
59-
REPOSITORY TAG IMAGE ID CREATED SIZE
60-
hyperledger/fabric-couchdb latest 3d89ac4895f9 3 days ago 1.51 GB
61-
hyperledger/fabric-couchdb x86_64-1.0.0-alpha2 3d89ac4895f9 3 days ago 1.51 GB
62-
hyperledger/fabric-ca latest 86f4e4280690 3 days ago 241 MB
63-
hyperledger/fabric-ca x86_64-1.0.0-alpha2 86f4e4280690 3 days ago 241 MB
64-
hyperledger/fabric-kafka latest b77440c116b3 3 days ago 1.3 GB
65-
hyperledger/fabric-kafka x86_64-1.0.0-alpha2 b77440c116b3 3 days ago 1.3 GB
66-
hyperledger/fabric-zookeeper latest fb8ae6cea9bf 3 days ago 1.31 GB
67-
hyperledger/fabric-zookeeper x86_64-1.0.0-alpha2 fb8ae6cea9bf 3 days ago 1.31 GB
68-
hyperledger/fabric-orderer latest 9a63e8bac1f5 3 days ago 182 MB
69-
hyperledger/fabric-orderer x86_64-1.0.0-alpha2 9a63e8bac1f5 3 days ago 182 MB
70-
hyperledger/fabric-peer latest 23b4aedef57f 3 days ago 185 MB
71-
hyperledger/fabric-peer x86_64-1.0.0-alpha2 23b4aedef57f 3 days ago 185 MB
72-
hyperledger/fabric-javaenv latest a9ca2c90a6bf 3 days ago 1.43 GB
73-
hyperledger/fabric-javaenv x86_64-1.0.0-alpha2 a9ca2c90a6bf 3 days ago 1.43 GB
74-
hyperledger/fabric-ccenv latest c984ae2a1936 3 days ago 1.29 GB
75-
hyperledger/fabric-ccenv x86_64-1.0.0-alpha2 c984ae2a1936 3 days ago 1.29 GB
49+
It also retrieves the two platform-specific binaries - ``cryptogen``,
50+
``configtxgen`` and ``configtxlator`` - which we'll use later. Finally, the
51+
script will download the Hyperledger Fabric docker images from
52+
`DockerHub <https://hub.docker.com/u/hyperledger/>`__ into
53+
your local Docker registry.
7654

55+
The script lists out the docker images installed upon conclusion.
7756

7857
Look at the names for each image; these are the components that will ultimately
7958
comprise our Fabric network. You will also notice that you have two instances
80-
of the same image ID - one tagged as "x86_64-1.0.0-alpha2" and one tagged as "latest".
59+
of the same image ID - one tagged as "x86_64-1.0.0-beta" and one tagged as "latest".
8160
(Note that on different architectures, the x86_64 would be replaced with the string
8261
identifying your architecture).
8362

@@ -86,8 +65,35 @@ Want to run it now?
8665

8766
We provide a script that leverages these docker images to quickly bootstrap
8867
a Fabric network, join peers to a channel, and drive transactions. If you're
89-
already familiar with Fabric or just want to see it in action, feel free to jump
90-
down to the :ref:`Network-Setup` section and run the script.
68+
already familiar with Fabric or just want to see it in action, we have provided
69+
a script that runs an end-to-end sample application.
70+
71+
This script literally does it all. It calls ``generateArtifacts.sh`` to exercise
72+
the ``cryptogen`` and ``configtxgen`` tools, followed by ``script.sh`` which
73+
launches the network, joins peers to a generated channel and then drives
74+
transactions. If you choose not to supply a channel ID, then the
75+
script will use a default name of ``mychannel``. The cli timeout parameter
76+
is an optional value; if you choose not to set it, then your cli container
77+
will exit upon conclusion of the script.
78+
79+
.. code:: bash
80+
81+
./network_setup.sh up
82+
83+
OR
84+
85+
.. code:: bash
86+
87+
./network_setup.sh up <channel-ID> <timeout-value>
88+
89+
Once the demo has completed execution, run it again to clean up...
90+
91+
The following will kill your containers, remove the crypto material and
92+
four artifacts, and remove our the created chaincode images:
93+
94+
.. code:: bash
95+
96+
./network_setup.sh down
9197
9298
If you'd like to learn more about the underlying tooling and bootstrap mechanics,
9399
continue reading. In these next sections we'll walk through the various steps
@@ -481,18 +487,6 @@ the underlying flow and the appropriate syntax. Entering the commands manually
481487
through the CLI is quite onerous, therefore we provide a few scripts to do the
482488
entirety of the heavy lifting.
483489

484-
Clean up
485-
^^^^^^^^
486-
487-
Let's clean up first...
488-
489-
The following script will kill our containers, remove the crypto material and
490-
four artifacts, and remove our three chaincode images:
491-
492-
.. code:: bash
493-
494-
./network_setup.sh down
495-
496490
.. _Network-Setup:
497491

498492
All in one
@@ -518,10 +512,14 @@ OR
518512
519513
Now clean up...
520514

515+
The following script will kill our containers, remove the crypto material and
516+
four artifacts, and remove our three chaincode images:
517+
521518
.. code:: bash
522519
523520
./network_setup.sh down
524521
522+
525523
Config only
526524
^^^^^^^^^^^
527525

@@ -921,7 +919,7 @@ again.
921919
Error connecting: rpc error: code = 14 desc = grpc: RPC failed fast due to transport failure
922920
Error: rpc error: code = 14 desc = grpc: RPC failed fast due to transport failure
923921
924-
Make sure you are running your network against "alpha2" images that have been
922+
Make sure you are running your network against the "beta" images that have been
925923
retagged as "latest".
926924

927925
If you see the below error:
@@ -942,7 +940,7 @@ back and recreate your channel artifacts.
942940
./network_setup.sh down
943941
944942
- If you see an error stating that you still have "active endpoints", then prune
945-
your docker networks. This will wipe your previous networks and start you with a
943+
your docker networks. This will wipe your previous networks and start you with a
946944
fresh environment:
947945

948946
.. code:: bash

0 commit comments

Comments
 (0)