Commit Graph

31 Commits

Author SHA1 Message Date
Grégoire Henry
f3555488c7 Shell: use one 'validation worker' per peer.
The single validation module is split in multiple (simpler)
modules. In the process, we introduce one "validation worker" per
peer. This worker handle all the `New_head` and `New_branch`
advertised by a given peer. For so, it sends "fetching request" and
"validation request" to respectively the `Distributed_db` and and the
`Block_validator`. These two global workers are responsible of the
'fair' allocation of network and CPU ressources amongst the connected
'peers'.
2017-11-17 14:13:55 +01:00
Grégoire Henry
1429a6c8e6 Almost too late for copyright update. 2017-11-15 13:13:16 +01:00
Pietro Abate
6ecfca9396 Reindent all files
Now `make test` fails when sources are not indented correctly, the
indentation test is also executed in the CI.
2017-11-13 23:13:34 +01:00
Grégoire Henry
5c1f96f3a1 Shell: add the number of validation passes in the block header. 2017-11-03 15:12:06 +00:00
Grégoire Henry
4bbc97aeb6 Shell: rework the preapply RPC
It now takes a `proto_header` in parameter, and it returns a full
`shell_header`. This prepares the inclusion of the context's hash in the
`shell_header`.
2017-06-12 11:07:35 +02:00
Grégoire Henry
565654a242 Client: minor renaming 2017-06-12 11:05:48 +02:00
Grégoire Henry
f39eca214a Shell: remove the on-disk index of operations
Let's get serious. The full index of operations is not sustainable in
the production code. We now only keep the index of operations not yet
in the chain (i.e. the mempool/prevalidation). Operations from the
chain are now only accesible through a block. For instance, see the
RPC:

   /blocks/<hash>/proto/operations
2017-06-12 11:04:43 +02:00
Grégoire Henry
4995864316 Shell: regroups basic data types in Tezos_data 2017-06-12 11:04:43 +02:00
Grégoire Henry
0f247adea6 Shell: add the protocol level in the header of block 2017-04-12 18:29:12 +02:00
Grégoire Henry
2b0df39115 Context: simplify the storage of 'test_network'.
This prepares the context to the inclusion the hash of the context in
the block header. By "looking" into the resulting context of a block,
we are now know able to determine whether:

- no testnet is currently associated to the branch;
- a testnet must be forked after the block;
- a previously forked testnet is running.
2017-04-12 12:43:34 +02:00
Grégoire Henry
495e887538 RPC: minor improvements in naming consistency 2017-04-12 12:41:35 +02:00
Grégoire Henry
f805507702 Shell: move level in th shell part of block. 2017-04-12 12:41:32 +02:00
Benjamin Canou
5a21f3c159 Reengineer the PROTOCOL signature to prepare for the multi-step validator. 2017-04-10 23:30:43 +02:00
Vincent Bernardoff
329b72d1aa RPC: batch operation parsing/retrieval 2017-04-04 16:11:18 +02:00
Grégoire Henry
ef3180c561 Shell: Smaller Net_id. 2017-04-02 15:40:04 +02:00
Grégoire Henry
245fa66140 Shell: Split the operations list out of the (minimal) block header.
The minimal header now (classically) contains the root of a Merkle tree,
wrapping a list of lists of operations. Currently, the validator only
accept a single list of operations, but the 3+pass validator will
requires at least two lists.
2017-03-31 01:19:34 +02:00
Benjamin Canou
ed6e91a47d RPCs: make the result of [/blocks/X] compatible with Alpha's [/helpers/parse/block]. 2017-03-28 14:37:26 +02:00
Guillem Rieu
83f2e0dcd3 Client: switch to JSON config file and remove config-file dependency. 2017-03-16 18:49:31 +01:00
Benjamin Canou
b5f0021016 Shell: add RPC to list network protocol versions. 2017-03-13 19:08:08 +01:00
Vincent Bernardoff
63e5ea5e79 Client: Add "network stat" command. 2017-03-07 13:07:18 +01:00
Grégoire Henry
768cf91cd6 Client: implements ./tezos-client bootstrapped
It wait for the node to be synchronized with the network. The heuristic
is currently:

- the timestamp of current head is less than 1 minute old ;
- there was a period of 30 seconds without new block discovered.
2017-03-02 16:17:58 +01:00
Grégoire Henry
0b33e5a6da Shell/RPC: Implements `/block/<hash>/predecessors 2017-02-26 00:23:52 +01:00
Grégoire Henry
b674c538b2 Shell: refactor the distributed DB.
This refactors `src/node/shell/state.ml` in order to trace the source of
blocks and operations. This prepares the node for the three-pass
validator.

In the procces, it adds an in-memory overlay for blocks and operations.
2017-02-25 18:14:05 +01:00
Grégoire Henry
bda80bf613 Shell: rename gid into peer_id 2017-02-24 16:22:56 +01:00
Vincent Bernardoff
b0ed3cefac Shell: Add RPCs for introspecting the state of the P2P layer 2017-02-24 16:22:55 +01:00
Benjamin Canou
e7c39578b4 Extract the js_of_ocaml compatible part of utils. 2016-12-01 18:27:53 +01:00
Grégoire Henry
b16a644e55 Proto: Completion of Base48-encoded public keys and contracts
This required some modifications in the Base48 module, in order not to
share the 'resolver' between distinct version of the economical protocol.
2016-11-16 00:53:40 +01:00
Grégoire Henry
69261aa542 Client: add command "complete". 2016-11-16 00:52:48 +01:00
Vincent Bernardoff
488373551b add protocol store + rpcs 2016-10-25 19:03:13 +02:00
Çağdaş Bozman
4a7eb60631 Client/Shell: filter heads by date 2016-10-10 14:23:23 +02:00
Tezos
f42e9d12ac First public release 2016-09-08 19:29:33 -07:00