Commit Graph

769 Commits

Author SHA1 Message Date
Benjamin Canou
f86438c56a Client: better verbosity levels in help pages 2018-01-31 14:51:54 +00:00
Benjamin Canou
2178a6adee Client: cleanup / homogeneize command docs 2018-01-31 14:51:54 +00:00
Benjamin Canou
02bc0533fa Client: add placeholders for arguments in help screens 2018-01-31 14:51:53 +00:00
Benjamin Canou
3955b6a61d Client: add colors to client help screens 2018-01-31 14:51:52 +00:00
Grégoire Henry
de80f0150b Compiler: allow bytecode compilation 2018-01-31 14:45:32 +00:00
Milo Davis
d1b4230962 Michelson: export and printing for Duplicate_field error 2018-01-31 14:06:35 +01:00
Milo Davis
695b23bd92 Michelson: export and printing for Type_too_large error 2018-01-31 11:25:50 +00:00
Grégoire Henry
8dcc5cefb5 jbuild: fix installation of tezos-protocol-alpha 2018-01-30 14:55:04 +01:00
Grégoire Henry
4b142184fa opam: fix tezos-client-base dependencies 2018-01-30 12:23:38 +01:00
Grégoire Henry
657e214e83 Refactor: rename tezos-client-environment into tezos-protocol-environment-client 2018-01-30 11:54:57 +01:00
Grégoire Henry
ca29c92442 Refactor: move tezos-micheline below tezos-base 2018-01-30 11:47:57 +01:00
Grégoire Henry
f2de3ffa3e Proto_sigs: split the deprecated module Hash 2018-01-30 11:25:52 +01:00
Grégoire Henry
04465e3ac6 Proto_sigs: split the deprecated module Tezos_data 2018-01-30 11:25:46 +01:00
Grégoire Henry
70a4fbac3a Refactor: rename package tezos-embedded-client-* -> tezos-client-* 2018-01-30 10:13:40 +01:00
Grégoire Henry
fda8b4ee5f Refactor: rename prota_alpha/lib_proto 2018-01-30 10:13:40 +01:00
Grégoire Henry
c75756bd6d Refactor: introduce lib_client_environment
This allow to use the functorised version of the protocol in the
client.
2018-01-30 10:13:40 +01:00
Grégoire Henry
acc0c5c512 Compiler: allow not to generate Registerer 2018-01-30 10:13:40 +01:00
Grégoire Henry
0c2acd2d48 RPC: simplify Worker.EVENT 2018-01-30 10:13:40 +01:00
Grégoire Henry
e664179927 Refactor: CI: check opam packages 2018-01-30 10:13:40 +01:00
Grégoire Henry
1d5b4c1e3b Refactor: merge lib_p2p_services into lib_shell_services
Also split the module `Shell_services` in smaller modules.
2018-01-30 10:13:40 +01:00
Grégoire Henry
7277c9889b Refactor: Move/split P2p_types into lib_base 2018-01-30 10:13:40 +01:00
Grégoire Henry
be9f068478 Refactor: More PRC types into Tezos_base 2018-01-30 10:13:40 +01:00
Grégoire Henry
c4420ac40e Refactor: Move Blake2B.Make instanciation into Tezos_base 2018-01-30 10:13:40 +01:00
Grégoire Henry
b0466aceed Refactor: Fix lib_protocol_updater dependencies 2018-01-30 10:13:40 +01:00
Grégoire Henry
96e493006c Refactor: Rename lib_node_updater -> lib_protocol_updater 2018-01-30 10:13:40 +01:00
Grégoire Henry
96fe5239c9 Refactor: Rename lib_node_shell -> lib_shell 2018-01-30 10:13:40 +01:00
Grégoire Henry
58388bd304 Refactor: Merge lib_node_shell_base/lib_node_services} -> lib_shell_services 2018-01-30 10:13:40 +01:00
Grégoire Henry
552237673e Refactor: Move Mempool and Block_locator into lib_base 2018-01-30 10:13:26 +01:00
Grégoire Henry
4acdfc67fb Refactor: Remame lib_node_p2p/p2p_base into lib_p2p/p2p_services 2018-01-30 10:13:26 +01:00
Grégoire Henry
e0a2570988 Refactor: Rename Node_rpc_services.Network into P2p_services 2018-01-30 10:12:55 +01:00
Grégoire Henry
1f3c68cbd8 Refactor: Regroup protocols 2018-01-30 10:12:55 +01:00
Grégoire Henry
a3d0ee644a Refactor: Rename lib_rpc_base -> lib_rpc 2018-01-30 10:12:55 +01:00
Grégoire Henry
66fb1811ae Opam: add missing dep in tezos-node-shell-base 2018-01-28 20:02:51 +01:00
Milo Davis
f00c7c0667 Data encoding: fail on string_enum that should be a constant 2018-01-27 15:30:09 +01:00
Milo Davis
c77cbcb30b Data_encoding: use constant from ocplib-json-typed 2018-01-27 15:30:09 +01:00
Grégoire Henry
ea500256f0 P2p: tentative fix for #98 2018-01-27 15:30:09 +01:00
Grégoire Henry
e7483ff392 Opam: new release of ocp-ocamlres 2018-01-27 14:55:57 +01:00
Grégoire Henry
0c51f7a7ca Proto: Fix warning 2018-01-27 13:37:03 +01:00
Grégoire Henry
a30f20c4e3 Base: remove Lwt_utils.canceler
It has been replaced by `Lwt_canceler`
2018-01-27 13:35:47 +01:00
Benjamin Canou
9060122b26 Node: only validate branches that can increase the current head's fitness
And also make the check when processing new head increments. That way
we prevent spamming with valid head successors that bear the same
fitness.
2018-01-27 13:34:02 +01:00
Benjamin Canou
41ad73a3ed Utils: remove Lwt_utils.queue 2018-01-27 13:34:02 +01:00
Benjamin Canou
6f34b85504 RPC: net validator worker introspection 2018-01-27 13:34:02 +01:00
Benjamin Canou
0779221d04 Node: switch the net validator to Tezos_worker 2018-01-27 13:34:02 +01:00
Benjamin Canou
e5405c2f72 RPC: peer validator worker introspection 2018-01-27 13:34:02 +01:00
Benjamin Canou
ecbf1805e1 Node: switch the peer validator to Tezos_worker 2018-01-27 13:34:02 +01:00
Benjamin Canou
50b1957714 RPC: block validator worker introspection 2018-01-27 13:34:02 +01:00
Grégoire Henry
6d3f5af163 Node: switch the block validator to Tezos_worker 2018-01-27 13:34:02 +01:00
Benjamin Canou
4e04e233a0 RPC: prevalidator worker introspection 2018-01-27 13:34:02 +01:00
Benjamin Canou
98ec3393b6 Node: switch the prevalidator to Tezos_worker 2018-01-27 13:34:02 +01:00
Benjamin Canou
d50402c27b Introduce Tezos_shell.Worker 2018-01-27 13:34:02 +01:00
Benjamin Canou
4d197b4ba3 Node: document an internal prevalidator error 2018-01-27 12:43:37 +01:00
Benjamin Canou
cd94b998c0 Node: throttle advertisement of newly discovered operations a little bit 2018-01-27 12:43:37 +01:00
Benjamin Canou
755d63c0ef Node: limit the refused operations cache in the prevalidator 2018-01-27 12:43:37 +01:00
Benjamin Canou
0652808259 Shell: refactoring of the prevalidator 2018-01-27 12:43:37 +01:00
Benjamin Canou
566a92197b Get rid of forced operation injection 2018-01-27 12:43:37 +01:00
Benjamin Canou
dee86fb462 Utils: add Lwt_pipe.pop_with_timeout 2018-01-27 12:43:37 +01:00
Benjamin Canou
9b09e70f5e Utils: add Ring.clear 2018-01-27 11:33:30 +01:00
Benjamin Canou
bb90cc9dec Utils: add Lwt_pipe.peek_all 2018-01-27 11:33:30 +01:00
Benjamin Canou
2441ad6026 Utils: add Ring.add_and_return_erased 2018-01-27 11:33:30 +01:00
Benjamin Canou
f145c4b196 Utils: add Lwt_pipe.pop_all_now 2018-01-27 11:33:30 +01:00
Benjamin Canou
cfd5151279 Alpha: fix colliding JSON schema definitions 2018-01-27 11:33:30 +01:00
Grégoire Henry
6e629584ff Jbuilder: fix rule runtest_indent 2018-01-27 11:32:57 +01:00
Milo Davis
545cd0c869 Client: commands to update config file 2018-01-25 23:22:59 +01:00
Milo Davis
937869da43 Client: split admin/debug commands into separate executable 2018-01-25 15:57:20 +00:00
Milo Davis
c98426fb02 Debug: unmark invalid block 2018-01-25 15:57:20 +00:00
Pietro
df746e606d Indent: reindent with ocp-indent and fix the script 2018-01-25 15:01:12 +00:00
Grégoire Henry
bd8eaddc8c Resto: properly handle text/ocaml.exception. 2018-01-25 12:33:13 +01:00
Milo Davis
00f7a0ea87 RPC: improves error handling for exceptions on generic RPCs 2018-01-25 12:33:13 +01:00
Pietro
4109adfd77 Node: properly report RPC port already in use, fixes #69 2018-01-24 18:28:19 +01:00
Bruno B
ce35bc5346 Michelson: light refactoring of equality witnesses 2018-01-23 13:35:48 +00:00
Benjamin Canou
adf860ea40 Docs: new documentation structure using Sphinx/RST
- Provides a toplevel documentation structure using Sphinx
 - Adds a `doc-html` target to the main Makefile
 - Converts existing documentation to RST format
 - Add some new documentation / tutorials
 - Links the developer manual and OCaml documentation
 - Synchronized documentation on Gitlab pages

