Merge remote-tracking branch 'origin/master' into cmdliner
This commit is contained in:
commit
0c13838eca
118
README.md
118
README.md
@ -1,6 +1,10 @@
|
||||
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.
|
||||
|
||||
|
||||
@ -8,16 +12,33 @@ Build instructions
|
||||
------------------
|
||||
|
||||
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
|
||||
dependencies, we strongly recommand to install
|
||||
[OPAM](https://opam.ocaml.org/), the OCaml package manager, and then to
|
||||
run the following command:
|
||||
libraries listed in `src/tezos-deps.opam`.
|
||||
|
||||
The best way to install all dependencies is by first installing
|
||||
[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
|
||||
```
|
||||
|
||||
Then, to compile the project, simply run:
|
||||
Compile the project:
|
||||
|
||||
```
|
||||
make
|
||||
@ -29,113 +50,112 @@ This should produce three binaries:
|
||||
* `tezos-client`: a minimal command-line client;
|
||||
* `tezos-protocol-compiler`: a protocol compiler used for developing new version of the economical protocol.
|
||||
|
||||
Currently Tezos is developped/tested under Linux only.
|
||||
It should work on mac OS, but this has not been tested recently.
|
||||
The Windows port is in progress.
|
||||
Currently Tezos is being developed for Linux only. It should work on mac OS,
|
||||
but it has not been tested recently. A Windows port is in progress.
|
||||
|
||||
|
||||
|
||||
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
|
||||
```
|
||||
|
||||
This "sandboxed" node will not participate to the P2P network, but
|
||||
it accepts RPC from the local host on port 8732. See below from more
|
||||
details on the RPC interface.
|
||||
This "sandboxed" node will not participate in the P2P network, but will accept
|
||||
RPC from localhost on port 8732. See below from more details on the RPC
|
||||
interface.
|
||||
|
||||
|
||||
Running the node
|
||||
----------------
|
||||
|
||||
There is not an official running Tezos network yet. But you might run
|
||||
a local test network. To run a node that accept incoming connections,
|
||||
simply run:
|
||||
So far there is no official Tezos network being run, but you might run a local
|
||||
test network. Use the following command to run a node that will accept incoming
|
||||
connections:
|
||||
|
||||
```
|
||||
./tezos-node
|
||||
```
|
||||
|
||||
It will listen to incoming connection on `0.0.0.0:9732` (and `[::]:9732`).
|
||||
All useful data are stored into `${HOME}/.tezos-node/`, e.g. a default
|
||||
configuration file was generated: `${HOME}/.tezos-node/config`.
|
||||
The node will listen to connections coming in on `0.0.0.0:9732` (and
|
||||
`[::]:9732`). All used data is stored at `${HOME}/.tezos-node/`. For example,
|
||||
the default configuration file is at `${HOME}/.tezos-node/config`.
|
||||
|
||||
To create multiple nodes on the same machine, it is possible to
|
||||
duplicate and edit `${HOME}/.tezos-node/config` while taking care not to
|
||||
share paths for accessing the database or any other data file
|
||||
(cf. options `db.store` ; `db.context` ; `net.peers` and `protocol.dir`).
|
||||
To run multiple nodes on the same machine, you can duplicate and edit
|
||||
`${HOME}/.tezos-node/config` while making sure they don't share paths to the
|
||||
database or any other data file (cf. options `db.store` ; `db.context` ;
|
||||
`net.peers` and `protocol.dir`).
|
||||
|
||||
Another possibility is to let Tezos generate a config file by specifying
|
||||
options on the command line. For instance, if `${DIR}/config` does not
|
||||
exist, the following command will generate it and replace the default values
|
||||
with the values from the command line arguments:
|
||||
You could also let Tezos generate a config file by specifying options on the
|
||||
command line. For instance, if `$dir/config` does not exist, the following
|
||||
command will generate it and replace the default values with the values from
|
||||
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
|
||||
(using UDP packets broadcasted on port 7732).
|
||||
The Tezos server has a built-in mechanism to discover peers on the local
|
||||
network (using UDP packets broadcasted on port 7732).
|
||||
|
||||
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
|
||||
`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)]'
|
||||
```
|
||||
|
||||
If `${DIR}/config` exists, the command line options override those read
|
||||
in the config file. Tezos never modifies the content of an existing
|
||||
`${DIR}/config` file.
|
||||
If `"$dir"/config` exists, the command line options override those read in the
|
||||
config file. Tezos won't modify the content of an existing `"$dir"/config`
|
||||
file.
|
||||
|
||||
```
|
||||
./tezos-node -config-file ${DIR}/config
|
||||
./tezos-node -config-file "$dir"/config
|
||||
```
|
||||
|
||||
|
||||
JSON/RPC interface
|
||||
------------------
|
||||
|
||||
The tezos node provides a JSON/RPC interface. Note that it is an RPC,
|
||||
and it is JSON based, but it does not follow the "JSON-RPC" protocol.
|
||||
It is not active by default and it should be explicitely activated with
|
||||
the `rpc-port` option. Typically, if you are not trying to run a local
|
||||
network and just want to explore the RPC, you should run:
|
||||
The Tezos node provides a JSON/RPC interface. Note that it is an RPC, and it is
|
||||
JSON based, but it does not follow the "JSON-RPC" protocol. It is not active by
|
||||
default and it must be explicitely activated with the `-rpc-port` option.
|
||||
Typically, if you are not trying to run a local network and just want to
|
||||
explore the RPC, you would run:
|
||||
|
||||
```
|
||||
./tezos-node -sandbox /path/to/a/custom/data/dir -rpc-port 8732
|
||||
```
|
||||
|
||||
The RPC interface is self-documented and the `tezos-client`
|
||||
is able to pretty-print the list of available RPCs. For instance, for
|
||||
the list of RPC provided by the Shell:
|
||||
The RPC interface is self-documented and the `tezos-client` executable is able
|
||||
to pretty-print the RPC API. For instance, to see the API provided by the Tezos
|
||||
Shell:
|
||||
|
||||
```
|
||||
./tezos-client rpc list
|
||||
```
|
||||
|
||||
And, for the list of RPC attached to the "genesis" bloc,
|
||||
including the RPC provided by the associated economical-protocol version:
|
||||
To get API attached to the "genesis" block, including the remote procedures
|
||||
provided by the associated economical protocol version:
|
||||
|
||||
```
|
||||
./tezos-client rpc list /blocks/genesis/
|
||||
```
|
||||
|
||||
You might also get the JSON schema describing the expected input and output
|
||||
of a RPC. For instance:
|
||||
You might also want the JSON schema describing the expected input and output of
|
||||
a RPC. For instance:
|
||||
|
||||
```
|
||||
./tezos-client rpc schema /block/genesis/hash
|
||||
```
|
||||
|
||||
Note: you might get the same information, but as a raw JSON object,
|
||||
with a simple HTTP request:
|
||||
Note: you can get the same information, but as a raw JSON object, with a simple
|
||||
HTTP request:
|
||||
|
||||
```
|
||||
wget --post-data '{ "recursive": true }' -O - http://127.0.0.1:8732/describe
|
||||
@ -150,4 +170,4 @@ The minimal CLI client
|
||||
|
||||
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