docs: clean a bunch of stuff up
This commit is contained in:
parent
aaef2f7c84
commit
e509e8f354
|
@ -48,7 +48,7 @@ Now run ``abci-cli --help`` to see the list of commands:
|
|||
--help, -h show help
|
||||
--version, -v print the version
|
||||
|
||||
First Example - Dummy
|
||||
Dummy - First Example
|
||||
---------------------
|
||||
|
||||
The ``abci-cli`` tool lets us send ABCI messages to our application, to
|
||||
|
@ -148,7 +148,7 @@ but if we do ``deliver_tx "abc=efg"`` it will store ``(abc, efg)``.
|
|||
Similarly, you could put the commands in a file and run
|
||||
``abci-cli --verbose batch < myfile``.
|
||||
|
||||
Another Example - Counter
|
||||
Counter - Another Example
|
||||
-------------------------
|
||||
|
||||
Now that we've got the hang of it, let's try another application, the
|
||||
|
@ -238,20 +238,20 @@ To run the Node JS version, ``cd`` to ``example/js`` and run
|
|||
window, run the console and those previous ABCI commands. You should get
|
||||
the same results as for the Go version.
|
||||
|
||||
Bounties
|
||||
--------
|
||||
|
||||
Want to write the counter app in your favorite language?! We'd be happy
|
||||
to add you to our `ecosystem <https://tendermint.com/ecosystem>`__!
|
||||
We're also offering `bounties <https://tendermint.com/bounties>`__ for
|
||||
implementations in new languages!
|
||||
|
||||
Notes
|
||||
-----
|
||||
|
||||
The ``abci-cli`` is designed strictly for testing and debugging. In a
|
||||
real deployment, the role of sending messages is taken by Tendermint,
|
||||
which connects to the app using three separate connections, each with
|
||||
its own pattern of messages.
|
||||
|
||||
For more information, see the `application developers
|
||||
guide </docs/guides/app-development>`__. For examples of running an ABCI
|
||||
app with Tendermint, see the `introductory
|
||||
guide </docs/getting-started/first-abci-app>`__.
|
||||
guide <./app-development.html>`__. For examples of running an ABCI
|
||||
app with Tendermint, see the `getting started
|
||||
guide <./getting-started.html>`__.
|
||||
|
|
|
@ -58,7 +58,7 @@ Tendermint Core RPC
|
|||
|
||||
The concept is that the ABCI app is completely hidden from the outside
|
||||
world and only communicated through a tested and secured `interface
|
||||
exposed by the tendermint core </docs/specs/rpc>`__. This interface
|
||||
exposed by the tendermint core <./rpc.html>`__. This interface
|
||||
exposes a lot of data on the block header and consensus process, which
|
||||
is quite useful for externally verifying the system. It also includes
|
||||
3(!) methods to broadcast a transaction (propose it for the blockchain,
|
||||
|
@ -122,7 +122,6 @@ the number of validators, one should be able to scale our read
|
|||
performance to quite an extent (until the replication process drains too
|
||||
many resources from the validator nodes).
|
||||
|
||||
Example Code
|
||||
------------
|
||||
|
||||
- `TMChat <https://github.com/wolfposd/TMChat>`__
|
||||
`TMChat <https://github.com/wolfposd/TMChat>`__ is an example of an ABCI
|
||||
application.
|
||||
|
|
|
@ -110,7 +110,7 @@ TSP
|
|||
|
||||
If GRPC is not available in your language, or you require higher
|
||||
performance, or otherwise enjoy programming, you may implement your own
|
||||
ABCI server using the Tendermint Socket Protocol, known affectionaltely
|
||||
ABCI server using the Tendermint Socket Protocol, known affectionately
|
||||
as Teaspoon. The first step is still to auto-generate the relevant data
|
||||
types and codec in your language using ``protoc``. Messages coming over
|
||||
the socket are Protobuf3 encoded, but additionally length-prefixed to
|
||||
|
|
|
@ -120,8 +120,8 @@ Vote Sign Bytes
|
|||
^^^^^^^^^^^^^^^
|
||||
|
||||
The ``sign-bytes`` of a vote is produced by taking a
|
||||
```stable-json`` <https://github.com/substack/json-stable-stringify>`__-like
|
||||
deterministic JSON ```wire`` </docs/specs/wire-protocol>`__ encoding of
|
||||
`stable-json <https://github.com/substack/json-stable-stringify>`__-like
|
||||
deterministic JSON `wire <./wire-protocol.html>`__ encoding of
|
||||
the vote (excluding the ``Signature`` field), and wrapping it with
|
||||
``{"chain_id":"my_chain","vote":...}``.
|
||||
|
||||
|
|
|
@ -1,9 +1,6 @@
|
|||
Byzantine Consensus Algorithm
|
||||
=============================
|
||||
|
||||
*The draft 0.6 whitepaper is outdated. The new algorithm is detailed
|
||||
below. See `revisions <#revisions>`__*
|
||||
|
||||
Terms
|
||||
-----
|
||||
|
||||
|
@ -23,7 +20,7 @@ Terms
|
|||
for something.
|
||||
- A vote *at* ``(H,R)`` is a vote signed with the bytes for ``H`` and
|
||||
``R`` included in its
|
||||
```sign-bytes`` </docs/specs/block-structure#vote-sign-bytes>`__.
|
||||
`sign-bytes <block-structure.html#vote-sign-bytes>`__.
|
||||
- *+2/3* is short for "more than 2/3"
|
||||
- *1/3+* is short for "1/3 or more"
|
||||
- A set of +2/3 of prevotes for a particular block or ``<nil>`` at
|
||||
|
@ -261,7 +258,7 @@ in the commit-set) are each justified in the JSet with no duplicitous
|
|||
vote signatures (by the committers).
|
||||
|
||||
- **Lemma**: When a fork is detected by the existence of two
|
||||
conflicting `commits </docs/specs/validators#commiting-a-block>`__,
|
||||
conflicting `commits <./validators.html#commiting-a-block>`__,
|
||||
the union of the JSets for both commits (if they can be compiled)
|
||||
must include double-signing by at least 1/3+ of the validator set.
|
||||
**Proof**: The commit cannot be at the same round, because that would
|
||||
|
@ -304,7 +301,7 @@ Censorship Attacks
|
|||
~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Due to the definition of a block
|
||||
`commit </docs/specs/validators#commiting-a-block>`__, any 1/3+
|
||||
`commit <validators.html#commiting-a-block>`__, any 1/3+
|
||||
coalition of validators can halt the blockchain by not broadcasting
|
||||
their votes. Such a coalition can also censor particular transactions by
|
||||
rejecting blocks that include these transactions, though this would
|
||||
|
|
|
@ -34,7 +34,7 @@ Here are the steps to setting up a testnet manually:
|
|||
|
||||
After a few seconds, all the nodes should connect to eachother and start
|
||||
making blocks! For more information, see the Tendermint Networks section
|
||||
of `the guide to using Tendermint </docs/guides/using-tendermint>`__.
|
||||
of `the guide to using Tendermint <using-tendermint.html>`__.
|
||||
|
||||
Automated Deployments
|
||||
---------------------
|
||||
|
@ -43,15 +43,5 @@ While the manual deployment is easy enough, an automated deployment is
|
|||
always better. For this, we have the `mintnet-kubernetes
|
||||
tool <https://github.com/tendermint/tools/tree/master/mintnet-kubernetes>`__,
|
||||
which allows us to automate the deployment of a Tendermint network on an
|
||||
already provisioned kubernetes cluster.
|
||||
|
||||
For more details, see the `mintnet-kubernetes
|
||||
directory <https://github.com/tendermint/tools/tree/master/mintnet-kubernetes>`__,
|
||||
and check out `Google Cloud Platform <https://cloud.google.com/>`__ for
|
||||
simple provisioning of kubernetes clusters.
|
||||
|
||||
Next Steps
|
||||
----------
|
||||
|
||||
Done trying out the testnet? Continue
|
||||
`onwards </docs/getting-started/next-steps>`__.
|
||||
already provisioned kubernetes cluster. And for simple provisioning of kubernetes
|
||||
cluster, check out the `Google Cloud Platform <https://cloud.google.com/>`__.
|
||||
|
|
|
@ -30,8 +30,6 @@ Fields
|
|||
Sample genesis.json
|
||||
~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
This example is from the Basecoin mintnet example:
|
||||
|
||||
.. code:: json
|
||||
|
||||
{
|
||||
|
|
|
@ -52,7 +52,7 @@ application written in Javascript.
|
|||
|
||||
Now, let's run some apps!
|
||||
|
||||
A First Example - Dummy
|
||||
Dummy - A First Example
|
||||
-----------------------
|
||||
|
||||
The dummy app is a `Merkle
|
||||
|
@ -80,7 +80,7 @@ If you have used Tendermint, you may want to reset the data for a new
|
|||
blockchain by running ``tendermint unsafe_reset_all``. Then you can run
|
||||
``tendermint node`` to start Tendermint, and connect to the app. For
|
||||
more details, see `the guide on using
|
||||
Tendermint <using-tendermint.rst>`__.
|
||||
Tendermint <./using-tendermint.html>`__.
|
||||
|
||||
You should see Tendermint making blocks! We can get the status of our
|
||||
Tendermint node as follows:
|
||||
|
@ -149,7 +149,7 @@ Now if we query for ``name``, we should get ``satoshi``, or
|
|||
Try some other transactions and queries to make sure everything is
|
||||
working!
|
||||
|
||||
Another Example - Counter
|
||||
Counter - Another Example
|
||||
-------------------------
|
||||
|
||||
Now that we've got the hang of it, let's try another application, the
|
||||
|
@ -214,9 +214,9 @@ But if we send a ``1``, it works again:
|
|||
{"jsonrpc":"2.0","id":"","result":[98,{"check_tx":{},"deliver_tx":{}}],"error":""}
|
||||
|
||||
For more details on the ``broadcast_tx`` API, see `the guide on using
|
||||
Tendermint <using-tendermint.rst>`__.
|
||||
Tendermint <./using-tendermint.html>`__.
|
||||
|
||||
Example in Another Language - CounterJS
|
||||
CounterJS - Example in Another Language
|
||||
---------------------------------------
|
||||
|
||||
We also want to run applications in another language - in this case,
|
||||
|
@ -258,7 +258,7 @@ like before - the results should be the same:
|
|||
|
||||
Neat, eh?
|
||||
|
||||
A More Interesting Example - Basecoin
|
||||
Basecoin - A More Interesting Example
|
||||
-------------------------------------
|
||||
|
||||
We saved the best for last; the `Cosmos SDK <https://github.com/cosmos/cosmos-sdk>`__ is a general purpose framework for building cryptocurrencies. Unlike the``dummy`` and ``counter``, which are strictly for example purposes. The reference implementation of Cosmos SDK is ``basecoin``, which demonstrates how to use the building blocks of the Cosmos SDK.
|
||||
|
@ -268,7 +268,8 @@ that supports inter-blockchain communication. For more details on how
|
|||
basecoin works and how to use it, see our `basecoin
|
||||
guide <https://github.com/cosmos/cosmos-sdk/blob/develop/docs/guide/basecoin-basics.md>`__
|
||||
|
||||
In this tutorial you learned how to run applications using Tendermint on a single node. You saw how applications could be written in different
|
||||
In this tutorial you learned how to run applications using Tendermint
|
||||
on a single node. You saw how applications could be written in different
|
||||
languages, and how to send transactions and query for the latest state.
|
||||
But the true power of Tendermint comes from its ability to securely and
|
||||
efficiently run an application across a distributed network of nodes,
|
||||
|
|
|
@ -11,7 +11,7 @@ Tendermint 101:
|
|||
.. maxdepth set to 2 for sexiness
|
||||
.. but use 4 to upgrade documentation
|
||||
.. toctree::
|
||||
:maxdepth: 4
|
||||
:maxdepth: 2
|
||||
|
||||
introduction.rst
|
||||
install-from-source.rst
|
||||
|
@ -22,7 +22,7 @@ Tendermint 101:
|
|||
Tendermint 102:
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 4
|
||||
:maxdepth: 2
|
||||
|
||||
abci-cli.rst
|
||||
app-architecture.rst
|
||||
|
|
|
@ -2,7 +2,7 @@ Install from Source
|
|||
===================
|
||||
|
||||
This page provides instructions on installing Tendermint from source. To
|
||||
download pre-built binaries, see the `Download page </download>`__.
|
||||
download pre-built binaries, see the `Download page <https://tendermint.com/download>`__.
|
||||
|
||||
Install Go
|
||||
----------
|
||||
|
@ -100,8 +100,3 @@ To start a one-node blockchain with a simple in-process application:
|
|||
|
||||
tendermint init
|
||||
tendermint node --proxy_app=dummy
|
||||
|
||||
See the `App Development </docs/guides/app-development>`__ guide for
|
||||
more details on building applications, and the `Using
|
||||
Tendermint </docs/guides/using-tendermint>`__ guide for more details
|
||||
about using the ``tendermint`` program.
|
||||
|
|
|
@ -12,18 +12,18 @@ Overview
|
|||
--------
|
||||
|
||||
The objective of the light client protocol is to get a
|
||||
`commit </docs/specs/validators#committing-a-block>`__ for a recent
|
||||
`block hash </docs/specs/block-structure#block-hash>`__ where the commit
|
||||
`commit <./validators.html#committing-a-block>`__ for a recent
|
||||
`block hash <./block-structure.html#block-hash>`__ where the commit
|
||||
includes a majority of signatures from the last known validator set.
|
||||
From there, all the application state is verifiable with `merkle
|
||||
proofs </docs/specs/merkle-trees#iavl-tree>`__.
|
||||
proofs <./merkle-trees#iavl-tree>`__.
|
||||
|
||||
Properties
|
||||
----------
|
||||
|
||||
- You get the full collateralized security benefits of Tendermint; No
|
||||
need to wait for confirmations.
|
||||
- You get the full speed benefits of Tendermint; Transactions commit
|
||||
- You get the full speed benefits of Tendermint; transactions commit
|
||||
instantly.
|
||||
- You can get the most recent version of the application state
|
||||
non-interactively (without committing anything to the blockchain).
|
||||
|
|
|
@ -62,8 +62,8 @@ such as the Web-of-Trust or Certificate Authorities. In our case, we can
|
|||
use the blockchain itself as a certificate authority to ensure that we
|
||||
are connected to at least one validator.
|
||||
|
||||
Links
|
||||
-----
|
||||
Additional Reading
|
||||
------------------
|
||||
|
||||
- `Implementation <https://github.com/tendermint/go-p2p/blob/master/secret_connection.go#L49>`__
|
||||
- `Original STS paper by Whitfield Diffie, Paul C. van Oorschot and
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
Specification
|
||||
#############
|
||||
|
||||
Here you'll details of the Tendermint specification. See `the spec repo <https://github.com/tendermint/spec>`__ for upcoming material. Tendermint's types are produced by `godoc <https://godoc.org/github.com/tendermint/tendermint/types>`__
|
||||
Here you'll find details of the Tendermint specification. See `the spec repo <https://github.com/tendermint/spec>`__ for upcoming material. Tendermint's types are produced by `godoc <https://godoc.org/github.com/tendermint/tendermint/types>`__
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 2
|
||||
|
|
|
@ -2,7 +2,7 @@ Using Tendermint
|
|||
================
|
||||
|
||||
This is a guide to using the ``tendermint`` program from the command
|
||||
line. It assumes only that you `have tendermint installed </download>`__
|
||||
line. It assumes only that you have the ``tendermint`` binary installed
|
||||
and have some rudimentary idea of what Tendermint and ABCI are.
|
||||
|
||||
You can see the help menu with ``tendermint --help``, and the version
|
||||
|
@ -117,7 +117,7 @@ Configuration
|
|||
-------------
|
||||
|
||||
Tendermint uses a ``config.toml`` for configutation. For details, see
|
||||
`the documentation </docs/specs/configuration>`__.
|
||||
`the documentation <./configuration.html>`__.
|
||||
|
||||
Notable options include the socket address of the application
|
||||
(``proxy_app``), the listenting address of the tendermint peer
|
||||
|
@ -342,7 +342,7 @@ failing, you need at least four validator nodes (> 2/3).
|
|||
|
||||
Updating validators in a live network is supported but must be
|
||||
explicitly programmed by the application developer. See the `application
|
||||
developers guide </docs/guides/app-development#Handshake>`__ for more
|
||||
developers guide <./app-development.html#Handshake>`__ for more
|
||||
details.
|
||||
|
||||
Local Network
|
||||
|
@ -354,12 +354,3 @@ the listening addresses of the various sockets don't conflict.
|
|||
Additionally, you must set ``addrbook_strict=false`` in the
|
||||
``config.toml``, otherwise Tendermint's p2p library will deny making
|
||||
connections to peers with the same IP address.
|
||||
|
||||
More
|
||||
----
|
||||
|
||||
Got a couple nodes talking to each other using the dummy app? Try a more
|
||||
sophisticated app like
|
||||
`Ethermint <https://github.com/tendermint/ethermint>`__, or learn more
|
||||
about building your own in the `Application Developer's
|
||||
Guide </docs/guides/app-development>`__.
|
||||
|
|
|
@ -25,7 +25,7 @@ Becoming a Validator
|
|||
There are two ways to become validator.
|
||||
|
||||
1. They can be pre-established in the `genesis
|
||||
state </docs/specs/genesis>`__
|
||||
state <./genesis.html>`__
|
||||
2. The `ABCI app responds to the EndBlock
|
||||
message <https://github.com/tendermint/abci>`__ with changes to the
|
||||
existing validator set.
|
||||
|
@ -36,9 +36,9 @@ Committing a Block
|
|||
*+2/3 is short for "more than 2/3"*
|
||||
|
||||
A block is committed when +2/3 of the validator set sign `precommit
|
||||
votes </docs/specs/block-structure#vote>`__ for that block at the same
|
||||
`round </docs/specs/consensus>`__. The +2/3 set of precommit votes is
|
||||
called a `*commit* </docs/specs/block-structure#commit>`__. While any
|
||||
votes <./block-structure.html#vote>`__ for that block at the same
|
||||
``round``. The +2/3 set of precommit votes is
|
||||
called a `*commit* <./block-structure.html#commit>`__. While any
|
||||
+2/3 set of precommits for the same block at the same height&round can
|
||||
serve as validation, the canonical commit is included in the next block
|
||||
(see `LastCommit </docs/specs/block-structure>`__.
|
||||
(see `LastCommit <./block-structure.html>`__).
|
||||
|
|
Loading…
Reference in New Issue