Update README.md:

- fix build instructions
- add some information about the JSON/RPC interface
This commit is contained in:
Grégoire Henry 2016-09-22 11:42:14 +02:00
parent 9d77e562f3
commit b11a770dfa
2 changed files with 101 additions and 22 deletions

View File

@ -9,5 +9,5 @@ clean:
test:
${MAKE} -C test
build_deps:
build-deps:
@./scripts/install_build_deps.sh all

121
README.md
View File

@ -1,37 +1,71 @@
TEZOS
=====
To compile:
See https://www.tezos.com/ for more information about the project.
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:
```
make build-deps
```
Then, to compile the project, simply run:
```
make
```
=========
This should produce three binaries:
To run a single instance :
* `tezos-node`: the tezos daemon itself;
* `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.
Running the node in a sandbox
-----------------------------
To run a single instance of a Tezos node in a 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.
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:
```
./tezos-node
```
All useful data are stored in `${HOME}/.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`.
To run a test instance, without connecting to the gossup network :
```
./tezos-node -sandbox /path/to/a/custom/data/dir
```
Useful data will be stored in the directory `/path/to/a/custom/data/dir`
instead of `${HOME}/.tezos-node`.
=========
To create other instances on the same machine, it is possible to
duplicate and edit `${HOME}/.tezos/config` while taking care not to
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`).
@ -41,13 +75,13 @@ exist, the following command will generate it and replace the default values
with the values from the command line arguments:
```
./tezos-node -base-dir ${DIR} -net-port 2023 -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)
(using UDP packets broadcasted on port 7732).
If this mechanism isn't 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
`config` file, or by specifying a command line parameter:
@ -64,3 +98,48 @@ in the config file. Tezos never modifies the content of an existing
./tezos-node -config-file ${DIR}/config
```
JSON/RPC interface
------------------
The tezos node provides a JSON/RPC interface. It is not active by
default and it should be explicitely activated with the `rpc-port`
option. This 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:
```
./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:
```
./tezos-client rpc list /blocks/genesis/
```
You might also get 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:
```
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/blocks/genesis
wget -O - http://127.0.0.1:8732/describe/blocks/genesis/hash
```
The minimal CLI client
----------------------
Work in progress.
See `./tezos-client -help` for the current list of available commands.