This patch is co-authored by:
 - Benjamin Canou <benjamin@canou.fr>
 - Bruno Bernardo <bernardobruno@gmail.com>
 - Pietro Abate <pietro.abate@inria.fr>
2018-01-23 08:02:17 +01:00
Benjamin Canou
64c65558d8 Node: add missing error pretty printers 2018-01-22 22:25:30 +01:00
Pietro
2f85dc526d Node: fails gracefully if data dir cannot be created, fixes #83 2018-01-22 22:25:30 +01:00
Grégoire Henry
0abdb2a893 Minor renaming. 2018-01-22 09:20:53 +01:00
Grégoire Henry
bfb2d223c0 opam: fix sandboxed scripts 2018-01-22 09:20:46 +01:00
Milo Davis
fbeff067c3 lib_RPC: bonary -> binary 2018-01-21 16:27:16 +00:00
Milo Davis
6e56b7b5e7 Client: Typo in michelson error reporting 2018-01-19 13:59:09 +01:00
Milo Davis
4433395c6e Proto/Env: export the Option module 2018-01-19 13:59:04 +01:00
Milo Davis
b8063b40fe Storage: add omitted case to storage_error_encoding 2018-01-19 13:59:01 +01:00
Grégoire Henry
525b09259f Fix d9405292a4 2018-01-18 16:08:20 +01:00
Vincent Bernardoff
e6f773f697 Base58: encode secret keys as seed 2018-01-18 10:45:47 +01:00
Pietro
d9405292a4 Move all packages to src/
Modify Makefile accordingly
2018-01-16 23:11:39 +01:00
Grégoire Henry
82857dcb94 Jbuilder: split lib_node_net
- `lib_node_p2p_base`: Base datatypes for the P2P layers
- `lib_node_services`: RPC service definitions (depends on `node_p2p_base`)
- `lib_node_http`: RPC http server
- `lib_node_p2p`: the P2P workers
2017-12-04 19:15:26 +01:00
Grégoire Henry
ab5b597eb1 Jbuilder: Move client & node libraries in their own OPAM packages 2017-12-04 19:15:26 +01:00
Grégoire Henry
9cb498eee6 Jbuilder: Move alpha/genesis/demo in their own two OPAM packages
One package for the embedded version. One for the functorized one.
2017-12-04 16:05:54 +01:00
Grégoire Henry
78d838059f Jbuilder: move protocol-compiler in its own OPAM package 2017-12-04 16:05:54 +01:00
Grégoire Henry
e24b1dda75 Jbuilder: move protocol_environment_sigs in its own OPAM package 2017-12-04 16:05:54 +01:00
Grégoire Henry
92d166175f Jbuilder: move Micheline in its own OPAM package 2017-12-04 16:05:54 +01:00
Grégoire Henry
b6449cae87 Jbuilder: split src/utils/ in multiple OPAM packages
* `lib_stdlib`: basic extended OCaml stdlib and generic data structures

