Merge branch '100-improve-readme' into 'master'
doc improvements to readme Closes #100 See merge request !121
This commit is contained in:
commit
53088b06b2
118
README.md
118
README.md
@ -1,6 +1,10 @@
|
|||||||
TEZOS
|
TEZOS
|
||||||
=====
|
=====
|
||||||
|
|
||||||
|
Tezos is a distributed consensus platform with meta-consensus capability. Tezos
|
||||||
|
not only comes to consensus about state, like BTC or ETH. It also comes to
|
||||||
|
consensus about how the protocol and the nodes should adapt and upgrade.
|
||||||
|
|
||||||
See https://www.tezos.com/ for more information about the project.
|
See https://www.tezos.com/ for more information about the project.
|
||||||
|
|
||||||
|
|
||||||
@ -8,16 +12,33 @@ Build instructions
|
|||||||
------------------
|
------------------
|
||||||
|
|
||||||
To compile Tezos, you need an OCaml compiler (version 4.03.0) and all the
|
To compile Tezos, you need an OCaml compiler (version 4.03.0) and all the
|
||||||
libraries listed in `src/tezos-deps.opam`. To install all the required
|
libraries listed in `src/tezos-deps.opam`.
|
||||||
dependencies, we strongly recommand to install
|
|
||||||
[OPAM](https://opam.ocaml.org/), the OCaml package manager, and then to
|
The best way to install all dependencies is by first installing
|
||||||
run the following command:
|
[OPAM](https://opam.ocaml.org/), the OCaml package manager.
|
||||||
|
|
||||||
|
Create a new switch alias for Tezos. A switch is your own version of the OPAM
|
||||||
|
configuration, including the OCaml compiler, all packages, and package manager
|
||||||
|
configuration related to your project. This is necessary so that the project
|
||||||
|
doesn't conflict with other OCaml projects or other versions of Tezos.
|
||||||
|
|
||||||
|
```
|
||||||
|
opam switch tezos --alias-of 4.03.0
|
||||||
|
```
|
||||||
|
|
||||||
|
Activate the new switch:
|
||||||
|
|
||||||
|
```
|
||||||
|
eval `opam config env`
|
||||||
|
```
|
||||||
|
|
||||||
|
Install Tezos dependencies:
|
||||||
|
|
||||||
```
|
```
|
||||||
make build-deps
|
make build-deps
|
||||||
```
|
```
|
||||||
|
|
||||||
Then, to compile the project, simply run:
|
Compile the project:
|
||||||
|
|
||||||
```
|
```
|
||||||
make
|
make
|
||||||
@ -29,113 +50,112 @@ This should produce three binaries:
|
|||||||
* `tezos-client`: a minimal command-line client;
|
* `tezos-client`: a minimal command-line client;
|
||||||
* `tezos-protocol-compiler`: a protocol compiler used for developing new version of the economical protocol.
|
* `tezos-protocol-compiler`: a protocol compiler used for developing new version of the economical protocol.
|
||||||
|
|
||||||
Currently Tezos is developped/tested under Linux only.
|
Currently Tezos is being developed for Linux only. It should work on mac OS,
|
||||||
It should work on mac OS, but this has not been tested recently.
|
but it has not been tested recently. A Windows port is in progress.
|
||||||
The Windows port is in progress.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Running the node in a sandbox
|
Running the node in a sandbox
|
||||||
-----------------------------
|
-----------------------------
|
||||||
|
|
||||||
To run a single instance of a Tezos node in a sandbox mode:
|
To run a single instance of a Tezos node in sandbox mode:
|
||||||
|
|
||||||
```
|
```
|
||||||
./tezos-node -sandbox /path/to/a/custom/data/dir -rpc-port 8732
|
./tezos-node -sandbox /path/to/a/custom/data/dir -rpc-port 8732
|
||||||
```
|
```
|
||||||
|
|
||||||
This "sandboxed" node will not participate to the P2P network, but
|
This "sandboxed" node will not participate in the P2P network, but will accept
|
||||||
it accepts RPC from the local host on port 8732. See below from more
|
RPC from localhost on port 8732. See below from more details on the RPC
|
||||||
details on the RPC interface.
|
interface.
|
||||||
|
|
||||||
|
|
||||||
Running the node
|
Running the node
|
||||||
----------------
|
----------------
|
||||||
|
|
||||||
There is not an official running Tezos network yet. But you might run
|
So far there is no official Tezos network being run, but you might run a local
|
||||||
a local test network. To run a node that accept incoming connections,
|
test network. Use the following command to run a node that will accept incoming
|
||||||
simply run:
|
connections:
|
||||||
|
|
||||||
```
|
```
|
||||||
./tezos-node
|
./tezos-node
|
||||||
```
|
```
|
||||||
|
|
||||||
It will listen to incoming connection on `0.0.0.0:9732` (and `[::]:9732`).
|
The node will listen to connections coming in on `0.0.0.0:9732` (and
|
||||||
All useful data are stored into `${HOME}/.tezos-node/`, e.g. a default
|
`[::]:9732`). All used data is stored at `${HOME}/.tezos-node/`. For example,
|
||||||
configuration file was generated: `${HOME}/.tezos-node/config`.
|
the default configuration file is at `${HOME}/.tezos-node/config`.
|
||||||
|
|
||||||
To create multiple nodes on the same machine, it is possible to
|
To run multiple nodes on the same machine, you can duplicate and edit
|
||||||
duplicate and edit `${HOME}/.tezos-node/config` while taking care not to
|
`${HOME}/.tezos-node/config` while making sure they don't share paths to the
|
||||||
share paths for accessing the database or any other data file
|
database or any other data file (cf. options `db.store` ; `db.context` ;
|
||||||
(cf. options `db.store` ; `db.context` ; `net.peers` and `protocol.dir`).
|
`net.peers` and `protocol.dir`).
|
||||||
|
|
||||||
Another possibility is to let Tezos generate a config file by specifying
|
You could also let Tezos generate a config file by specifying options on the
|
||||||
options on the command line. For instance, if `${DIR}/config` does not
|
command line. For instance, if `$dir/config` does not exist, the following
|
||||||
exist, the following command will generate it and replace the default values
|
command will generate it and replace the default values with the values from
|
||||||
with the values from the command line arguments:
|
the command line:
|
||||||
|
|
||||||
```
|
```
|
||||||
./tezos-node -base-dir ${DIR} -net-port 9733 -net-addr 127.0.0.1
|
./tezos-node -base-dir "$dir" -net-port 9733 -net-addr 127.0.0.1
|
||||||
```
|
```
|
||||||
|
|
||||||
The Tezos server has a built-in mechanism to discover peers on the local net
|
The Tezos server has a built-in mechanism to discover peers on the local
|
||||||
(using UDP packets broadcasted on port 7732).
|
network (using UDP packets broadcasted on port 7732).
|
||||||
|
|
||||||
If this mechanism is not sufficient, one can provide Tezos with a list of
|
If this mechanism is not sufficient, one can provide Tezos with a list of
|
||||||
initial peers, either by editing the option `net.bootstrap.peers` in the
|
initial peers, either by editing the option `net.bootstrap.peers` in the
|
||||||
`config` file, or by specifying a command line parameter:
|
`config` file, or by specifying a command line parameter:
|
||||||
|
|
||||||
```
|
```
|
||||||
./tezos-node -base-dir ${DIR} -net-port 2023 -net-addr 127.0.0.1 \
|
./tezos-node -base-dir "$dir" -net-port 2023 -net-addr 127.0.0.1 \
|
||||||
-net-bootstrap-peers '[("127.0.0.1", 2021);("127.0.0.1", 2022)]'
|
-net-bootstrap-peers '[("127.0.0.1", 2021);("127.0.0.1", 2022)]'
|
||||||
```
|
```
|
||||||
|
|
||||||
If `${DIR}/config` exists, the command line options override those read
|
If `"$dir"/config` exists, the command line options override those read in the
|
||||||
in the config file. Tezos never modifies the content of an existing
|
config file. Tezos won't modify the content of an existing `"$dir"/config`
|
||||||
`${DIR}/config` file.
|
file.
|
||||||
|
|
||||||
```
|
```
|
||||||
./tezos-node -config-file ${DIR}/config
|
./tezos-node -config-file "$dir"/config
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
JSON/RPC interface
|
JSON/RPC interface
|
||||||
------------------
|
------------------
|
||||||
|
|
||||||
The tezos node provides a JSON/RPC interface. Note that it is an RPC,
|
The Tezos node provides a JSON/RPC interface. Note that it is an RPC, and it is
|
||||||
and it is JSON based, but it does not follow the "JSON-RPC" protocol.
|
JSON based, but it does not follow the "JSON-RPC" protocol. It is not active by
|
||||||
It is not active by default and it should be explicitely activated with
|
default and it must be explicitely activated with the `-rpc-port` option.
|
||||||
the `rpc-port` option. Typically, if you are not trying to run a local
|
Typically, if you are not trying to run a local network and just want to
|
||||||
network and just want to explore the RPC, you should run:
|
explore the RPC, you would run:
|
||||||
|
|
||||||
```
|
```
|
||||||
./tezos-node -sandbox /path/to/a/custom/data/dir -rpc-port 8732
|
./tezos-node -sandbox /path/to/a/custom/data/dir -rpc-port 8732
|
||||||
```
|
```
|
||||||
|
|
||||||
The RPC interface is self-documented and the `tezos-client`
|
The RPC interface is self-documented and the `tezos-client` executable is able
|
||||||
is able to pretty-print the list of available RPCs. For instance, for
|
to pretty-print the RPC API. For instance, to see the API provided by the Tezos
|
||||||
the list of RPC provided by the Shell:
|
Shell:
|
||||||
|
|
||||||
```
|
```
|
||||||
./tezos-client rpc list
|
./tezos-client rpc list
|
||||||
```
|
```
|
||||||
|
|
||||||
And, for the list of RPC attached to the "genesis" bloc,
|
To get API attached to the "genesis" block, including the remote procedures
|
||||||
including the RPC provided by the associated economical-protocol version:
|
provided by the associated economical protocol version:
|
||||||
|
|
||||||
```
|
```
|
||||||
./tezos-client rpc list /blocks/genesis/
|
./tezos-client rpc list /blocks/genesis/
|
||||||
```
|
```
|
||||||
|
|
||||||
You might also get the JSON schema describing the expected input and output
|
You might also want the JSON schema describing the expected input and output of
|
||||||
of a RPC. For instance:
|
a RPC. For instance:
|
||||||
|
|
||||||
```
|
```
|
||||||
./tezos-client rpc schema /block/genesis/hash
|
./tezos-client rpc schema /block/genesis/hash
|
||||||
```
|
```
|
||||||
|
|
||||||
Note: you might get the same information, but as a raw JSON object,
|
Note: you can get the same information, but as a raw JSON object, with a simple
|
||||||
with a simple HTTP request:
|
HTTP request:
|
||||||
|
|
||||||
```
|
```
|
||||||
wget --post-data '{ "recursive": true }' -O - http://127.0.0.1:8732/describe
|
wget --post-data '{ "recursive": true }' -O - http://127.0.0.1:8732/describe
|
||||||
@ -150,4 +170,4 @@ The minimal CLI client
|
|||||||
|
|
||||||
Work in progress.
|
Work in progress.
|
||||||
|
|
||||||
See `./tezos-client -help` for the current list of available commands.
|
See `./tezos-client -help` for available commands.
|
Loading…
Reference in New Issue
Block a user