Victor Allombert
60a6b76229
RPC: add a hash+N and a hash-N notations
2018-10-24 21:41:08 +00:00
Victor Allombert
2352a78301
RPC: add a way to access a given block using its level
2018-10-24 21:41:08 +00:00
Vincent Botbol
bb6983590f
Shell: fix notification of new operations in the mempool
2018-10-24 18:02:38 +02:00
Mathias Bourgoin
1272b11ea2
Shell: first batch of statistics in the DistributedDB
...
Co-authored-by: Pietro Abate <pietro.abate@tezcore.com>
Co-authored-by: Mathias Bourgoin <mathias.bourgoin@tezcore.com>
2018-10-24 11:48:12 +02:00
Victor Allombert
ee640c8653
Shell: Extract the block-application function into a separate module
2018-10-24 10:51:33 +02:00
Raphaël Proust
7cbfcfa608
Shell: simplify the signature of Prevalidation
...
Co-authored-by: Raphaël Proust <code@bnwr.net>
Co-authored-by: Pietro Abate <pietro.abate@tezcore.com>
Co-authored-by: Grégoire Henry <gregoire@tezcore.com>
2018-10-22 14:46:37 +02:00
Raphaël Proust
bd116f3db7
Prevalidator: move Prevalidation RPCs in Prevalidator
2018-10-17 17:06:08 +08:00
Grégoire Henry
45a07d534f
Shell: fix error messages
2018-10-17 17:02:05 +08:00
Raphaël Proust
c4e65879fc
Prevalidator/Prevalidation: move existential
...
Note that now, the chain_validator is responsible for swapping the
prevalidator when a new protocol arrives.
Co-authored-by: Raphaël Proust <code@bnwr.net>
Co-authored-by: Pietro Abate <pietro.abate@tezcore.com>
Co-authored-by: Grégoire Henry <gregoire.henry@tezos.com>
2018-10-17 17:01:44 +08:00
Raphaël Proust
129caccf4e
Shell/worker: export functor result signature
2018-10-17 10:32:37 +02:00
Pietro Abate
c87b6c533d
Prevalidator: Add doc string to prevalidator/ion.
2018-08-30 16:24:17 +02:00
Thomas Blanc
952dacac82
Adding Block.Header module to State, letting Chain_traversal.live_blocks use that module
2018-08-29 18:26:40 +00:00
Thomas Blanc
c723869f65
Getting the block_header out of contents in Store (no change in State interface)
2018-08-29 18:26:40 +00:00
Vincent Botbol
9f5a521188
Shell: preapply should hash instead of commit
2018-08-29 11:03:56 +02:00
Pierre Boutillier
b5fc7f582e
Update license in opam files
2018-08-22 14:50:13 +02:00
Vincent Botbol
94451e1e62
Fix style
2018-08-20 11:04:55 +02:00
Vincent Botbol
e5b2927310
Shell/Prevalidation: add the streaming of the newly validated operations
2018-08-20 11:04:54 +02:00
Grégoire Henry
87e0de9826
Dune: use the new syntax
2018-08-01 10:52:24 +02:00
Grégoire Henry
5362b321d9
Dune: rename s/jbuild/dune/
2018-08-01 10:32:12 +02:00
Pietro
b89682e441
Build: Jbuilder -> Dune 1.0.1
2018-07-24 19:15:04 +02:00
Grégoire Henry
f9dd92d6b4
Shell/RPC: fix filtering of next_protocols
in GET /monitor/heads
2018-07-18 22:34:13 +02:00
Grégoire Henry
122a2421a6
Client/Test: fix sandbox detection
2018-07-17 13:51:53 +02:00
Vincent Bernardoff
41f6757ef8
Everywhere: exception Not_found -> _opt
2018-07-13 01:31:04 +02:00
Grégoire Henry
359f858c3e
CI: fix opam dependencies
2018-07-11 23:27:04 +02:00
Vincent Botbol
6909f0b3bc
Shell: benchmark for the context storage
...
Co-authored-by: Quyen <kim.quyen.ly@tezos.com>
Co-authored-by: Grégoire Henry <gregoire.henry@tezos.com>
Signed-off-by: Grégoire Henry <gregoire.henry@tezos.com>
2018-07-11 21:02:14 +02:00
Benjamin Canou
74732d7711
Sync with betanet
2018-07-02 10:53:20 +02:00
Pierre Boutillier
140bd6b1ca
Tezos is now Open Source
2018-06-30 17:41:32 +02:00
Vincent Botbol
c479c65cdf
Shell: add rpc to retrieve live blocks
2018-06-30 04:43:16 +02:00
Benjamin Canou
79b4767370
RPCs: better errors when querying out of bound operations
2018-06-30 01:40:33 +02:00
Vincent Botbol
d8805ede7b
Shell: comment typo
2018-06-29 17:50:17 +02:00
dbornside
e7dba18980
semantic logging for client baking
...
AMENDED: Syn has always been DSL, Semantic has always been
Make_semantic.
2018-06-29 14:52:46 +02:00
Benjamin Canou
f6606c5f2b
Shell: add some temporary message limits
2018-06-28 19:39:35 +00:00
Pierre Boutillier
f99789b255
Shell: Fix block_*_cache initialization
2018-06-28 19:39:35 +00:00
Benjamin Canou
44ca820944
Genesis/Alpha: include chain id in signature for blocks and endorsements
2018-06-27 21:38:52 +02:00
Raphaël Proust
1c2a771832
Everywhere: return_{none,some,nil,true,false}
2018-06-27 10:57:21 +02:00
Raphaël Proust
103d5355f2
Everywhere: return_unit
2018-06-27 10:57:21 +02:00
Pierre Chambart
7fcd986b93
Shell: Avoid recomputing rpc_directory for each flush
2018-06-27 10:54:41 +02:00
Pierre Chambart
892c91e3ac
Fix some more logging name leak
...
The section list is only useful for functor instantiated before command
line argument parsing.
2018-06-27 02:06:09 +02:00
Pierre Chambart
dcc0f7011d
Shell: Fix Logging names leak
2018-06-27 01:35:55 +02:00
Pierre Chambart
3dd4d61b71
Shell: indentation
2018-06-26 20:37:11 +02:00
Pierre Chambart
3da1e56133
Shell: Avoid leak in distributed_db_functor worker loop
2018-06-26 20:35:03 +02:00
Chris Martin
2f4c002acf
Fix "bootstrapping" typos
2018-06-25 15:15:19 +02:00
Benjamin Canou
bba88743df
Shell: fix checkpoint checks in bootstrap pipeline
2018-06-24 01:25:09 +02:00
Pierre Chambart
47039ba9d1
Shell: fix merge problem in test
2018-06-19 12:15:27 +00:00
Pierre Chambart
8370b8fd69
Shell: Simplify early failure in case of locator incompatible with the checkpoint
2018-06-19 12:15:27 +00:00
Pierre Chambart
a7ef80fa34
Shell: Time error printing with more details
2018-06-19 12:15:27 +00:00
Pierre Chambart
2aeba212a7
Shell: Quick and dirty allowance of time shift
...
The right solution being to wait for the messages to be valid.
2018-06-19 12:15:27 +00:00
Grégoire Henry
fc0af4a55f
Shell: add option --checkpoint
to tezos-node run
2018-06-19 12:15:27 +00:00
Grégoire Henry
c16129a02d
Shell: early detection of branches that forks before the checkpoint.
2018-06-19 12:15:27 +00:00
Grégoire Henry
6170ae2246
Shell: early detection of incompatible new heads and branches.
2018-06-19 12:15:27 +00:00
Grégoire Henry
96dd65e36d
Shell: early detection of incompatible injected blocks
2018-06-19 12:15:27 +00:00
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
b1d70d576c
Shell: stricter fitness check on block injection
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
Grégoire Henry
a0a2d6b004
Shell: filter out future block
2018-06-19 12:15:27 +00:00
Grégoire Henry
67566c271c
Shell: forced upgrades
2018-06-18 15:58:00 +02:00
Grégoire Henry
f615459200
Shell/RPC: /chains/<id>/mempool
new returned parsed operations
2018-06-14 22:57:04 +00:00
Grégoire Henry
c2517a0432
Shell: minor renaming
2018-06-14 22:57:04 +00:00
Vincent Bernardoff
a6bc6333da
Shell: use lmdb
for disk storage
2018-06-13 00:55:37 +02:00
Grégoire Henry
6f4a98f6fd
P2P: allow to limit the size of mempool
2018-06-12 21:27:55 +02:00
Grégoire Henry
fed04d4b8f
P2P: allow to limit the size of protocols
2018-06-12 21:27:55 +02:00
Grégoire Henry
99f6e40471
P2P: allow to limit the size of operations and operations list
2018-06-12 21:27:55 +02:00
Grégoire Henry
8072d413fc
P2P: allow to limit the size of block header
2018-06-12 21:27:55 +02:00
Grégoire Henry
85a25e200d
P2P: allow ti limit the length of list in requests
2018-06-12 21:27:55 +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
22bf535d68
Shell: faster propagation of protocols
2018-06-11 09:24:41 +00:00
Grégoire Henry
5fd5c1c5f7
Dune: upgrade to 1.0+beta20
2018-06-08 15:27:23 +00:00
Grégoire Henry
ca1d4158a7
Shell/RPC: add raw block header in monitoring RPCs
2018-06-06 15:24:05 +02:00
Grégoire Henry
5aa65ee71f
Shell/RPC: allow to fetch raw Block_header
2018-06-06 15:24:05 +02:00
Benjamin Canou
23e1486564
RPC: add missing error registration
2018-06-06 10:54:33 +02:00
Grégoire Henry
030630ec0f
Data_encoding: mandatory title
to case
2018-06-06 10:54:33 +02:00
Grégoire Henry
632144b689
RPC: remove subfield accessors
...
This is painful to maintain and `jq` works well.
2018-06-06 10:54:33 +02:00
Grégoire Henry
420986b45b
Alpha: simplify the operation datatype
2018-06-06 10:54:33 +02:00
Grégoire Henry
33c3d1fcbd
Alpha/RPC: add a low-level but typed RPC for context introspection
...
Example:
```
> tezos-client rpc get /chains/main/blocks/head/context/raw/json/\?depth\=1 | jq
{
"commitments": [],
"contracts": {
"global_counter": 0,
"index": []
},
"cycle": [
4,
3,
2,
1,
0
],
"delegates": [
"tz1gjaF81ZRRvdzjobyfVNsAeSC6PScjfQwN",
"tz1faswCTDciRzE4oJ9jn2Vm2dvjeyA9fUzU",
"tz1ddb9NMYHZi5UzPdzTZMYQQZoMub195zgv",
"tz1b7tUupMgCNw2cCLpKTkSD1NZzB5TkP2sv",
"tz1KqTpEZ7Yob7QbPE4Hy4Wo8fHG8LhKxZSx"
],
"last_block_priority": 0,
"rolls": {
"index": [],
"next": 2000,
"owner": {}
},
"votes": {
"ballots": [],
"current_period_kind": "proposal",
"current_quorum": 8000,
"listings": [],
"proposals": []
}
}
> tezos-client rpc get /chains/main/blocks/head/context/raw/json/cycle/4\?depth\=2 | jq
{
"last_roll": [
[
0,
2000
]
],
"nonces": [],
"random_seed": "97d50852c159ada8e9f107e98f693b059ba28336c723e6cd0f6353eb3c0cb415",
"roll_snapshot": 0
}
> tezos-client rpc get /chains/main/blocks/head/context/raw/json/cycle/5\?depth\=2 | jq
{
"last_roll": [
[
1,
2000
],
[
0,
2000
]
],
"nonces": [],
"roll_snapshot": 2
}
```
2018-06-06 10:54:33 +02:00
Grégoire Henry
f5e3fb17c0
Resto: lift the lwt monad into Resto.
2018-06-06 10:54:33 +02:00
Grégoire Henry
89cbe0f8fa
Docs/RPC: fix doc generation
...
The current doc generator does not handles path were multiple method
are registred. The fix remove the intermediate (compilation) tree.
2018-06-06 10:54:33 +02:00
Grégoire Henry
0a78bbe33b
Shell/RPC: use GET request for /workers
2018-06-06 10:54:33 +02:00
Grégoire Henry
64c464a73f
Shell/RPC: some module renaming/aliasing
2018-06-06 10:54:33 +02:00
Grégoire Henry
2a93a336aa
Shell/RPC: use query parameters in /injection
2018-06-06 10:54:33 +02:00
Grégoire Henry
9bc7b1e573
Shell/RPC: also list embedded protocols
2018-06-06 10:54:33 +02:00
Grégoire Henry
04c920df29
Shell/RPC: use query parameters in /protocols
2018-06-06 10:54:33 +02:00
Grégoire Henry
bbf5c7408b
Shell/RPC: split out Monitor_services
2018-06-06 10:54:33 +02:00
Grégoire Henry
0b08dce3e8
Shell/RPC: move preapply_operation
into Block_services
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
95a56753df
P2p: store connection_local_metadata
in P2p_connection.Info.t
2018-06-05 13:51:25 +02:00
Grégoire Henry
e610fcaade
P2p: read connection metadata before to accept connections
...
This will allow to decide whether to accept a connection or not
depending on its actual metadata.
2018-06-05 13:51:20 +02:00
OCamlPro-Iguernlala
4a16b3ef0b
P2p: add "private node" information in Connection_metadata.
...
Add private_node flag in Connection_metadata.t and update Node,
Distributed_db, P2p and P2p_pool to propagate the information
2018-06-05 13:40:00 +02:00
michael
aedf867e4a
RPC: Add conn_metadata to peer_info rpcs
2018-06-04 15:55:41 +02:00
michael
df4e474577
Shell: disable prevalidator if disable-mempool is used
2018-06-04 15:39:42 +02:00
michael
d5925f088c
P2p: Add option to disable the mempool
...
This allows a node to specify that it doesn't want to receive operations
that are not included in a block. To do so, one should use the new
--disable-mempool option.
A disabled mempool node announce its configuration during the ACK exchange.
This configuration should be easily expandable with other options.
Node will keep track of the ack exchange configuration for each nodes it
is connected to and will not propagate its mempool to disabled mempool
nodes.
A disabled mempool node will ignore non-empty mempool received.
In the future, this incident should be punish by a decrement of its score
and / or ban.
2018-06-04 15:35:22 +02:00
michael
a8e607a5a9
Shell: preliminary work for ack_cfg exchange
2018-06-01 16:25:43 +00:00
Grégoire Henry
d7e5ca81e4
Shell: store metadata for block header and operations
2018-06-01 16:20:10 +02:00
Grégoire Henry
fc26022cd2
Proto: associate metadata
to valid block headers and operations
2018-06-01 16:20:10 +02:00
Grégoire Henry
c85e27605b
Proto: export Data_encoding.t
for block headers and operationss
...
Previously we were only exporting parsing function. This will allow
to move out of the protocol some `helpers` RPCs.
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
0d8990887c
Jbuilder: fix the target @runtest_indent
2018-05-26 20:08:03 +02:00
michael
3f1363b9ba
P2P/Shell: Split metadata into peer_metadata and conn_metadata
...
Peer_metadata is meant to keep track of peer's score.
Conn_metadata is meant to keep track of connection configuration given
during Ack exchange.
2018-05-25 11:39:22 +02:00
Grégoire Henry
5023e1a261
Data_encoding: rename Binary.to_bytes
into to_bytes_exn
2018-05-24 15:43:15 +00:00