* `lib_data_encoding`: almost independant 'Data_encoding'
* `lib_error_monad`: almost independant 'Error_monad'

* `lib_stdlib_lwt`: extended Lwt library
* `lib_crypto`: all the crypto stuff (hashing, signing, cryptobox).

* `lib_base`:
  - basic type definitions (Block_header, Operation, ...)
  - a module `TzPervasives` to bind them all and to be the
    single module opened everywhere.

In the process, I splitted `Tezos_data` and `Hash` in multiple
submodules, thus removing a lot of `-open`.

The following two modules may not have found their place yet:
- Base58 (currently in `lib_crypto`)
- Cli_entries (currently in `lib_stdlib_lwt`)
2017-12-04 16:05:54 +01:00
Grégoire Henry
5b50279851 Import new version of vendors/ocplib-resto
The new version of ocplib-resto :

- uses jbuilder ;
- is functorized over `Json_encoding` rather than `Json_repr` ;
- handles query parameters ;
- handles HTTP methods (GET, POST, DELETE, PUT, PATCH) ;
- replaces `custom_service` by a more generic trailer argument ;
- replaces generic answer `(code, body)` by a more ad-hoc sum type
  (allowing distinct encoding for success and error) ;
- includes a minimal HTTP-server based on Cohttp
  (includings CORS and media type negotiation).
