Commit Graph

30 Commits

Author SHA1 Message Date
Grégoire Henry
a08d6b8cd9 Shell: update the checkpoint when updating the head
The new checkpoint is the current `last_allowed_fork_level` of the new
head.

When updating the checkpoint the shell tags as invalid all blocks with
a level strictly higher to the new checkpoint that are inconstant with
it. And it removes from the disk all the block with a level lower or
equal to the new checkpoint that do not belongs to the current
chain. Though, the shell removes nothing from the disk when the
current head is below the current checkpoint: this will allow to
configure an expected checkpoint when bootstraping a node.

The first patch is very conservative and only detects new incompatible
blocks when they are stored on disk (i.e. after the validation).
Fiture patches try to detect earlier such incompatible block.
2018-06-19 12:15:27 +00:00
Grégoire Henry
d552c611c5 Shell: allow to store the current checkpoint of a chain
Currently initialized with the chain genesis.
2018-06-19 12:15:27 +00:00
Grégoire Henry
d02892b810 Shell: store the last allowed fork level 2018-06-19 12:15:27 +00:00
Grégoire Henry
ccad901f33 Shell: fix test network creation 2018-06-19 12:15:27 +00:00
Vincent Bernardoff
a6bc6333da Shell: use lmdb for disk storage 2018-06-13 00:55:37 +02:00
Grégoire Henry
a5cec8fca0 Proto: move back max_operation_data_length as a constants 2018-06-12 21:27:55 +02:00
Grégoire Henry
04c920df29 Shell/RPC: use query parameters in /protocols 2018-06-06 10:54:33 +02:00
Grégoire Henry
d6f79edae2 Shell/RPC: rework /blocks
- start using `GET` and query parameters instead of `POST`  when
  meaningful

- inline parsed protocol data and metadata in block headers

- inline parsed protocol data and metadata in operations

- split the RPC in four categories:

  - static data, available explicitly in block headers and operations

  - static "metadata", information that were computed while validating
    a block or an operation, but which are not explicit in the block
    header (e.g. the baker of a block, the list of internal
    transfer... (currently not implemented, but that's WIP))

  - "context" all the static data we may read in the context
    (contracts balance, list of delegates, ...)

  - "helpers" are some RPC that may perform some computation.
2018-06-06 10:54:33 +02:00
Grégoire Henry
d7e5ca81e4 Shell: store metadata for block header and operations 2018-06-01 16:20:10 +02:00
James Deikun
afa335ff48 move module-specific logging to the modules that use it 2018-05-31 17:05:00 -04:00
Grégoire Henry
c3eda23b45 Shell: add a global watcher for new valid blocks in State 2018-04-22 13:46:31 +02:00
Grégoire Henry
bc9179094f Shell: store mainchain and testchain in State 2018-04-22 13:41:26 +02:00
Pietro
80cdf6d0b3 Shell: A bit of randomization for gap in block locators.
The random seed is computed from the sender and receiver `peer_id`.
2018-04-07 18:29:02 +02:00
Grégoire Henry
38c7453edf Shell/RPC: allow /blocks/<hash>~n/...
This allows to query the `n`-th predecessor of block `<hash>`.
2018-03-30 00:45:22 +02:00
bruno
1171340a9f Shell: move shell errors into shell services
Allows the client to display shell errors properly.
Also adds some missing registrations, documentation and comments.
2018-02-26 15:52:36 +01:00
Grégoire Henry
697b291782 Merge `tezos-protocol-environment-{sigs,client} 2018-02-18 17:11:16 +00:00
Grégoire Henry
0e79a65158 Shell: rename Block_header.proto/data into protocol_data 2018-02-18 17:11:13 +00:00
Grégoire Henry
6fa1283240 Shell: Rename net_id into chain_id 2018-02-16 02:57:25 +01:00
Grégoire Henry
77bd0af3d1 Shell/test: add option to not enforce context hash in block header 2018-02-12 16:59:59 +01:00
Marco Stronati
d05dceb0b0 State: export predecessor_n 2018-02-08 15:18:10 +00:00
Marco Stronati
0890034575 State: removed old linear predecessor 2018-02-08 15:18:09 +00:00
Marco Stronati
f62ce16e5c Locator: rewrote compute to use efficient predecessor from state 2018-02-08 15:18:09 +00:00
Marco Stronati
95a4ede273 State: added function to get predecessor at any distance 2018-02-08 15:18:08 +00:00
Marco Stronati
738310df62 State: added a function to populate the predecessors storage 2018-02-08 15:18:08 +00:00
Grégoire Henry
575e367026 Update copyright notice (2018) 2018-02-05 23:34:05 +01:00
Grégoire Henry
971c3c4b21 Refactor: move Registred_protocol from State to Tezos_updater 2018-02-05 23:34:05 +01:00
Grégoire Henry
2498da2815 Protocol_environment: more sharing between node and client 2018-02-05 23:34:05 +01:00
Grégoire Henry
ae3ff0503b Proto: the number of validation is now a protocol constant 2018-02-02 10:27:58 +01:00
Grégoire Henry
de80f0150b Compiler: allow bytecode compilation 2018-01-31 14:45:32 +00:00
Grégoire Henry
96fe5239c9 Refactor: Rename lib_node_shell -> lib_shell 2018-01-30 10:13:40 +01:00