Skip to content

Commit

Permalink
docs: update abci links (tendermint#1796)
Browse files Browse the repository at this point in the history
  • Loading branch information
zramsay authored and xla committed Jun 22, 2018
1 parent 01f6009 commit 867550d
Show file tree
Hide file tree
Showing 14 changed files with 33 additions and 52 deletions.
1 change: 0 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@ test/logs
coverage.txt
docs/_build
docs/tools
docs/abci-spec.md
*.log
abci-cli
abci/types/types.pb.go
Expand Down
15 changes: 7 additions & 8 deletions docs/abci-cli.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,15 +10,14 @@ Make sure you [have Go installed](https://golang.org/doc/install).

Next, install the `abci-cli` tool and example applications:

go get -u github.com/tendermint/abci/cmd/abci-cli
go get github.com/tendermint/tendermint

If this fails, you may need to use [dep](https://github.com/golang/dep)
to get vendored dependencies:

cd $GOPATH/src/github.com/tendermint/abci
cd $GOPATH/src/github.com/tendermint/tendermint
make get_tools
make get_vendor_deps
make install
make install_abci

Now run `abci-cli` to see the list of commands:

Expand Down Expand Up @@ -61,7 +60,7 @@ as `abci-cli` above. The kvstore just stores transactions in a merkle
tree.

Its code can be found
[here](https://github.com/tendermint/abci/blob/master/cmd/abci-cli/abci-cli.go)
[here](https://github.com/tendermint/tendermint/blob/develop/abci/cmd/abci-cli/abci-cli.go)
and looks like:

func cmdKVStore(cmd *cobra.Command, args []string) error {
Expand Down Expand Up @@ -124,7 +123,7 @@ response.

The server may be generic for a particular language, and we provide a
[reference implementation in
Golang](https://github.com/tendermint/abci/tree/master/server). See the
Golang](https://github.com/tendermint/tendermint/tree/develop/abci/server). See the
[list of other ABCI implementations](./ecosystem.html) for servers in
other languages.

Expand Down Expand Up @@ -204,7 +203,7 @@ Now that we've got the hang of it, let's try another application, the
"counter" app.

Like the kvstore app, its code can be found
[here](https://github.com/tendermint/abci/blob/master/cmd/abci-cli/abci-cli.go)
[here](https://github.com/tendermint/tendermint/blob/master/abci/cmd/abci-cli/abci-cli.go)
and looks like:

func cmdCounter(cmd *cobra.Command, args []string) error {
Expand Down Expand Up @@ -301,7 +300,7 @@ But the ultimate flexibility comes from being able to write the
application easily in any language.

We have implemented the counter in a number of languages [see the
example directory](https://github.com/tendermint/abci/tree/master/example).
example directory](https://github.com/tendermint/tendermint/tree/develop/abci/example).

To run the Node JS version, `cd` to `example/js` and run

Expand Down
2 changes: 1 addition & 1 deletion abci/specification.md → docs/abci-spec.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
## Message Types

ABCI requests/responses are defined as simple Protobuf messages in [this
schema file](https://github.com/tendermint/abci/blob/master/types/types.proto).
schema file](https://github.com/tendermint/tendermint/blob/develop/abci/types/types.proto).
TendermintCore sends the requests, and the ABCI application sends the
responses. Here, we provide an overview of the messages types and how
they are used by Tendermint. Then we describe each request-response pair
Expand Down
2 changes: 1 addition & 1 deletion docs/app-architecture.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,4 +47,4 @@ See the following for more extensive documentation:
- [Tendermint RPC Docs](https://tendermint.github.io/slate/)
- [Tendermint in Production](https://github.com/tendermint/tendermint/pull/1618)
- [Tendermint Basics](https://tendermint.readthedocs.io/en/master/using-tendermint.html)
- [ABCI spec](https://github.com/tendermint/abci/blob/develop/specification.md)
- [ABCI spec](https://github.com/tendermint/tendermint/blob/develop/abci/docs/abci-spec.md)
14 changes: 7 additions & 7 deletions docs/app-development.md
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ The message protocol consists of pairs of requests and responses. Some
messages have no fields, while others may include byte-arrays, strings,
or integers. See the `message Request` and `message Response`
definitions in [the protobuf definition
file](https://github.com/tendermint/abci/blob/master/types/types.proto),
file](https://github.com/tendermint/tendermint/blob/develop/abci/types/types.proto),
and the [protobuf
documentation](https://developers.google.com/protocol-buffers/docs/overview)
for more details.
Expand All @@ -72,9 +72,9 @@ Both can be tested using the `abci-cli` by setting the `--abci` flag
appropriately (ie. to `socket` or `grpc`).

See examples, in various stages of maintenance, in
[Go](https://github.com/tendermint/abci/tree/master/server),
[Go](https://github.com/tendermint/tendermint/tree/develop/abci/server),
[JavaScript](https://github.com/tendermint/js-abci),
[Python](https://github.com/tendermint/abci/tree/master/example/python3/abci),
[Python](https://github.com/tendermint/tendermint/tree/develop/abci/example/python3/abci),
[C++](https://github.com/mdyring/cpp-tmsp), and
[Java](https://github.com/jTendermint/jabci).

Expand All @@ -84,7 +84,7 @@ If GRPC is available in your language, this is the easiest approach,
though it will have significant performance overhead.

To get started with GRPC, copy in the [protobuf
file](https://github.com/tendermint/abci/blob/master/types/types.proto)
file](https://github.com/tendermint/tendermint/blob/develop/abci/types/types.proto)
and compile it using the GRPC plugin for your language. For instance,
for golang, the command is `protoc --go_out=plugins=grpc:. types.proto`.
See the [grpc documentation for more details](http://www.grpc.io/docs/).
Expand Down Expand Up @@ -125,12 +125,12 @@ received or a block is committed.

It is unlikely that you will need to implement a client. For details of
our client, see
[here](https://github.com/tendermint/abci/tree/master/client).
[here](https://github.com/tendermint/tendermint/tree/develop/abci/client).

Most of the examples below are from [kvstore
application](https://github.com/tendermint/abci/blob/master/example/kvstore/kvstore.go),
application](https://github.com/tendermint/tendermint/blob/develop/abci/example/kvstore/kvstore.go),
which is a part of the abci repo. [persistent_kvstore
application](https://github.com/tendermint/abci/blob/master/example/kvstore/persistent_kvstore.go)
application](https://github.com/tendermint/tendermint/blob/develop/abci/example/kvstore/persistent_kvstore.go)
is used to show `BeginBlock`, `EndBlock` and `InitChain` example
implementations.

Expand Down
7 changes: 0 additions & 7 deletions docs/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -197,10 +197,3 @@

urllib.urlretrieve(tools_repo+tools_branch+'/tm-bench/README.md', filename=tools_dir+'/benchmarking.md')
urllib.urlretrieve(tools_repo+tools_branch+'/tm-monitor/README.md', filename=tools_dir+'/monitoring.md')

#### abci spec #################################

abci_repo = "https://raw.githubusercontent.com/tendermint/abci/"
abci_branch = "develop"

urllib.urlretrieve(abci_repo+abci_branch+'/specification.md', filename='abci-spec.md')
2 changes: 0 additions & 2 deletions docs/determinism.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
# On Determinism

Arguably, the most difficult part of blockchain programming is determinism - that is, ensuring that sources of indeterminism do not creep into the design of such systems.

See [this issue](https://github.com/tendermint/abci/issues/56) for more information on the potential sources of indeterminism.
12 changes: 4 additions & 8 deletions docs/getting-started.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,15 +25,11 @@ more info.

Then run

go get -u github.com/tendermint/abci/cmd/abci-cli

If there is an error, install and run the
[dep](https://github.com/golang/dep) tool to pin the dependencies:

cd $GOPATH/src/github.com/tendermint/abci
go get github.com/tendermint/tendermint
cd $GOPATH/src/github.com/tendermint/tendermint
make get_tools
make get_vendor_deps
make install
make install_abci

Now you should have the `abci-cli` installed; you'll see a couple of
commands (`counter` and `kvstore`) that are example applications written
Expand Down Expand Up @@ -132,7 +128,7 @@ of the ASCII of `abcd`. You can verify this in a python 2 shell by
running `"61626364".decode('base64')` or in python 3 shell by running
`import codecs; codecs.decode("61626364", 'base64').decode('ascii')`.
Stay tuned for a future release that [makes this output more
human-readable](https://github.com/tendermint/abci/issues/32).
human-readable](https://github.com/tendermint/tendermint/issues/1794).

Now let's try setting a different key and value:

Expand Down
2 changes: 1 addition & 1 deletion docs/how-to-read-logs.md
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ little overview what they do.
- `abci-client` As mentioned in [Application Development Guide](app-development.md#abci-design), Tendermint acts as an ABCI
client with respect to the application and maintains 3 connections:
mempool, consensus and query. The code used by Tendermint Core can
be found [here](https://github.com/tendermint/abci/tree/master/client).
be found [here](https://github.com/tendermint/tendermint/tree/develop/abci/client).
- `blockchain` Provides storage, pool (a group of peers), and reactor
for both storing and exchanging blocks between peers.
- `consensus` The heart of Tendermint core, which is the
Expand Down
10 changes: 5 additions & 5 deletions docs/introduction.md
Original file line number Diff line number Diff line change
Expand Up @@ -119,9 +119,9 @@ consensus engine, and provides a particular application state.
## ABCI Overview

The [Application BlockChain Interface
(ABCI)](https://github.com/tendermint/abci) allows for Byzantine Fault
Tolerant replication of applications written in any programming
language.
(ABCI)](https://github.com/tendermint/tendermint/tree/develop/abci)
allows for Byzantine Fault Tolerant replication of applications
written in any programming language.

### Motivation

Expand Down Expand Up @@ -159,7 +159,7 @@ Teaspoon).

[Tendermint Core](https://github.com/tendermint/tendermint) (the
"consensus engine") communicates with the application via a socket
protocol that satisfies the [ABCI](https://github.com/tendermint/abci).
protocol that satisfies the ABCI.

To draw an analogy, lets talk about a well-known cryptocurrency,
Bitcoin. Bitcoin is a cryptocurrency blockchain where each node
Expand Down Expand Up @@ -187,7 +187,7 @@ core to the application. The application replies with corresponding
response messages.

The messages are specified here: [ABCI Message
Types](https://github.com/tendermint/abci#message-types).
Types](https://github.com/tendermint/tendermint/blob/develop/abci/README.md#message-types).

The **DeliverTx** message is the work horse of the application. Each
transaction in the blockchain is delivered with this message. The
Expand Down
6 changes: 3 additions & 3 deletions docs/spec/software/abci.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,14 @@ ABCI is the interface between Tendermint (a state-machine replication engine)
and an application (the actual state machine).

The ABCI message types are defined in a [protobuf
file](https://github.com/tendermint/abci/blob/master/types/types.proto).
file](https://github.com/tendermint/tendermint/blob/develop/abci/types/types.proto).

For full details on the ABCI message types and protocol, see the [ABCI
specificaiton](https://github.com/tendermint/abci/blob/master/specification.rst).
specification](https://github.com/tendermint/tendermint/blob/develop/docs/abci-spec.md).
Be sure to read the specification if you're trying to build an ABCI app!

For additional details on server implementation, see the [ABCI
readme](https://github.com/tendermint/abci#implementation).
readme](https://github.com/tendermint/tendermint/blob/develop/abci/README.md).

Here we provide some more details around the use of ABCI by Tendermint and
clarify common "gotchas".
Expand Down
6 changes: 2 additions & 4 deletions docs/specification/block-structure.rst
Original file line number Diff line number Diff line change
Expand Up @@ -58,8 +58,7 @@ validators <https://godoc.org/github.com/tendermint/tendermint/types#ValidatorSe
to see if there have been changes.

The ``AppHash`` serves as the basis for validating any merkle proofs
that come from the `ABCI
application <https://github.com/tendermint/abci>`__. It represents the
that come from the ABCI application. It represents the
state of the actual application, rather that the state of the blockchain
itself. This means it's necessary in order to perform any business
logic, such as verifying an account balance.
Expand Down Expand Up @@ -144,8 +143,7 @@ Transaction
~~~~~~~~~~~

A transaction is any sequence of bytes. It is up to your
`ABCI <https://github.com/tendermint/abci>`__ application to accept or
reject transactions.
ABCI application to accept or reject transactions.

BlockID
~~~~~~~
Expand Down
3 changes: 1 addition & 2 deletions docs/specification/validators.rst
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,7 @@ There are two ways to become validator.

1. They can be pre-established in the `genesis
state <./genesis.html>`__
2. The `ABCI app responds to the EndBlock
message <https://github.com/tendermint/abci>`__ with changes to the
2. The ABCI app responds to the EndBlock message with changes to the
existing validator set.

Committing a Block
Expand Down
3 changes: 1 addition & 2 deletions docs/using-tendermint.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,8 +45,7 @@ blocks are produced regularly, even if there are no transactions. See
*No Empty Blocks*, below, to modify this setting.

Tendermint supports in-process versions of the `counter`, `kvstore` and
`nil` apps that ship as examples in the [ABCI
repository](https://github.com/tendermint/abci). It's easy to compile
`nil` apps that ship as examples with `abci-cli`. It's easy to compile
your own app in-process with Tendermint if it's written in Go. If your
app is not written in Go, simply run it in another process, and use the
`--proxy_app` flag to specify the address of the socket it is listening
Expand Down

0 comments on commit 867550d

Please sign in to comment.