- adds a function `Directory.transparent_lookup` to lookup/call
  a service handler without serializing the various parameters
  (path, query, request body).

As a first consequences in Tezos, this patch allows binary
communication between the client and the node.

This patch tries to be minimal inside the tezos source code and
therefore it introduces a minimal compatibility layer in
`RPC.ml`. This code should be removed as soon as possible.
2017-12-04 15:51:59 +01:00
Pierre Chambart
6c679d2e2c Michelson: compute depth for type size check
This allows to ensure that the depth to look at is updated when
michelson is.
2017-12-02 23:02:50 +00:00
Pierre Chambart
fedeb6c8fd Michelson: enforce a maximum stack item type size 2017-12-02 23:02:50 +00:00
Milo Davis
b4495568cb Fixes OSX select exception
This patch is primarily authored by @chambart
2017-11-30 14:50:36 +01:00
Benjamin Canou
97d983285e Node: allow identity.json to stay when clearing the data-dir 2017-11-28 17:28:56 +01:00
Benjamin Canou
e91f5bc588 Node: Cleanup a few error messages. 2017-11-28 15:43:58 +01:00
Benjamin Canou
606c6e55e4 Node: update shutdown order to prevent some leveldb read errors. 2017-11-28 15:43:47 +01:00
Pietro Abate
6e68fb425a Fix #66 and #59 2017-11-27 17:26:36 +01:00
Grégoire Henry
8f30934220 Validator: always log invalid block 2017-11-27 10:40:43 +00:00
Grégoire Henry
471006b2dd Validator: properly handle termination of Block_validator. 2017-11-27 10:40:43 +00:00
Grégoire Henry
10d1b08c85 Validator: do not try to validate twice an invalid block 2017-11-27 10:40:42 +00:00