Commit Graph

36 Commits

Author SHA1 Message Date
Grégoire Henry
2bc63854a8 Shell: Liveness of operations
Operations now include a block hash in their header. Such an operation
could only be included in a successor of this block.

Furthermore, when validating a block, the economic protocol now
returns---together with the context---an integer `max_operations_ttl`.
Then, when validating a successor, the shell will fail if it contains
an operation whose header's block hash is not one the
`max_operations_ttl` predecessors of the block.

As a bonus, the shell is now able to detect and forbid replayed
operations. Then, we might decide to remove some replay
detection-mechanism that we previously implemented in the economic
protocol.
2017-06-12 11:07:37 +02:00
Grégoire Henry
90780f3374 Shell: minor renaming
Let's be consistent with Lwt (and ourselves).
2017-06-12 11:07:37 +02: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
d06fcebd1f Proto/Alpha: minor renaming 2017-06-12 11:05:48 +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
68f9851bce Client: add option for forcing free mining. 2017-06-07 16:41:46 +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
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
Grégoire Henry
6212af55f1 Proto/Alpha: use uint16 for mining priority. 2017-04-12 12:39:08 +02:00
Benjamin Canou
5a21f3c159 Reengineer the PROTOCOL signature to prepare for the multi-step validator. 2017-04-10 23:30:43 +02:00
Grégoire Henry
f5e2f7b481 Client: more Error_monad in Client_aliases 2017-04-10 18:31:37 +02:00
Grégoire Henry
3226565b39 Client: more Error_monad in Client_{node,proto}_rpcs 2017-04-10 18:31:37 +02:00
Vincent Bernardoff
329b72d1aa RPC: batch operation parsing/retrieval 2017-04-04 16:11:18 +02:00
Grégoire Henry
5449cbbfe6 Proto/Alpha: use record for mining slot. 2017-04-02 16:18:44 +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
Grégoire Henry
618fb64129 Client/RPC: rename wait into async 2017-03-31 01:19:34 +02:00
Benjamin Canou
9872ff8b36 RPCs: make the result of [/operations/X] compatible with Alpha's [/helpers/parse/operation].
fixes #160
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
967075f49a CLient: fix endorse for command. 2017-03-16 18:49:31 +01:00
Vincent Bernardoff
8962f324d4 Client: a bit of doc. 2017-03-16 18:49:31 +01:00
Vincent Bernardoff
215bd0e2d2 Alpha: simplify mining/endorsement slots RPCs. 2017-03-16 18:49:31 +01:00
Vincent Bernardoff
d845dc9740 Alpha: documentation of RPC wrappers. 2017-03-10 18:33:46 +01:00
Grégoire Henry
82628a6ca2 Client: avoid unrequired monitor 2017-03-09 14:38:39 +01:00
Grégoire Henry
9dd2e4963f Makefile: add --warn-error 8 (incomplete pattern-matching) 2017-03-07 13:12:23 +01:00
Grégoire Henry
3f5bd7ea5b Client: allow the baker te re-read keys.
Is a new key is added, the baker will start baking for this key.
No need to relauch the baker anymore.
2017-03-02 16:18:16 +01:00
Grégoire Henry
22e3aee362 Alphanet: remove the secret bootstrap keys 2017-03-02 16:18:09 +01:00
Grégoire Henry
20057079c6 Client/Revelation: reduce the size of RPC requests 2017-02-26 00:24:02 +01:00
Grégoire Henry
2f6863da89 Client/Endorser: do not send endorsement for old blocks 2017-02-26 00:23:54 +01:00
Grégoire Henry
fc7e4e56a6 Client/Baker: do not monitor endorsement while baking. 2017-02-25 18:25:00 +01:00
Grégoire Henry
285427bcba Client: minor stylistic issue. 2017-02-25 18:24:58 +01:00
Benjamin Canou
c66db98bfa Baker: don't bake over old loafs during the bootstrap stage. 2017-02-25 18:24:33 +01:00
Grégoire Henry
a2f1b6c889 Client: introduce Client_blocks 2017-02-25 18:14:06 +01:00
Grégoire Henry
d5d5cc7c09 Proto: rename bootstrap into alpha 2017-02-25 18:14:05 +01:00