Commit Graph

2139 Commits

Author SHA1 Message Date
Benjamin Canou
303c43b742 Michelson: add AND of int and nat 2018-05-28 17:09:03 +02:00
Benjamin Canou
60136c13b2 Michelson: add ISNAT instruction 2018-05-28 17:09:03 +02:00
Benjamin Canou
3cc88d0d81 Docs: update Michelson spec to the new address type 2018-05-28 17:09:03 +02:00
Benjamin Canou
86c18bcd9d Michelson: SOURCE now returns an address 2018-05-28 17:09:03 +02:00
Benjamin Canou
5579d3cc97 Michelson: add untyped address type, and instructions ADDRESS and CONTRACT 2018-05-28 17:09:03 +02:00
Benjamin Canou
46efb6f3b3 Docs: update Michelson spec to the new semantics 2018-05-28 17:09:03 +02:00
Benjamin Canou
595685cf42 Michelson: replace direct transfers with an internal operation queue 2018-05-28 17:09:03 +02:00
Benjamin Canou
59cccd53aa Michelson: cleaner naming in interpreter 2018-05-28 17:09:03 +02:00
Benjamin Canou
24deb10c8f Michelson: cleanup big map initialization and account for its fees 2018-05-28 17:09:03 +02:00
Benjamin Canou
42899ccb09 Alpha: add result record type for apply operation and include storage fees 2018-05-28 17:09:03 +02:00
Benjamin Canou
25a1930c32 Alpha: storage fees accounting 2018-05-28 17:09:03 +02:00
Benjamin Canou
676a64b81f Michelson: rename DEFAULT_ACCOUNT to IMPLICIT_ACCOUNT 2018-05-28 17:09:03 +02:00
Benjamin Canou
bceb91289a Alpha: better errors for corrupted context accesses 2018-05-28 17:09:03 +02:00
Benjamin Canou
6f3be375e8 Alpha: IO gas accounting 2018-05-28 17:09:03 +02:00
Benjamin Canou
4a0b30d968 Alpha: add variants of storage functors with size accounting 2018-05-28 17:09:03 +02:00
Benjamin Canou
ba09cdf883 Alpha: fix Storage_functors.Indexed_data_storage.fold 2018-05-28 17:09:03 +02:00
Benjamin Canou
27486e500a Micheline: use zarith instead of strings for integers 2018-05-28 17:09:03 +02:00
Benjamin Canou
c3cf4dfbfb Alpha, Michelson: add gas limits for block and operations 2018-05-28 17:09:03 +02:00
Benjamin Canou
eef5885265 Alpha, Michelson: no need to thread the gas in parsing linear structures 2018-05-28 17:09:03 +02:00
Benjamin Canou
4fd2b03832 Alpha, Michelson: thread the gas directly in the context 2018-05-28 17:09:03 +02:00
Benjamin Canou
04415ff6a8 Alpha, Michelson: separate gas operations from costs 2018-05-28 17:09:03 +02:00
Milo Davis
8a49bf5509 Alpha, Michelson: gas in typechecking 2018-05-28 17:09:03 +02:00
Grégoire Henry
0d8990887c Jbuilder: fix the target @runtest_indent 2018-05-26 20:08:03 +02:00
bruno
f000eb70f2 Alpha: forbid transaction of 0ꜩ towards contracts without code 2018-05-26 19:54:06 +02:00
James Deikun
2c57e4cce6 RPC: expose RPC base address in client context 2018-05-26 19:12:15 +02:00
Grégoire Henry
fd72b47263 Opam: fix dependencies 2018-05-26 18:36:32 +02:00
Arthur B
f43710694b Alpha: fix typo in services path 2018-05-26 18:25:48 +02:00
Arthur B
07a631316a Alpha: allow to deactivate rewards for a few initial cycles 2018-05-26 18:25:40 +02:00
Arthur B
126ee13ba7 Alpha: allow to ramp up endorsement and baking security deposits 2018-05-26 17:24:04 +02:00
Grégoire Henry
370114eb8b Client: preload encrypted keys when running a daemon 2018-05-26 15:36:36 +02:00
Grégoire Henry
da921a8f56 Client: allow tz1... as the source of a transfer
This is only useful when a 'remote signer' is available.
2018-05-26 15:36:36 +02:00
Grégoire Henry
fb85568d98 Client: add an option --remote-signer
When the option is provided, all keys with the scheme `remote` are now
implicitly handled by the provided remote signer.
2018-05-26 15:35:11 +02:00
Grégoire Henry
57663a95e9 Client: add an option to encrypt faucet accounts and imported keys 2018-05-26 15:34:16 +02:00
Grégoire Henry
f69d4a5186 Client: simplify Client_keys.SIGNER
We now use `Uri.t` to represent public and secret keys. The 'remote'
scheme is replaced by `https://`, `unix:///` and `tcp://`.
2018-05-26 15:34:16 +02:00
Grégoire Henry
80dd9ebf24 Client: rename sk_locator into sk_uri
To prepare upcoming patch where `sk_locator = Uri.t`.
2018-05-26 15:10:07 +02:00
Grégoire Henry
361b3db3e8 Signer: only accept B58encoded-pkh as parameters 2018-05-26 15:09:36 +02:00
Grégoire Henry
e8fb2bf515 Signer: do not depend on Client_main_run 2018-05-26 15:08:54 +02:00
Grégoire Henry
0dbe24290f Signer: explicit registration of signers
instead of toplevel side-effects and `-link-all`
2018-05-26 15:08:29 +02:00
Grégoire Henry
502017c863 Signer: create packages tezos-signer-services and tezos-signed-backends 2018-05-26 15:08:13 +02:00
Grégoire Henry
4b094b9c02 Signer: split main_signer.ml in multiple files 2018-05-26 15:07:57 +02:00
Grégoire Henry
b564b28603 Client: rename Client_signer_remote_socket into Lwt_utils_unix.Socket 2018-05-26 15:07:14 +02:00
Grégoire Henry
272066ab04 Client: Use MBytes.t for password
This prepares a future usage of `mlock`.
2018-05-26 15:06:39 +02:00
Grégoire Henry
ad9f4c2814 Signer: move main_signer.ml into into its own package 2018-05-26 15:06:10 +02:00
Grégoire Henry
664f36a46a Client: less restrictive type for Client_keys_commands.commands 2018-05-26 15:05:26 +02:00
Grégoire Henry
b32e6e7374 Clic: add Clic.constant 2018-05-26 15:05:14 +02:00
Benjamin Canou
0a6f65263f Signer: add HTTPS variant 2018-05-26 15:05:14 +02:00
Benjamin Canou
fe435ce114 Client: minor error printing tweaks 2018-05-25 17:18:41 +02:00
Benjamin Canou
51cfa388f8 Signer: various fixes and cosmetic changes 2018-05-25 17:18:41 +02:00
Pietro
73b7fc89a5 Client: introduce tezos-signer 2018-05-25 17:18:41 +02:00
Pietro
8b9d02eec4 Client, wallet: Change type of location 2018-05-25 17:18:39 +02:00
Vincent Bernardoff
cfe82ab7cf Baking: preload signers for delegate keys (daemon) 2018-05-25 17:02:56 +02:00
Vincent Bernardoff
f0fc9ac37c Alpha: use watermark for signing blocks and operations 2018-05-25 16:47:48 +02:00
Grégoire Henry
5e17430815 Shell: allow to prefix signed data by a watermark 2018-05-25 16:47:48 +02:00
Grégoire Henry
2a85c34c67 Indentation fixes 2018-05-25 16:47:48 +02:00
Milo Davis
f3b0b0b00a Micheline: add 255 character annotation length limit 2018-05-25 14:41:27 +02:00
Milo Davis
7fc74da1a2 Data_encoding: add bounded strings and bytes 2018-05-25 14:41:27 +02:00
Grégoire Henry
c2241c034a Data_encoding: allow smaller size field for Dynamic_size 2018-05-25 14:41:27 +02:00
Grégoire Henry
89b6799fd6 Data_encoding: add combinator for positive big number 2018-05-25 14:41:27 +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
bruno
c13b7dd39a Alpha: typos 2018-05-25 10:36:08 +02:00
Grégoire Henry
e1622c7b77 Opam: fix test dependencies for data_encoding. 2018-05-25 00:47:52 +02:00
Raphaël Proust
118188530a Data_encoding: crowbar tests
This work is based on ideas more fully developped in
https://gitlab.com/gasche/fuzz-data-encoding.

However, including some tests directly in this repo helps with CI
integration as well as keeping the tests and interfaces up to date.
Eventually, we should integrate the tests from the fuzz-data-encoding
library.
2018-05-24 17:50:18 +02:00
Raphaël Proust
8b5bce50cf Data_encoding: test catching of invalid encodings 2018-05-24 17:50:18 +02:00
Raphaël Proust
00d596e9c2 Data_encoding: catching more invalid encoding 2018-05-24 17:50:18 +02:00
Benjamin Canou
b0be5b630d Data_encoding: Ignore is actually a `Fixed 0 2018-05-24 15:43:15 +00:00
Pietro
d1c2f631d5 Data_encoding: Refresh benchmarks 2018-05-24 15:43:15 +00:00
Grégoire Henry
2b82a588e1 Data_encoding: improve docstrings. 2018-05-24 15:43:15 +00:00
Grégoire Henry
2e9df07b0e Data_encoding: add check_size 2018-05-24 15:43:15 +00:00
Grégoire Henry
5023e1a261 Data_encoding: rename Binary.to_bytes into to_bytes_exn 2018-05-24 15:43:15 +00:00
Grégoire Henry
72fc71be67 Data_encoding: rename Binary into Binary_writer 2018-05-24 15:43:15 +00:00
Grégoire Henry
1da0d0c8d7 Data_encoding: split out Binary_length 2018-05-24 15:43:15 +00:00
Grégoire Henry
aee6718148 Data_encoding: use CPS for the stream reader 2018-05-24 15:43:15 +00:00
Grégoire Henry
b83797371e Data_encoding: rename Size into Binary_size 2018-05-24 15:43:15 +00:00
Grégoire Henry
b164dd6cc5 Data_encoding: drop module Assert
- drop the quick-and-dirty `Assert` introduced when we switched from
  `Kaputt` and use `Alcotest.check` instead.

- split tests in multiple files:
  - success.ml
  - write_failure.ml
  - read_failture.ml
  - invalid_encoding.ml
  - randomized.ml
2018-05-24 15:43:15 +00:00
Grégoire Henry
a0cae2af57 Data_encoding: enforce fixed-size strings in JSON. 2018-05-24 15:43:15 +00:00
Grégoire Henry
1bc7b45fdb Data_encoding: forbids nested options 2018-05-24 15:43:15 +00:00
Grégoire Henry
1f358b7f9a Data_encoding: move cut_bytes into MBytes 2018-05-24 15:43:15 +00:00
Grégoire Henry
cb28ca1cd5 Stdlib: reintroduce MBytes.pp_hex 2018-05-24 15:43:15 +00:00
Fabrice Le Fessant
8986640a98 P2p: make nonces unpredictable when connecting
Avoid replay-attacks by preventing a node from determining one of the
nonces used in the encryption of a channel between two nodes.
2018-05-24 12:11:42 +02:00
Benjamin Canou
dcf27f48d9 Alpha: do not produce multiple revelations 2018-05-22 12:32:47 +02:00
Benjamin Canou
89d9d83b15 Alpha: remove unused error 2018-05-22 12:32:47 +02:00
Grégoire Henry
d0a9fb678c Alpha: better error for invalid key revelation 2018-05-22 12:32:47 +02:00
OCamlPro-Iguernlala
4caf7cf679 P2p_maintenance: improve 'try_to_contact' and 'connectable'
To avoid eventual infinite loops in 'try_to_contact', we
accumulate the set of points that have been seen to discard them
during recursive calls.
2018-05-22 12:20:04 +02:00
Marco Stronati
5a26d23cf7 Crypto: replace nocrypto sha256 with hacl 2018-05-17 10:20:22 +02:00
Marco Stronati
7d6da7179b Crypto: replace ocaml-tweetnacl with ocaml-hacl 2018-05-17 10:20:22 +02:00
Grégoire Henry
01941fa725 Opam: fix tezos-stdlib.opam 2018-05-13 01:42:05 +02:00
Vincent Bernardoff
abdcfab111 RPC: add CORS test 2018-05-13 00:20:40 +02:00
Vincent Bernardoff
64183bbcf3 RPC: CORS now accepts Content-Type by default 2018-05-13 00:00:18 +02:00
Vincent Bernardoff
049efb2169 Stdlib/String: add Set module 2018-05-12 23:57:32 +02:00
OCamlPro-Iguernlala
6b8c3f7d31 P2p_maintenance.connectable: ignore non-trusted points if option --closed is set 2018-05-12 23:42:20 +02:00
Vincent Bernardoff
b48ba96106 Stdlib: use bigstring to implement MBytes 2018-05-12 23:11:35 +02:00
Vincent Bernardoff
1cd82f5d82 Stdlib: do not use deprecated stringext 2018-05-12 23:11:35 +02:00
Benjamin Canou
3ca03f6da7 Alpha: remove dead code for deposit forfeiting 2018-05-11 16:49:16 +02:00
Grégoire Henry
3e6633bacc Alpha: burn only rewards and fees when baker do not reveal seeds
We only forfeit the bond in case of double-baking.
2018-05-11 15:50:03 +02:00
Pierre Chambart
e16cf6d28b Simplify, bit extraction from Z values 2018-05-09 16:36:52 +00:00
Benjamin Canou
deffa28aa4 Data_encoding: add more compact binary serializer for Z 2018-05-09 16:36:52 +00:00
Benjamin Canou
441149880c Environemt: add equality for Z.t 2018-05-09 16:36:52 +00:00
Benjamin Canou
636fecb6ff Utils: add Compare.Z 2018-05-09 16:36:51 +00:00
Raphaël Proust
a3474ae496 Typo in error message 2018-05-09 17:46:54 +02:00
Grégoire Henry
74ec514fd2 Alpha: fail on early revelations
We now fail when a nonce is revealed before
the the expected revelation cycle.
2018-05-09 17:46:54 +02:00
Grégoire Henry
3cb1c3c5e2 Alpha: error messages for invalid nonce revelations 2018-05-09 17:46:48 +02:00
Grégoire Henry
43fe4dbdc3 Alpha: minor cosmetic changes 2018-05-09 17:45:37 +02:00
Benjamin Canou
a873930a09 Alpha: minor change to the PoW check 2018-05-09 15:56:09 +02:00
Grégoire Henry
e3bfe0d651 Alpha: exclude signature from the minimal stamp of PoW.
We don't want the stamp to be cheaper for people with faster
signing devices...
2018-05-09 15:56:09 +02:00
bruno
6966240a54 Alpha: export missing errors 2018-05-08 12:50:04 +02:00
Benjamin Canou
cd731df938 Add missing opam dependency 2018-05-05 01:29:06 +02:00
Benjamin Canou
294e270f32 Add missing opam dependency 2018-05-04 19:23:04 +02:00
Vincent Bernardoff
96d9f317c1 Ocplib_json_typed: adapt code for inclusion in vendors 2018-05-04 18:48:00 +02:00
Pietro
b27bb84861 [p2p] fix space for semicolon and pipe 2018-05-03 16:03:01 +02:00
Grégoire Henry
fe9c06b7ca Test: fix test_multinode.sh 2018-05-03 16:03:01 +02:00
Pierre Chambart
137613ee9a Formatting client_p2p_commands 2018-05-03 16:03:01 +02:00
Pierre Chambart
d71ff759dc Remove uses of Time.now in P2p_acl 2018-05-03 16:03:01 +02:00
Pierre Chambart
6bdb959204 Really get rid of magic... 2018-05-03 16:03:01 +02:00
Pierre Chambart
7de7043a74 Stdlib: get rid of magic in HashPtree 2018-05-03 16:03:01 +02:00
Pietro
4d9292fcbb Fix other minor comments 2018-05-03 16:03:01 +02:00
Pietro
c5d41465a2 p2p: temp ban point on invalid auth 2018-05-03 16:03:01 +02:00
Pietro
ce92f70883 P2p: Fix Hashtbl for PeerRing
Export hash in INTERNAL_HASH. now Peer_id.Id is hashable
2018-05-03 16:03:01 +02:00
Pietro
3683e948c1 Ring: swap operation order in Ring.Maketable.add 2018-05-03 16:03:01 +02:00
Pietro
511b47148c p2p, ring: Cleanup PeerId table 2018-05-03 16:03:01 +02:00
Vincent Bernardoff
b3df4e63c8 [P2P] ACLs: cosmetics, renamings, comments 2018-05-03 16:03:01 +02:00
Pietro
02838a4cbc p2p,node,client: Add Greylists
- add admin commands to ban and unban ips and peers
- add greylist_timeout option to configuration file (node)
- Add greylist modules + RPC
2018-05-03 16:03:01 +02:00
Pierre Chambart
496cbe566d Stdlib: add ephemeron-based patricia trees for P2P greylisting 2018-05-03 15:58:08 +02:00
Vincent Bernardoff
280d88faaf TLS: add connectivity test 2018-05-03 15:48:25 +02:00
Vincent Bernardoff
7ffad5887d Node: update issues URL in man page 2018-05-03 15:48:25 +02:00
Vincent Bernardoff
63e44af5e4 TLS: switch to ocaml-tls 2018-05-03 15:48:25 +02:00
Grégoire Henry
0b31ebb455 Data_encoding: split out Binary_stream 2018-05-03 15:35:40 +02:00
Grégoire Henry
c9eab8689a Shell/Distributed_db: tune requests delay 2018-05-03 11:51:29 +02:00
Grégoire Henry
f2db5ffde3 Shell/Bootstrap: improve network paralellism 2018-05-03 11:51:29 +02:00
Grégoire Henry
6e4b2eab47 Shell: reduce default logging a little bit 2018-05-03 11:51:29 +02:00
Grégoire Henry
caa764f0ff Data_encoding: do not open the implementation modules by default 2018-05-03 11:05:06 +02:00
Raphaël Proust
0a3c9d52ec Data_encoding: deduplicate documentation 2018-05-03 15:25:47 +08:00
Raphaël Proust
194d3f9120 Data_encoding: move internal function internally 2018-05-03 15:18:10 +08:00
Raphaël Proust
34d4e9ec5d Data_encoding: don't open Encoding 2018-05-03 15:13:39 +08:00
Raphaël Proust
1ade54a7d7 Data_encoding: separate Size into its own module 2018-05-03 15:11:46 +08:00
Raphaël Proust
2418554f78 Data_encoding: reorder and reorganize doc 2018-05-03 14:00:24 +08:00
Raphaël Proust
56fbc5267d Data_encoding: split implementation
In an effort to keep a clean commit history, the interface is unchanged.
2018-05-03 12:27:17 +08:00
Milo Davis
7a43c5bc41 P2p_pool: fix ambiguous JSON union case 2018-04-26 22:52:21 +02:00
Milo Davis
ebfdeea8d5 Data_encoding: add descriptions to encodings 2018-04-26 22:52:21 +02:00
Milo Davis
f5cc599ae6 Data_encoding: add names to union cases 2018-04-26 22:52:21 +02:00
Vincent Bernardoff
de006f4be3 Crypto: fix hardcoded signatures in tests 2018-04-26 21:24:21 +02:00
Vincent Bernardoff
54bbc71c1b Crypto: sign 32 bytes message hash 2018-04-26 21:24:21 +02:00
Vincent Bernardoff
47f9c2460b Crypto: fixes for secp256k1 2018-04-26 21:24:21 +02:00
Vincent Bernardoff
3a0cdfd90a Crypto: Secp256k1 -> Libsecp256k1 2018-04-26 21:24:21 +02:00
Raphaël Proust
f8130eed82 Stdlib/MBytes: avoid double raise 2018-04-26 21:22:28 +02:00
Raphaël Proust
1af07b233a Data_encoding: better documentation of int 2018-04-26 21:20:40 +02:00
Grégoire Henry
02beb9c79a CI: fix busybox compatibility 2018-04-26 12:55:07 +02:00
Grégoire Henry
0fe8975817 Test: faster testsuite
No need to wait 1 second between blocks!
2018-04-22 13:48:20 +02:00
Grégoire Henry
a3a33c4814 Shell: export Signature.Public_key_hash.zero 2018-04-22 13:46:31 +02: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
3ba30fa468 RPC: allow 'epoch' as a valid Time.rpc_arg 2018-04-22 13:46:31 +02:00
Grégoire Henry
d3f4424c75 RPC: Use bytes for source files encoding in protocol updates 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
Grégoire Henry
7adc0c90e7 Compiler: preserve Protocol_hash 2018-04-22 13:41:26 +02:00
Grégoire Henry
aeacd845f2 Shell: minor renaming 2018-04-22 13:41:26 +02:00
Grégoire Henry
aa12c6fd9b Opam: fix alcotest version 2018-04-19 12:02:23 +02:00
Vincent Bernardoff
7c546425d2 Vendors/tweetnacl: use bigstring 2018-04-19 10:31:56 +02:00
Vincent Bernardoff
230d495dc6 Vendors/blake2b: use bigstring 2018-04-19 10:21:01 +02:00
Raphaël Proust
3ceaed4dd3 Crypto: more alcotesty tests 2018-04-18 14:41:44 +02:00
Raphaël Proust
cd8a63f543 Crypto: Only extract checksum when there's one
Specifically, check that there are enough characters to extract the 4-characters
checksum of safe-encoded strings.

The commit also introduces new tests for some parts of the crypto library.
2018-04-18 14:41:44 +02:00
Grégoire Henry
40e63739ac Base58: regroup prefix definition. 2018-04-18 09:53:11 +02:00
Grégoire Henry
11ad8fa8ea Fix rebase conflict.
oups...
2018-04-17 15:24:23 +02:00
Marco Stronati
a491083586 Alpha: added rpc 'proto/delegate/<id>/frozen_balances' 2018-04-17 14:54:51 +02:00
Grégoire Henry
dbe4a20d4a Reset the chain 2018-04-17 13:46:23 +02:00
Grégoire Henry
b6ed841ccf Genesis: fix genesis key
(was mistakenly changed in 9ffead02d2)
2018-04-17 13:45:41 +02:00
Grégoire Henry
7429a5b21d Client: fix wallet import 2018-04-17 10:50:27 +02:00
Grégoire Henry
020ef19460 Client: add a claim operation that activate a commitment account 2018-04-17 10:50:23 +02:00
Grégoire Henry
ec25690166 Client: minor refactoring 2018-04-17 10:39:24 +02:00
Vincent Botbol
326226d5ed Genesis: add mnemonics, passwords and emails to genesis info generation 2018-04-17 10:36:46 +02:00
Arthur B
eb1dfb7f20 Shell/Alpha: allow usage of secp256k1 for signature 2018-04-16 18:37:52 +02:00
Milo Davis
19843b96b0 Client: use source_param instead of alias_param 2018-04-16 12:38:31 +00:00
Grégoire Henry
3765c39477 Client: fix for issue #161.
Use proper parsing for `--delegate` argument.
2018-04-16 12:38:31 +00:00
Grégoire Henry
3d57055cca Alpha: use protocol parameters instead of sandbox to tune constants 2018-04-16 09:28:26 +02:00
Grégoire Henry
98f30a3e85 Alpha: allow more constant parametrization 2018-04-16 09:28:26 +02:00
Marco Stronati
0940442148 Alpha: fixed type of Tez for constants 2018-04-12 16:40:42 +02:00
Grégoire Henry
c6ffe4a5d9 Alpha: better threading of fees and rewards 2018-04-10 16:23:53 +00:00
Vincent Bernardoff
401eeceefb Client: fix error when signing with encrypted keys 2018-04-09 17:14:15 +02:00
Grégoire Henry
ce2d196bb5 Data_encoding: be compatible with 32bits platform.
We should not accept for `data_encoding.ranged_int` values that cannot
fits in `int31`. Iw we wnat more, we should introduce `ranged_int32`
or `ranged_int64`.
2018-04-09 13:17:04 +00:00
Marco Stronati
a8beaec40a Alpha: added a rpc to retrieve all constants at once. 2018-04-09 15:05:46 +02:00
Vincent Botbol
91dfb730bf Alpha: parametrize protocol activation with commitments and bootstrap accounts 2018-04-09 15:05:46 +02:00
Milo Davis
e6418b4602 Test: minor improvements to test_lib.inc.sh
- Can now set show_logs variable from outside the script
- Better logging for assert_balance
- bake_after can now handle quoted arguments
2018-04-08 11:41:37 -04: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
5f69ae87d2 Sandbox: deactivate the minimal stamp of proof of work for bakers 2018-04-06 13:45:13 +02:00
Grégoire Henry
745aabcd22 Script: allow to reinitialize a sandboxed client
Running twice the `tezos-init-sandboxed-client.sh` should remove from
the disk the previous client and initialize a new one.
2018-04-06 13:35:09 +02:00
Grégoire Henry
4f2b2f8ece Alpha: use Base58 for displaying commitment 2018-04-06 11:56:32 +02:00
Grégoire Henry
9ffead02d2 Shell: simplify hash signatures 2018-04-06 11:56:32 +02:00
Arthur B
21efb2dc9d Jbuilder: update to beta.19.1 2018-04-06 11:47:22 +02:00
Grégoire Henry
b7c2bac8dc OPAM: fix tezos-crypto.opam 2018-04-06 11:46:09 +02:00
Grégoire Henry
bf32659a6b Proto/Env: Replace configure_sandbox by proper init 2018-04-06 11:40:34 +02:00
Grégoire Henry
6f0cc397ae Shell: move back hash encoders from lib_base to lib_crypto 2018-04-03 15:21:38 +02:00
Grégoire Henry
08a3cff5a6 Base: rename Cli_entries into Clic 2018-04-03 15:21:38 +02:00
Milo Davis
4ad127c398 Client: wait for operation inclusion command and RPC 2018-03-30 00:45:22 +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
Mathias Bourgoin
fcdf36acd4 Shell/RPC: remove the fake block /blocks/prevalidation
Add a `/mempool/pending_operations`
2018-03-30 00:44:58 +02:00
bruno
c332343cee Alpha: add one mutez in interface 2018-03-28 09:30:33 +00:00
Vincent Botbol
c2990b4f14 Alpha: replace the faucet by preallocated-contract activation. 2018-03-28 10:36:37 +02:00
Arthur B
f98ed35583 Blake2B: export kmac function. 2018-03-28 10:29:51 +02:00
Grégoire Henry
afb1e0f260 Proto/Env: remove {Set,Map}.find
Also replace all the function raising `Not_found` by their `_opt` version.
2018-03-27 09:59:59 +00:00
Grégoire Henry
48cc2e9928 Proto/Env: rename Set.S and Map.S into S.SET and S.MAP. 2018-03-27 09:59:59 +00:00
Vincent Botbol
369b6d7988 Fix: sphinx warning about bad reference 2018-03-26 01:04:07 +02:00
Vincent Botbol
d64d448c3c Fix: typos in rpc block's dynamic argument description 2018-03-26 01:04:07 +02:00
Vincent Botbol
385a600e98 Docs: add error documentation generation 2018-03-26 01:04:07 +02:00
Benjamin Canou
19eb1c2520 Error_monad: change error wrapping to flatten the JSON format 2018-03-26 01:04:07 +02:00
Benjamin Canou
bd3191059b Data_encoding: make more combinators transparent to is_tup/is_obj 2018-03-24 16:45:29 +01:00
Benjamin Canou
e0a4147b8d Alpha: add missing error registrations 2018-03-24 16:45:29 +01:00
Benjamin Canou
583563ede0 Remove dead file 2018-03-24 16:45:29 +01:00
Grégoire Henry
72b7789162 Alpha: reduce tips for inclusion of seed revelations 2018-03-22 17:37:54 +01:00
Grégoire Henry
7fabac6714 Alpha/RPC: fix typo in the RPC for parsing and forging. 2018-03-22 14:13:53 +01:00
Pietro
5399dee5ce test: add tezos-alpha-baker command in tezos-init-sandboxed-client 2018-03-22 13:51:26 +01:00
Pietro
f6dbdf7ac3 Test: fix make fix-indent erase all problem 2018-03-22 13:51:06 +01:00
Grégoire Henry
9035bb94ab Baker: do not generate random when not required 2018-03-22 13:41:57 +01:00
Pietro
9ef69b4502 Client, test: Add two more protocol injection tests (from alpha) 2018-03-20 07:07:57 +01:00
Pietro
c6c9117c3a Client,test: add test for demo protocol activation 2018-03-20 07:07:56 +01:00
Grégoire Henry
c2f74f9f9b Alphanet: use vanity key for the bootstrap accounts 2018-03-20 07:07:56 +01:00
Pietro
01dd7d152a Client: better error messages for unwrapped JSON objects. 2018-03-20 06:50:39 +01:00
bruno
55ad294595 Alpha: fix typo s/token_per_rolls/tokens_per_roll 2018-03-20 06:49:52 +01:00
bruno
bdf6a5e564 General: update jbuilder to 1.0+beta19 2018-03-20 06:49:52 +01:00
Grégoire Henry
c5792cd7f0 Shell: remove outdated operation on new blocks 2018-03-20 06:49:52 +01:00
Grégoire Henry
edb40c7923 Alpha/test: allow to deactivate seed renewal 2018-03-19 16:06:27 +01:00
Benjamin Canou
dabf4c1578 Fix alphanet_constants.patch and reset the chain 2018-03-18 18:36:56 +01:00
Benjamin Canou
19d9ce1f64 Alpha: fix tests 2018-03-18 18:11:04 +01:00
Benjamin Canou
0b31daeadc Alpha: rename Double_endorsement/baking into Double_endorsement/baking_evidence 2018-03-16 18:38:41 +01:00
Grégoire Henry
5ac629f335 More renaming registred -> registered 2018-03-16 18:38:41 +01:00
Grégoire Henry
71ee3114a7 Alpha: rename bond into deposit 2018-03-16 18:38:41 +01:00
Grégoire Henry
987e4a5314 Alpha: introduce constant max_revelations_per_block 2018-03-16 18:38:41 +01:00
Grégoire Henry
8e77382a61 Alpha: remove constant max_number_of_operations 2018-03-16 18:38:41 +01:00
Grégoire Henry
c1ddec37ab Alpha: rename voting_period_length into block_per_voting_period 2018-03-16 18:38:41 +01:00
Grégoire Henry
7ef2803199 Alpha: rename max_signing_slot into endorsers_per_block 2018-03-16 18:38:41 +01:00
Grégoire Henry
43609e2e63 Alpha: rename baking_reward into block_reward 2018-03-16 18:38:41 +01:00
Grégoire Henry
6b53e3f578 Alpha: rename endorsement_bond_cost into endorsement_security_deposit 2018-03-16 18:38:41 +01:00
Grégoire Henry
74d334463e Alpha: rename baking_bond_cost into block_security_deposit 2018-03-16 18:38:41 +01:00
Grégoire Henry
19cb91bcb6 Alpha: rename slot_durations into time_between_blocks 2018-03-16 18:38:41 +01:00
Grégoire Henry
4be6897368 Alpha: rename cycle_length into blocks_per_cycle 2018-03-16 18:38:41 +01:00
Grégoire Henry
4f968d6fdc Alpha: rename block_per_roll_snapshot into blocks_per_roll_snapshot 2018-03-16 18:38:41 +01:00
Grégoire Henry
e81c02c27a Alpha: remove Faucet limit 2018-03-16 18:38:41 +01:00
Grégoire Henry
5fa0b074bf Alpha: rename constant initial_roll_value into tokens_per_roll
And remove alphanet hack (doubling roll value)
2018-03-16 18:38:41 +01:00
Grégoire Henry
dc681551e6 Alpha: adjust constants 2018-03-16 18:38:41 +01:00
Grégoire Henry
abe769c393 Alpha: don't burn origination_burn twice... 2018-03-16 18:38:41 +01:00
Grégoire Henry
a41d553162 Alpha: use distinct quota for anonymous_operation 2018-03-16 18:38:41 +01:00
Grégoire Henry
040ac648eb Alpha: better error message when registering delegates 2018-03-16 18:38:41 +01:00
Grégoire Henry
a95e601284 Alpha: don't fail when burning previously burned bond/fees/rewards.
Just in a case a baker double-bakes and doesn't reveal its nonce.
2018-03-16 17:37:45 +01:00
Benjamin Canou
0cf6f8fff2 Alpha: do not decrease delegation rights expiration date when provisioning 2018-03-16 17:24:22 +01:00
Grégoire Henry
04bbbf9fe2 Alpha: deactivate inactive delegate 2018-03-16 17:12:19 +01:00
Benjamin Canou
fc08f2f8ef Alpha: add missing error registrations 2018-03-16 16:34:39 +01:00
Grégoire Henry
2eaae225ff Alpha: forbid delegation to the current delegate 2018-03-16 16:21:29 +01:00
Grégoire Henry
5026d6a68d Alpha: allow to tag a delegate as inactive 2018-03-16 16:09:51 +01:00
Grégoire Henry
76d11fcafb Alpha: add operation Double_baking 2018-03-16 15:34:36 +01:00
Grégoire Henry
09c1e317ab Alpha: add operation Double_endorsement 2018-03-16 15:34:32 +01:00
Grégoire Henry
3aef2ed505 Alpha: remove hash from Operation_repr.t 2018-03-16 14:34:39 +01:00
Grégoire Henry
e2af8dbee9 Alpha: randomly select a roll snapshot for each cycle 2018-03-16 11:21:22 +01:00
Benjamin Canou
b4dad92a7d Alpha: remove dead alphanet specific code 2018-03-16 11:21:21 +01:00
Grégoire Henry
6dccfa4a1f Alpha: prepare storage for multiple roll snapshots per cycle 2018-03-16 11:21:09 +01:00
Grégoire Henry
0283bee65b Alpha: add constant 'block_per_roll_snapshot' 2018-03-15 23:40:46 +01:00
Grégoire Henry
4e9fd509b3 Proto: export the 'last_allowed_fork_level'.
The should ignore all branch forking at a block whose level
is lower than the 'last_allowed_fork_level' of the current head.
2018-03-15 21:48:16 +01:00
Grégoire Henry
726bf5955e Jbuilder: fix error reporting in protocol compilation 2018-03-15 21:46:59 +01:00
bruno
226a9a1778 Proto_alpha: fix typo "unpexpected" 2018-03-15 14:07:06 +00:00
Raphaël Proust
8364e27142 Data_encoding: typo in error message 2018-03-15 13:58:54 +00:00
Milo Davis
2fbc60af75 Michelson: make maximum integer for gas 32 bit compatible (#169) 2018-03-15 13:51:13 +00:00
Benjamin Canou
2d9bbcce90 Alpha: fix PoW stamp value 2018-03-15 14:14:12 +01:00
Benjamin Canou
b09183a2d7 Alpha: remove emptied frozen balances 2018-03-15 14:06:00 +01:00
Grégoire Henry
39f919e07b Alpha: rework reward storage.
We now keep track per delegate and per cycle of three distinct "frozen
balance": one for the bond, one for the fees, one for the rewards.
All tokens frozen during cycle 'N' are unfrozen at the end of the
cycle 'N+5'.

The frozen bond and fees count allows to gain rolls. The frozen
rewards do not.
2018-03-15 00:37:18 +01:00
Grégoire Henry
2be83eafc1 Alpha: allow seed's nonce commitment only once every 'blocks_per_commitment' 2018-03-15 00:26:19 +01:00
Grégoire Henry
71e9780e5b Proto/env: export Ed25519.Signature.zero 2018-03-15 00:25:46 +01:00
Grégoire Henry
dc89432aad Proto/env: export RPC_directory.opt_register 2018-03-15 00:23:13 +01:00
Grégoire Henry
54b7d44da8 Alpha: add constant block_per_commitments 2018-03-15 00:19:15 +01:00
Grégoire Henry
abfc317ee8 Alpha: freeze delegation rights (preserved_cycles+1) in advance 2018-03-14 19:28:19 +01:00
Grégoire Henry
672109de54 Alpha: more intuitive Misc.(-->) 2018-03-14 12:12:49 +01:00
Grégoire Henry
e42cd1ccd6 Alpha: minor renaming 2018-03-14 12:12:49 +01:00
Grégoire Henry
cd5ac0a27d Alpha: add Constants_storage 2018-03-14 12:12:49 +01:00
Grégoire Henry
bd721b1085 Alpha: add constant "preserved_cycles" 2018-03-14 12:12:49 +01:00
Benjamin Canou
5bd01de643 Errors: fix duplicate definition 2018-03-14 11:37:35 +01:00
bruno
8713ae36f6 General: s/registred/registered/ 2018-03-13 16:29:02 +00:00
Grégoire Henry
7af7cb95e3 Alpha/Client: fix incorrect 'delegate' display.
Signed-off-by: Grégoire Henry <gregoire.henry@tezos.com>
2018-03-12 18:14:39 +01:00
Grégoire Henry
487fce8be1 Shell/block_locator: count 'head' as a locator step 2018-03-12 17:14:12 +01:00
Benjamin Canou
d00724ea13 Fix alphanet_constant.patch and reset the chain 2018-03-09 14:17:18 +01:00
Grégoire Henry
88f5a5fb4d Opam: fix installation of the functorize protocol 2018-03-08 15:42:53 +01:00
Benjamin Canou
640671c7c5 P2p: fix version number sizes 2018-03-08 14:40:28 +01:00
Grégoire Henry
801bdf3d4c Dune: don't use the 'tezos-protocol-compiler' in the build system 2018-03-08 14:38:57 +01:00
Milo Davis
a405eb2d0e Fixes for jbuilder.1.0.0-beta18 2018-03-08 14:38:57 +01:00
Grégoire Henry
76a59af376 Opam: use jbuilder.1.0.0-beta18 2018-03-08 14:38:57 +01:00
Grégoire Henry
f926cfc0ac Reset the chain 2018-03-08 07:08:24 +01:00
Grégoire Henry
cdeff6d3ca Fix 'script/reset_chain.sh' 2018-03-08 07:07:59 +01:00
Grégoire Henry
5d99c7c0ae Reset the chain 2018-03-07 18:39:23 +01:00
Grégoire Henry
b50d96ec2b Fix compilation with recent 're' Re.Str 2018-03-07 18:14:51 +01:00
Grégoire Henry
ad330db7e1 Opam: require jbuilder = 1.0.0-beta17 2018-03-07 18:12:12 +01:00
Vincent Bernardoff
684fe1110b P2P: doc and associated minor changes. 2018-03-01 14:16:33 +01:00
bruno
58804798ec Shell services: p2p errors: add registrations 2018-03-01 12:28:05 +00:00
bruno
5a37f6acf1 Shell: mv p2p errors to shell services
Notes:
1. P2p_socket.Rejected -> P2p_errors.Rejected_socket_connection
   to avoid conflict with P2p_pool.Rejected
2. Connection_closed error in P2p_pool unused and redundant with one
   in P2p_io_scheduler
2018-03-01 12:28:04 +00:00
Benjamin Canou
7de4ed5622 Alpha: fix the baker and endorser 2018-03-01 11:34:37 +01:00
Benjamin Canou
e148b370c0 Client: initialize logging in the client (for the daemons) 2018-03-01 11:34:10 +01:00
Benjamin Canou
8a6deca8a0 Shell: simplify operation injecion error handling 2018-03-01 10:33:42 +01:00
Benjamin Canou
249e4564d3 Alpha: fix spend_from_script 2018-02-28 14:59:01 +01:00
Grégoire Henry
b63b333b1a Alpha: allow to iter on delegates 2018-02-28 14:59:01 +01:00
Grégoire Henry
54efe8fcd7 Alpha: introduce Delegate_storage 2018-02-28 14:59:01 +01:00
Grégoire Henry
4c1e4bc6cd Alpha: use 'Data_set' for storing the spendable flag 2018-02-28 14:59:01 +01:00
Grégoire Henry
9ff3be14b6 Alpha/client: fix baking daemon
Missing classify operation.
2018-02-28 14:59:01 +01:00
Grégoire Henry
dcc5bc6b1a Alpha: remove warning 2018-02-28 14:59:01 +01:00
Pietro Abate
88e67707b7 Alpha: aggregate rolls per delegate 2018-02-28 14:59:01 +01:00
Grégoire Henry
6d900e3e52 Alpha: remove index of public keys
For delegate keys, we now use the revealed key of the associated
delegate contract.
2018-02-28 14:59:01 +01:00
Grégoire Henry
92f5ad6212 Alpha: forbid delegation to "unregistred delegate".
A "registred delegate" is a delegate that previously revealed its
public key and that registred itself as delegate of its own implicit
contract.

An implicit contract can only be delegated to itself ; it is then
considered as a "delegate contract". A delegate contract cannot be
deleted.
2018-02-28 14:59:01 +01:00
Grégoire Henry
38f46d832a Alpha/client: add a command for registering as delegate 2018-02-28 14:59:01 +01:00
Grégoire Henry
3a057ddad1 Alpha/client: add command "reveal key for <contract>" 2018-02-28 14:48:47 +01:00
Grégoire Henry
86561363b2 Alpha: explicit operation for key revelation 2018-02-28 14:48:47 +01:00
Grégoire Henry
fc2cd7ce5c Alpha: smaller endorsement operations
We don't include the delegate pkh in the operation anymore, and we
allow to group multiple endorsements in the same operations.
2018-02-28 14:48:47 +01:00
Grégoire Henry
a875a5f2e9 Alpha: ignore delegate with unrevealed keys when freezing rolls 2018-02-28 14:48:47 +01:00
Grégoire Henry
c78dd51f3d Alpha: rename "default contract" into "implicit contract" 2018-02-28 14:48:47 +01:00
Grégoire Henry
16758a5c74 Alpha: remove some alphanet specifics 2018-02-28 14:48:47 +01:00
Grégoire Henry
c125f822f5 Alpha: update storage fees policy.
Instead of having a minimal amount for contracts, we now burn
token when increasing the size of a contract storage.
2018-02-28 14:48:47 +01:00
Grégoire Henry
892acb0c72 Alpha: Minor style issue 2018-02-28 14:48:47 +01:00
Pietro Abate
7fcc8fa7f9 Alpha: Minor refactoring to may_start_new_cycle 2018-02-28 14:48:47 +01:00
Grégoire Henry
59d69c8fb1 Test: fix sandboxed scripts. 2018-02-28 14:48:47 +01:00
Benjamin Canou
40ea190364 Client: do not display usage on all errors 2018-02-28 12:14:21 +01:00
Benjamin Canou
8eee1c7a9c Node: cleanup logging of shell workers 2018-02-26 16:08:04 +01:00
Benjamin Canou
40a26759fc Node: fix error handling in block validator 2018-02-26 16:08:04 +01:00
bruno
f600fc57d4 Shell: improve pp for block locator 2018-02-26 15:52:36 +01:00
bruno
f5e3d99e24 Shell services: harmonise errors IDs 2018-02-26 15:52:36 +01: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
Marco Stronati
154f43d0bf Proto_alpha: removed empty mli in tests 2018-02-23 15:09:46 +00:00
Marco Stronati
54f0e21373 Proto_alpha: added test for raw_context rpc call 2018-02-23 15:09:45 +00:00
Marco Stronati
ce93c266e5 Client: added bash test for raw_context rpc call 2018-02-23 15:09:45 +00:00
Marco Stronati
d1c1ced970 Shell: added rpc to inspect context of a block
Added a block_service and corresponding handler in the node to perform
queries of the form '/blocks/<id>/raw_context/<path>?depth=<n>'
returning the sub-tree corresponding to <path> inside the context of
block <id>. The parameter <depth> controls the size of the tree,
default is 1.
2018-02-23 15:09:44 +00:00
Grégoire Henry
0a10b97e33 Client: fix query parameters handling in rpc call 2018-02-23 15:09:44 +00:00
Marco Stronati
f9ffb21e74 Node: removed duplicated export. 2018-02-23 15:09:43 +00:00
Marco Stronati
c3967e7bc0 RPC_encoding: fixed missing case in path encoding 2018-02-23 15:09:43 +00:00
Pierre Chambart
c92f370930 Add check of snapshot availability 2018-02-22 13:29:01 -05:00
Pierre Chambart
cd30ff95e7 Free roll freeze 2018-02-22 13:29:01 -05:00
Pierre Chambart
3b4490129b Snapshotable storage 2018-02-22 13:29:01 -05:00
Pierre Chambart
3caa5c2260 Add copy to the proto raw_context 2018-02-22 13:24:51 -05:00
Pierre Chambart
1a94bfd0e9 Add copy to the storage 2018-02-22 13:24:51 -05:00
Grégoire Henry
84d8b46662 Jbuilder: fix concurrency issue 2018-02-22 07:13:51 +01:00
Pierre Chambart
d18cc74ab4 Proto environment: clean Array 2018-02-22 05:36:57 +01:00
Pierre Chambart
d3cb77575d Proto environment: Remove Buffer 2018-02-22 05:36:57 +01:00
Pierre Chambart
35424af049 Proto environment: Remove Bytes 2018-02-22 05:36:57 +01:00
Pierre Chambart
78bc80e70c Proto environment: Get rid of Lwt_sequence 2018-02-22 05:36:57 +01:00
Pierre Chambart
f9feec825b Proto environment: A bit more cleaning of Format 2018-02-22 05:36:57 +01:00
Pierre Chambart
81a548829f Proto environment: Remove deprecated format functions 2018-02-22 05:36:57 +01:00
Pierre Chambart
590ddb750f Change compiler's requested version 2018-02-22 05:36:57 +01:00
Pietro
b5f9e2479f Client: fix unregistered error when there is a node already running 2018-02-21 23:40:28 +01:00
Vincent Botbol
b78d7bdaee Repair: fix sandbox initialization script 2018-02-21 18:34:55 +01:00
Pietro
79f7cf3943 Node: Add docstrings to Data encodings for node config parameters 2018-02-21 10:59:12 +00:00
Benjamin Canou
8a1f4acfcd Remove dangling file 2018-02-20 22:40:41 +00:00
Grégoire Henry
f999524887 Proto/env: add missing type equalities 2018-02-20 18:29:56 +01:00
Pietro
fa0175263f Node: Add bootstrap_threshold to the client config cli 2018-02-20 10:40:18 +00:00
Pietro
e7bb484ead Node: print config file options in manpage 2018-02-20 11:31:15 +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
Milo Davis
67b3338907 Client: update typecheck program flags and michelson mode 2018-02-17 20:42:03 -05:00
Benjamin Canou
bb0fa86d91 Client: rename client context classes for clarity 2018-02-16 18:12:29 +01:00
Vincent Bernardoff
54e96092b4 Client: add encrypted signature scheme 2018-02-16 18:12:29 +01:00
Benjamin Canou
67019246e9 Client: add method prompt to context and cleanup Unix context 2018-02-16 11:08:45 +01:00
Vincent Bernardoff
dfeb96842a Crypto: add Secretbox 2018-02-16 11:08:45 +01:00
Vincent Bernardoff
28adbb5814 Utils: add getpass 2018-02-16 11:08:45 +01:00
Grégoire Henry
6fa1283240 Shell: Rename net_id into chain_id 2018-02-16 02:57:25 +01:00
Benjamin Canou
e2be3360a9 Client: split client-alpha into lib and commands and extract the baker 2018-02-15 22:54:39 +01:00
Benjamin Canou
a55a60c59b Client: proper error on unknown global flag 2018-02-15 19:59:50 +01:00
Benjamin Canou
a1984ee090 Client: fix minor display glitches 2018-02-15 19:59:50 +01:00
Benjamin Canou
dd1b200306 Client: split client-base into client-base and client-commands 2018-02-15 19:59:50 +01:00
Benjamin Canou
7e6a4a5333 Client: minor refactoring 2018-02-15 18:21:18 +01:00
Benjamin Canou
c66f9b7733 Remove dangling jbuild file 2018-02-15 18:21:18 +01:00
Benjamin Canou
345bbc715d Client: move protocol injection commands to the admin client 2018-02-15 18:21:18 +01:00
Benjamin Canou
bacb55800d Client: split Client_commands into Client_commands and Client_context 2018-02-15 18:21:18 +01:00
Benjamin Canou
cafcaf925b Client: cleanup admin commands 2018-02-15 18:21:18 +01:00
Benjamin Canou
a14616517e Client: split client-base modules into functions / commands 2018-02-15 18:21:18 +01:00
Benjamin Canou
b3066d6a24 Client: remove Unix dependencies from client-base and client-alpha 2018-02-15 18:21:15 +01:00
Benjamin Canou
d983f601a6 Client: add --long and -s(hort) options 2018-02-15 18:20:45 +01:00
Benjamin Canou
3729e4f3ce Client: restore alias autocompletion 2018-02-15 18:20:45 +01:00
Benjamin Canou
42566e9dcd Client: move Unix out of Cli_entries and a bit of output cleanup 2018-02-15 18:20:42 +01:00
Benjamin Canou
2c2f0a1818 Cli_entries: export formatter setup functions 2018-02-15 18:19:17 +01:00
Benjamin Canou
a830c29185 Cli_entries: more docstrings 2018-02-15 18:19:17 +01:00
Vincent Bernardoff
62f436eda9 Base: use Re_str instead of non-thread-safe library Str 2018-02-15 18:19:17 +01:00
bruno
227232e6c7 Shell: delete duplicated functor 2018-02-15 17:38:19 +01:00
Vincent Bernardoff
f8ded9ca28 Comparable: add Make 2018-02-15 17:36:42 +01:00
Grégoire Henry
322fc1e353 RPC: move p2p services registration in tezos-p2p 2018-02-15 00:29:15 +01:00
Pietro
c67e6d4b04 Client/test: Add shell script to test protocol injection 2018-02-14 11:48:33 +01:00
Pietro
4d9f440aae Fix protocol injection
- Rename Tezos_protocol_compiler_native__Registerer
- Pass module without extension to the compiler
2018-02-13 15:02:32 +01:00
Grégoire Henry
515765926f Shell/test: minor fix in Test_locator 2018-02-13 13:25:49 +01:00
bruno
4fa11bdf28 Error_monad: improve error message for unrecognized errors 2018-02-13 13:24:54 +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
Grégoire Henry
7643fa9b15 Alpha: split Services/Services_registration and Client_proto_rpcs 2018-02-12 16:56:59 +01:00
Grégoire Henry
e4cde4c196 Client: introduce an alternative context alpha's commands 2018-02-12 16:56:59 +01:00
Grégoire Henry
d539072f1b Proto/env: export RPC_context 2018-02-12 16:56:59 +01:00
Grégoire Henry
4a1da9407e Client/test: minor code simplification 2018-02-12 16:56:59 +01:00
Grégoire Henry
3b95f77225 Alpha: split Tezos_hash multiple source files 2018-02-12 16:56:59 +01:00
Grégoire Henry
5fff7b3c1b Alpha: rename Tezos_context -> Alpha_context 2018-02-12 16:56:59 +01:00
Grégoire Henry
6a5a235d42 Client refactor: Proto_alpha.Environment -> Alpha_environment 2018-02-12 16:56:59 +01:00
Grégoire Henry
91143452e3 Proto/env: allow some Lwt in the construction of rpc_context 2018-02-12 16:54:08 +01:00
Grégoire Henry
82530eeb29 Proto/env: export *_hash.zero 2018-02-12 16:54:08 +01:00
Grégoire Henry
2c90308caf Client refactor: Client_proto_rpcs.block -> Block_services.block 2018-02-12 16:54:08 +01:00
Grégoire Henry
83307c6de0 Client: more open #full_context 2018-02-12 16:54:08 +01:00
Grégoire Henry
29e1735115 Client: add Cli_entries.map_command 2018-02-12 16:54:08 +01:00
Grégoire Henry
0bd31b0c38 Client refactor: remove last bits of lib_client_base/client_rpcs.ml
Split between `lib_rpc_http/RPC_client` and
`lib_shell_services/Block_services`.
2018-02-12 16:54:08 +01:00
Grégoire Henry
db1f134e45 Client refactor: use the error_monad for all RPC services (protocol) 2018-02-12 16:54:08 +01:00
Grégoire Henry
66c2a60530 Client refactor: use the error_monad for all RPC services 2018-02-12 16:54:08 +01:00
Grégoire Henry
a70a0788d3 Test: quick and dirty port to alcotest 2018-02-12 02:09:00 +01:00
Grégoire Henry
24fe0cc02c opam: fix package description 2018-02-11 20:03:52 +01:00
Grégoire Henry
4d69404049 Proto/env: move signature from Updater to Protocol_environment 2018-02-11 19:45:40 +01:00
Grégoire Henry
c9822abab7 Resto: minor simplification (remove RPC_service.map) 2018-02-11 19:45:40 +01:00
Grégoire Henry
0f0ec6ab7a Jbuilder: fix dependencies in the tezos-compiler hack 2018-02-11 19:17:39 +01:00
Grégoire Henry
d417a679e6 Alpha/test: fix symbolic link 2018-02-11 19:17:38 +01:00
Grégoire Henry
f6b55fa46d Test: fix manual execution of ./test-basic.sh 2018-02-11 19:17:38 +01:00
Grégoire Henry
0e675c2d16 Client refactor: add calling function in Worker_services 2018-02-08 17:23:30 +01:00
Grégoire Henry
1858bdd852 Client refactor: Move Client_node_rpcs into Shell_services 2018-02-08 17:23:30 +01:00
Grégoire Henry
21789be756 Client refactor: Move Client_node_rpcs.Protocols into Protocols_services 2018-02-08 17:23:30 +01:00
Grégoire Henry
37e65d93e7 Client refactor: Move Client_node_rpcs.Network into P2p_services 2018-02-08 17:23:30 +01:00
Grégoire Henry
02c2035e93 Client refactor: Move Client_node_rpcs.Block into Block_services 2018-02-08 17:23:30 +01:00
Grégoire Henry
db500b5ebd RPC_service: hide the 'error type parameter 2018-02-08 17:23:30 +01:00
Grégoire Henry
5c2ba214f0 Client refactor: Move handling of unix error from Error_monad to stdlib-unix 2018-02-08 17:23:30 +01:00
Grégoire Henry
41d30777a6 Client refactor: remove Utils.read_file... 2018-02-08 17:23:30 +01:00
Grégoire Henry
1f0c10bc6f Client refactor: Rename stdlib-lwt into stdlib-unix 2018-02-08 17:23:30 +01:00
Grégoire Henry
484b5b5b08 Client refactor: move stdlib_lwt out of base 2018-02-08 17:23:30 +01:00
Grégoire Henry
84d8ae9222 Client refactor: Move Data_encoding_ezjsonm.read_file into Lwt_utils_unix 2018-02-08 17:23:30 +01:00
Grégoire Henry
24c6f4ea98 Client refactor: Move Lwt_utils_unix.protect into Error_monad 2018-02-08 17:23:30 +01:00
Grégoire Henry
7dc52dcf10 Client refactor: Move Lwt_Exit into base 2018-02-08 17:23:30 +01:00
Grégoire Henry
27ae0591b1 Client refactor: Move Cli_entries into base 2018-02-08 17:23:30 +01:00
Grégoire Henry
8c58d7a610 Client refactor: Move non-unix part of Data_Encoding_Ezjsonm into Data_Encoding.Json 2018-02-08 17:23:30 +01:00
Grégoire Henry
c55181273c Client refactor: Move non-unix depend modules of stdlib-lwt into stdlib 2018-02-08 17:23:29 +01:00
Grégoire Henry
154b932713 Client refactor: Remove usage of Lwt_unix from Lwt_dropbox 2018-02-08 17:23:29 +01:00
Grégoire Henry
8f7f205031 Client refactor: Remove usage of Lwt_unix from Lwt_pipe 2018-02-08 17:23:29 +01:00
Grégoire Henry
7a3277e625 Client refactor: Move part of Logging into Logging_unix 2018-02-08 17:23:29 +01:00
Grégoire Henry
f61eed1a67 Client refactor: move part of Lwt_utils in Lwt_utils_unix 2018-02-08 17:23:29 +01:00
Grégoire Henry
f22b3576d2 Client refactor: simpler dependencies in tezos-crypto 2018-02-08 17:23:29 +01:00
Grégoire Henry
2f295a3af8 P2p: less types in lib_base
Let's only have types required for the RPCs.
2018-02-08 17:23:29 +01:00
Marco Stronati
67ac4d8f5c Protocol: change external to val in zarith protocol env 2018-02-08 15:28:32 +00:00
Marco Stronati
3ca9a081f9 Locator: added extended test with benchmark 2018-02-08 15:18:11 +00:00
Marco Stronati
d05dceb0b0 State: export predecessor_n 2018-02-08 15:18:10 +00:00
Marco Stronati
f8e69ac8f5 Locator: added test for size 0 and size larger than chain 2018-02-08 15:18:09 +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
Marco Stronati
eaf2103967 Storage: added a dedicated store for predecessors under /block/ 2018-02-08 15:18:08 +00:00
Benjamin Canou
75f4946072 Alpha: remove unused function 2018-02-07 12:24:01 +01:00
Grégoire Henry
acffadafae Jbuilder: fix warning 2018-02-07 11:16:39 +01:00
Vincent Bernardoff
e1d1292c09 Crypto: drop libsodium
We now use simpler OCaml bindings much easier to review.
2018-02-07 11:16:39 +01:00
Benjamin Canou
8bec8b7b9c Michelson: add isolate test for big maps 2018-02-06 17:04:49 +01:00
Benjamin Canou
5ae24aa7a3 Scripts: repair tezos-autocomplete, and make it work with emacs and zsh 2018-02-06 17:04:49 +01:00
Benjamin Canou
0352278621 Emacs: repair Michelson parsing error reporting 2018-02-06 17:04:49 +01:00
Milo Davis
79472c727a Michelson: introducing big maps, limited edition
Quick and dirty (yet safe, of course) implementation of lazily
  deserialized maps for storing large collections of indexed data.

  Only one big_map is allowed, as the left component of the toplevel
  storage pair.

  Review and bugfixes: Benjamin Canou <benjamin@canou.fr>
2018-02-06 17:00:54 +01:00
Benjamin Canou
3d0ec5deb4 Michelson: remove instruction MAP on sets 2018-02-06 16:32:30 +01:00
Grégoire Henry
575e367026 Update copyright notice (2018) 2018-02-05 23:34:05 +01:00
Grégoire Henry
e28219ad60 Opam: update to jbuilder.1.0+beta17 2018-02-05 23:34:05 +01:00
Grégoire Henry
c4c375dfc2 Proto_alpha/test: module renaming 2018-02-05 23:34:05 +01:00
Grégoire Henry
c6bf7d78b6 Proto_alpha/test: split tests. 2018-02-05 23:34:05 +01:00
Grégoire Henry
7929027793 Proto/test: do not depend on shell
For the test suite we only use the in-memory context.
2018-02-05 23:34:05 +01:00
Grégoire Henry
a6ab12e701 Context: add an alternative in-memory only implementation 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
dffa65f648 Test: add test dependencies into *.opam and fix .gitlab-ci.yml 2018-02-05 23:34:05 +01:00
Grégoire Henry
0166f2325e Test: move test into src/bin_client/test 2018-02-05 23:34:05 +01:00
Grégoire Henry
f7668c3799 Test: move test/proto_alpha into proto_alpha/lib_client/test 2018-02-05 23:34:05 +01:00
Grégoire Henry
4d5e55595b Test: split test/shell into src/lib_{storage,shell} 2018-02-05 23:34:05 +01:00
Grégoire Henry
868514af2b Test: move test/proto_alpha_isolate into proto_alpha/lib_protocol/test 2018-02-05 23:34:05 +01:00
Grégoire Henry
14d902a3fc Test: split out test/{p2p,utils} in various package dir 2018-02-05 23:34:05 +01:00
Grégoire Henry
6205ca9b31 Test: move data_encoding tests 2018-02-05 23:34:04 +01:00
bruno
ffe41a003c Michelson: add comments + registration for "Transfer in DIP" 2018-02-05 15:57:15 +01:00
bruno
ff7a8abb27 Michelson: mv registration of type-checking errors in a specific file 2018-02-05 15:49:30 +01:00
bruno
21c4cc6e69 Michelson: add registration for Overflow + some comments 2018-02-05 15:06:00 +01:00
bruno
75f29f4a05 Michelson: mv typechecking error definitions to a separate file 2018-02-05 14:58:19 +01:00
Grégoire Henry
d8151c0d00 Proto/alpha: use two operations list (endorsement / others) 2018-02-02 11:56:57 +01:00
Grégoire Henry
a1122f2083 Baking: handle validation passes 2018-02-02 11:56:57 +01:00
Grégoire Henry
09a7e98f9d Shell: enforce the allowed passes of an operation 2018-02-02 11:56:57 +01:00
Grégoire Henry
618a43b485 Proto: export acceptable_passes 2018-02-02 11:56:54 +01:00
Grégoire Henry
ae3ff0503b Proto: the number of validation is now a protocol constant 2018-02-02 10:27:58 +01:00
Benjamin Canou
42023753a2 Client: add signer modules documentation 2018-02-01 23:16:13 +01:00
Vincent Bernardoff
4ffb00ffde Client: segregate signing 2018-02-01 23:16:13 +01:00
Vincent Bernardoff
95ccd34864 Client: remove useless argument 2018-02-01 22:11:46 +01:00
Gabriel Alfour
aeb910b9f9 Utils: add a few primitives 2018-02-01 16:57:07 +01:00
Benjamin Canou
efef124261 Fix typo in tezos-protocol-compiler.opam 2018-01-31 23:27:53 +01:00
Benjamin Canou
0863a2a9e4 Docs: add online help pages for the client 2018-01-31 14:51:56 +00:00
Benjamin Canou
6063f67992 Client: restore automatic verbosity in man 2018-01-31 14:51:55 +00:00
Benjamin Canou
329e13cefa Client: add quick and dirty HTML output for man to produce online help pages 2018-01-31 14:51:54 +00:00
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
Milo Davis
7bed296525 Client: stuck node debug command 2017-11-27 10:40:42 +00:00
Benjamin Canou
61f7a95102 RPCs: fix encoding of list_invalid RPC 2017-11-27 10:40:41 +00:00
Milo Davis
9f45ae9126 Node: listing of invalid blocks 2017-11-27 10:40:41 +00:00
Milo Davis
42e29c8f4a Node: allow invalid block errors to be stored 2017-11-27 10:40:40 +00:00
Milo Davis
059e4cac79 Fix spelling mistake 2017-11-27 10:40:39 +00:00
Grégoire Henry
c6b4a83e2b Reset the chain. 2017-11-26 22:49:20 +00:00
Grégoire Henry
667d4fd575 Alphanet: never more than 5 faucet operations per block 2017-11-26 22:49:20 +00:00
Grégoire Henry
a648c34f0a Alphanet: let the number of rolls never reach 100000.
This is a hack! This is a possible mitigation for the 'faucet war'.
2017-11-26 22:49:19 +00:00
Grégoire Henry
7bd5ef32d9 Alpha: better spreading of roll storage
This greatly reduces the time spent reading roll, while it only
slightly increase the time spent while 'freezing' rolls at the end of
a cycle.
2017-11-26 22:49:18 +00:00
Grégoire Henry
485d8bc26a Context: quick-and-dirty leveldb backend for Irmin
This is a dirty and non-optimized backend, it is still faster than the
current git backend.

Main drawbacks:
- the leveldb binding is non-coopertive, the node will
  block while committing a block to the disk ;
- the leveldb use 'string' while internally we use 'cstruct',
  this implies a lot of time-consuming 'memcpy'.
2017-11-26 22:49:17 +00:00
Grégoire Henry
3fcc6df975 Alpha: use recursive removal when possible 2017-11-26 22:49:16 +00:00
Benjamin Canou
450d0dba4e Client: remove trace of the web client. 2017-11-26 23:32:04 +01:00
Pietro Abate
b4573fb323 Client: duplicates results in list versions. 2017-11-26 23:31:58 +01:00
Pietro Abate
4c30016af3 Client: add -protocol to the client command line. 2017-11-26 23:30:38 +01:00
Milo Davis
f2c27c78ab Fixes Github issue #141 (no implementation of EndianBigstring) 2017-11-22 16:07:05 +00:00
Grégoire Henry
f9e6831363 Shell: enforce maximum operation size 2017-11-20 05:03:00 +01:00
Grégoire Henry
84a2f1ee29 Shell: enforce the maximum number of operation per block 2017-11-20 05:03:00 +01:00
Grégoire Henry
3c06879deb Shell: add Error_monad.{iter2_p,iteri2_p} 2017-11-20 04:57:09 +01:00
Grégoire Henry
06a6cf5b9a Proto: allow to update 'max_number_of_operations'
The constant is now defined per block and not per protocol.
Also allows to set a limit per validation pass.
2017-11-20 04:57:09 +01:00
Grégoire Henry
13dd470d06 More renaming: 'mine' -> 'bake' 2017-11-20 04:27:27 +01:00
Grégoire Henry
42681dfea5 Jbuilder: better error reporting 2017-11-20 01:21:54 +01:00
Benjamin Canou
ac62538eb6 Alpha: remove some fixme and assert false 2017-11-17 15:54:36 +01:00
Grégoire Henry
17644e0fa3 Proto: reimplements Storage_functors with iterable indexes
The new `Storage_functors` is now a "functional" equivalent of the
"imperative" `Store_helpers` used in the shell.
2017-11-17 15:54:36 +01:00
Grégoire Henry
b6b59be5fd Jbuilder: minor improvement in error reporting. 2017-11-17 15:54:36 +01:00
Grégoire Henry
a7364f0ed5 Proto_env: remove Context.list
This was a reminder of old-time (before irmin-1.0). It is now replaced
with: `Context.{fold,keys}`.
2017-11-17 15:54:36 +01:00
Grégoire Henry
49b7db258d Move Persist from the shell to the protocol.
It is not used anymore in the shell.
2017-11-17 15:54:36 +01:00
Benjamin Canou
1d357587d0 Node: register error Validator.Inactive_network 2017-11-17 14:13:55 +01:00
Grégoire Henry
659d1aa63a Shell: remove unrequired net_id from network messages 2017-11-17 14:13:55 +01:00
Grégoire Henry
178d839ee1 Shell: remove net_id from the block header. 2017-11-17 14:13:55 +01:00
Grégoire Henry
b7deebaf42 Shell: Remove net_id from the operation header.
The `branch` of the operation contains enough information to induce
the `net_id`, and the code of the validator/prevalidator is now mature
enough to efficiently determine the `net_id` of an incoming operation.
2017-11-17 14:13:55 +01:00
Grégoire Henry
4d2bc49960 Shell: memorize the current list of live blocks and operations 2017-11-17 14:13:55 +01:00
Grégoire Henry
1d71ea5718 Fix docstring attachment 2017-11-17 14:13:55 +01:00
Grégoire Henry
6a00c55c4e Shell: add docstrings for the validator. 2017-11-17 14:13:55 +01:00
Grégoire Henry
119f724e64 Mempool: also broadcast 'branch_{delayed,refused}' operations 2017-11-17 14:13:55 +01:00
Grégoire Henry
3e39f82bee Shell/baker: inline full operation contents in RPC. 2017-11-17 14:13:55 +01:00
Grégoire Henry
1163c19213 Shell: add configuration variable for various timeouts. 2017-11-17 14:13:55 +01:00
Grégoire Henry
910b43726b Shell: add CLI options for bootstrap_threshold 2017-11-17 14:13:55 +01:00
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
c5b5a87ab7
P2p: add regression test for oversized message 2017-11-17 13:46:27 +01:00
Grégoire Henry
529795efd7
Reset the chain 2017-11-17 02:51:39 +01:00
Grégoire Henry
72c414aaeb
P2p: fix bound checks
Credit to `tomjack` on freenode.
2017-11-17 01:58:41 +01:00
Pietro Abate
472f1d53d1 Some docstrings in src/proto/alpha 2017-11-15 13:14:37 +01:00
Pietro Abate
3e1c4008c3 Add docstrings in src/environment/v1/ 2017-11-15 13:14:16 +01:00
Grégoire Henry
1429a6c8e6 Almost too late for copyright update. 2017-11-15 13:13:16 +01:00
Grégoire Henry
b810b360ea Add missing copyright headers. 2017-11-15 13:11:11 +01:00
Benjamin Canou
94295fa281 Micheline: resilient parser for better error reporting 2017-11-15 11:57:37 +00:00
Pietro Abate
102ba49149 Proto: Rename Public_key to Delegates_pubkey 2017-11-14 16:56:15 +01:00
Pietro Abate
de8967540f Proto: store the public key of the manager in the contract 2017-11-14 16:56:15 +01:00
jevonearth
e37974c64f Spelling and consistency fixes
From doing a quick grep, the rest of the code-base tends to hyphenate
the term 'hard-coded'.
2017-11-14 00:22:19 +01:00
jevonearth
e9d1dbcce1 Spelling fixes and grammar improvements 2017-11-14 00:22:19 +01:00
jevonearth
f4937fd8ef Change data dir error messages to use present tense 2017-11-14 00:22:19 +01:00
Grégoire Henry
44364295ee Jbuilder: use --dev for running test and other minor improvments 2017-11-14 00:12:40 +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
Milo Davis
32a466556e Jbuilder: use --dev option 2017-11-13 22:30:35 +01:00
Benjamin Canou
6a38f76956 Reset the chain. 2017-11-13 22:18:17 +01:00
Benjamin Canou
42734ee4a2 Node: Make sure fatal errors are properly printed 2017-11-13 22:18:16 +01:00
Benjamin Canou
602a10651c Prevalidator: log_debug canceled operation fetches 2017-11-13 22:18:16 +01:00
Benjamin Canou
d5a2bd9604 Distributed_db: register new internal errors 2017-11-13 22:17:56 +01:00
Grégoire Henry
6cb428c1a2 Utils/Data_encoding: add missing case in merge_objs. 2017-11-13 11:04:17 +00:00
Grégoire Henry
5beb62c83e P2p: more debug in P2p_connection. 2017-11-13 11:04:17 +00:00
Grégoire Henry
d866b1bfa5 Distributed_db: add primitive for sending 'message'. 2017-11-13 11:04:17 +00:00
Grégoire Henry
e98e175c21 Lwt_pipe: do not force the size function to count bytes.
For now, we were always bounding a queue size by the total amount of
allocated bytes. We might want to use ather kind of bounds (e.g. the
total number of elements).
2017-11-13 11:04:16 +00:00
Grégoire Henry
2d08ba778f Utils: fix Lwt_utils.with_timeout
The function will never fail with `Timeout`, if the concurrent
computation terminates at the same "time".
2017-11-13 11:04:16 +00:00
Grégoire Henry
f0acd2e4da Utils: introduce Lwt_dropbox.
This is a blocking "dropbox" containing a single element. Writing in
the dropbox is a non-blocking operation, that might overwrite the
current element. Reading in the dropbox is blocking while the
'dropbox' is empty.
2017-11-13 11:04:16 +00:00
Grégoire Henry
f63c5acbf5 Distributed_db: inline the header when broadcasting a new block.
This adds a small size overhead in the network message, but in most
cases it will avoid a subsequent 'fetch' of the header.
2017-11-13 11:04:15 +00:00
Grégoire Henry
06873da197 Distributed_db: add an argument timeout to 'prefetch`. 2017-11-13 11:04:15 +00:00
Grégoire Henry
e5c931c6a3 Shell: rename Distributed_db.state -> net_state 2017-11-13 11:04:14 +00:00
Grégoire Henry
16cc5b7ec8 Shell: add more timeout in the prevalidator 2017-11-13 11:04:14 +00:00
Grégoire Henry
f4c045b126 Shell: reintroduce lost call to 'git repack'.
When updating to 'irmin-1.3' we merged the branch too quickly and we
incidentally removed the support for 'git repack'. This induced heavy
usage of inodes.

This is still a temporary hack, while waiting for a proper backend for
irmin (e.g. based LevelDB).
2017-11-13 11:31:09 +01:00
Pietro Abate
b25f35e2b5 Rename last occurences of miner into baker 2017-11-10 13:41:52 +01:00
Grégoire Henry
ed75bc5acd Distributed_db: handle timeout in fetch. 2017-11-10 09:52:35 +00:00
Grégoire Henry
a8a906b1ae Distributed_db: use the error monad for fetch. 2017-11-10 09:52:34 +00:00
Grégoire Henry
f40c418d0f Distributed_db: remove the last "lol-object". 2017-11-10 09:52:33 +00:00
Grégoire Henry
41c82d7481 Distributed_db: handle cancelation of call to fetch.
We properly count the number of waiters and cleanup the table when the
count drops to zero.
2017-11-10 09:52:33 +00:00
Grégoire Henry
2b4e898407 Distributed_db: use a record instead of a tuple. 2017-11-10 09:52:30 +00:00
Grégoire Henry
f3abee1fdf Utils: add Lwt_pipe.pop_all. 2017-11-10 09:52:29 +00:00
Grégoire Henry
1a10504959 Shell: fixme broken invariant in Distributed_db_functors.
The invariant of the `clear` function was not properly inforced by the
module interface. This patch remove the inappropriate invariant and
properly rename the function.
2017-11-10 09:52:29 +00:00
Milo Davis
673f70c5d0 Client Keys: Vanity keys 2017-11-09 12:57:18 +00:00
Benjamin Canou
6de9c68e81 Remove reminiscent trace of Sha256 2017-11-08 23:30:34 +00:00
Grégoire Henry
cb1e5cc396 P2p: missing Lwt_utils.protect in the reader worker. 2017-11-08 23:30:33 +00:00
Grégoire Henry
c9fe53eb10 P2p: reduce the default value of "expected connections". 2017-11-08 23:30:33 +00:00
Grégoire Henry
6f5c51f050 Client: ignore empty files 2017-11-08 23:30:32 +00:00
Grégoire Henry
0e2a751408 P2p: better logging on read timeout. 2017-11-08 23:30:32 +00:00
Grégoire Henry
dad0793353 P2p: better logging on failing "Swap". 2017-11-08 23:30:31 +00:00
Grégoire Henry
ee2cb59731 Remove reminiscent trace of Base48.
A long time ago we were using a custom Base48 encoding instead of the
standard Base58.
2017-11-08 23:30:31 +00:00
Milo Davis
f83e0fd7c0 Node: adds version to data directory 2017-11-08 17:49:19 +01:00
Milo Davis
5109db2813 Node: adds error for directory parsing failure 2017-11-08 17:41:54 +01:00
Alex Coventry
14597b8f7e Utils: OcamlDoc for Data_encoding module.
This patch is coathored with @milodavis, @abate,
and @klakplok.
2017-11-08 16:42:35 +01:00
Pietro Abate
48d7ba29e8 Generate html API documentation
- add a new targert "make doc-html" to generate the html doc via
  jbuilder
- this patch adds public_name to jbuild files for all libraries
2017-11-08 15:55:40 +01:00
Grégoire Henry
0c3a54c2f9 Distributed_db: export disconnect 2017-11-03 15:12:09 +00:00
Grégoire Henry
06e4ec4d9b Distributed_db: proper logging
New category:

- node.distributed_db.p2p_reader

    log all incoming message, from any peer (debug)

- node.distributed_db.scheduler.*

    log the request scheduler of the given ressources (notice/debug),
    where '*' might be:

    - Operation_hash   (individual operation)
    - Block_hash       (block header)
    - operation_hashes (aggregated operation_hashes of a block)
    - operations       (aggregated operations of a block)
    - Protocol_hash    (protocol)
2017-11-03 15:12:08 +00:00
Grégoire Henry
616ca33498 Distributed_db: randomly selecting peer 2017-11-03 15:12:08 +00:00
Grégoire Henry
c05c739475 Distributed_db: reset next_request delay
When registring a new peer as a provider for a ressource,
reset the next request delay.
2017-11-03 15:12:07 +00:00
Grégoire Henry
79ae54625d Distributed_db: fix concurency issue
Some `events` might be lost in case of the timeout happens before
concomitantly. We avoid this by storing the `events` promise into the
worker state.
2017-11-03 15:12:07 +00:00
Grégoire Henry
5c03d92457 Distributed_db: fix concurency issue
Concurent request of the same ressource might insert multiple 'Pending
request' in the request tracking table. Resulting, only one of them
will ever be satisfied and some worker might be stuck for ever. We
avoid this be removing any cooperation between lookup and insertion in
the table.
2017-11-03 15:12:07 +00: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
f7aed9d45d Shell: keep a reference to 'State.t' in 'State.Net.t' 2017-11-03 15:12:05 +00:00
Grégoire Henry
3909baaedc Raw_store: document the Missing_key error 2017-11-03 15:12:05 +00:00
Grégoire Henry
900f16228b Distributed_db: properly reexport the error Missing_data 2017-11-03 15:12:04 +00:00
Grégoire Henry
54a21fdb46 Shell: properly reexport P2p_types.Peer_id. 2017-11-03 15:12:04 +00:00
Grégoire Henry
d4ac1389e3 Shell: add comparison operators to Tezos_data 2017-11-03 15:12:04 +00:00
Grégoire Henry
a7a4564670 Node: add an explicit type for Block_locator.t 2017-11-03 15:12:03 +00:00
Grégoire Henry
201b851f69 Node: store the mempool in State.
This simplifies the interaction between the `validator` and the
`distributed_db` by removing some "callbacks".
2017-11-03 15:12:03 +00:00
Grégoire Henry
57109435d5 Node/Validator: minor renaming 2017-11-03 15:12:02 +00:00
Grégoire Henry
22fd758239 Node/Validator: minor renaming 2017-11-03 15:12:01 +00:00
Milo Davis
79cdb9d023 CLI: No print source flag for large programs 2017-11-03 15:51:11 +01:00
Benjamin Canou
54dd73e28b Michelson: Update the documentation 2017-11-03 15:51:11 +01:00
Benjamin Canou
cdfd7ddcad Michelson: Propagate more annotations 2017-11-03 15:51:11 +01:00
Milo Davis
6c992b58df Michelson: adds LOOP_LEFT, ITER, MAP body 2017-11-03 15:51:11 +01:00
Milo Davis
c387ed823a Michelson: Propagate and check annotations 2017-11-03 15:51:11 +01:00
Benjamin Canou
b22f02868f Michelson: Switch parser/printer/representation to Micheline 2017-11-03 15:51:11 +01:00
Benjamin Canou
e18802b32e Introducing Micheline, the IR of Michelson 2017-11-03 15:39:04 +01:00
Milo Davis
a63ab3b77b Client: makes contracts non-spendable by default 2017-11-03 12:49:29 +00:00
Milo Davis
466831c179 CLI: Autocomplete 2017-11-03 10:59:02 +01:00
Milo Davis
7d20da9a7b CLI: Show existing alias in error message 2017-11-01 21:02:36 +01:00
Arthur Breitman
1bdae93ffd Mining -> Baking 2017-11-01 08:42:37 -07:00
Arthur Breitman
6dd9f2289a mining -> baking, continued 2017-11-01 04:13:23 -07:00
Arthur Breitman
4fb3874fea mining -> baking 2017-11-01 04:07:33 -07:00
Grégoire Henry
108fe7799f Jbuilder: Wrap Tezos_protocol_environment_sigs 2017-10-31 20:33:57 +00:00
Grégoire Henry
05da5a73b8 Jbuilder: Wrap the Tezos_protocol_compiler 2017-10-31 20:33:57 +00:00
Milo Davis
0a7f9a39a9 Switch to Jbuilder
This is a rewrite of the build system with `jbuilder`, with just a
minimal toplevel Makefile for backward compatibility.

This first patch preserves the project architecture, we only gain
proper dependencies handling and always up-to-date `.merlin` files.
A latter patch may split the project in smaller "sub-package",
i.e. multiple `.opam` files.

The embedded versions of the economic protocol are now compiled with
`jbuilder` instead of `tezos-protocol-compiler`, potentially allowing
proper inlining at the cost of slightly-less-stricter
sandboxing. Nevertheless, dynamically loaded protocol are still
compiled with the `tezos-protocol-compiler` and thus strictly
sandboxed ; and a CI rule also checks the proper sandboxing of
embedded protocols.

This patch is coauthored with @hnrgrgr
2017-10-31 20:33:56 +00:00
Milo Davis
a3aa8b60bb Remove Makefiles 2017-10-31 20:33:54 +00:00
Milo Davis
490ce840f9 Remove all .merlin 2017-10-31 20:33:54 +00:00
Milo Davis
47d77acfd7 Rename client_alpha.cmx into client_embedded_alpha.cmx 2017-10-31 20:33:52 +00:00
Grégoire Henry
c40d6f0a55 Rename tezos_protocol_sigs_packer 2017-10-31 20:33:52 +00:00
Grégoire Henry
9c90e2e514 Merge node_compiler_main.ml into node_main.ml 2017-10-31 20:33:51 +00:00
Grégoire Henry
3d21245959 Rename tezos_compiler.ml 2017-10-31 20:33:51 +00:00
Grégoire Henry
dc5c4910cf Rename tezos_compiler_embedded_cmis.ml 2017-10-31 20:33:50 +00:00
Grégoire Henry
2e477ebb26 Rename tezos_protocol_registerer.ml 2017-10-31 20:33:50 +00:00
Grégoire Henry
0afb67dd10 Remove tezos_protocol_packer 2017-10-31 20:33:50 +00:00
Milo Davis
1cb48bbb3a Rename store_sigs.mli into store_sigs.ml 2017-10-31 20:33:49 +00:00
Milo Davis
9a056eef23 Improved error message 2017-10-31 20:33:49 +00:00
Grégoire Henry
dd9e5f5c95 Updater: simplify signature and error registration.
In particular, register the `Ecoproto_error` at the same time the
functor `Environment.Make` is applied.
2017-10-31 20:33:48 +00:00
Milo Davis
90f9f51421 Merge src/client/embedded/alpha/baker/* into src/client/embedded/alpha/ 2017-10-31 20:33:47 +00:00
Milo Davis
ceeb3f7eac Remove dead code 2017-10-31 20:33:46 +00:00
Grégoire Henry
dc2cd4db1c Utils: add Data_encoding.delayed
This allows a better representation for `Error_monad.error_encoding`,
capturing the side-effect of new error registration.
2017-10-31 20:33:45 +00:00
Grégoire Henry
79f2dca33a Shell: fix possible stack overflow in validation.
Ouch! That was a subtle Lwt misuse.

With the current (very-old) validator code, when the validation of
block is waiting to the validation of its predecessor, a "pending" Lwt
thread is created. The validation of the predecessor might also wait
on its own predecessor, potentially creating a very long chain of
pending validation"... If in the process one of the block is tagged
invalid, all the pending "successors" in the chain are 'wakeuped'
immediatly and in sequence, potentially blowing the stack in the
process.

A quick fix is to add an `Lwt_unix.yield` to break the recursion.

A better fix is to not create such long chain of "pending" validations.
See merge request !59.
2017-10-31 17:59:14 +01:00
Milo Davis
93b1f69418 Michelson: Timestamp operations 2017-10-20 08:30:54 +00:00
Benjamin Canou
1344e69934 Michelson: Add documentation for SIZE on lists 2017-10-20 10:08:28 +02:00
Fabrice Le Fessant
26c9047349 Michelson: Implement SIZE on lists 2017-10-20 10:08:03 +02:00
Milo Davis
ecd861ca70 Michelson: Add typechecking context 2017-10-11 17:48:40 +02:00
Grégoire Henry
370112f9b8 Makefile: simplify the compilation process.
This patch is co-authored with: cagdas.bozman@ocamlpro.com

With this patch the economic protocol is now compiled as as
"functor-pack", parameterized over the environment. This will ease the
protocol reusability outside of the tezos source tree (e.g. for a
michelson Web IDE) and will allow proper unit testing of the economic
protocol.

This functorization allows to break the dependency of the
'tezos-protocol-compiler' on various '.mli' of the node, and hence
we don't need anymore the unusual compilation schema:

  a.mli -> b.mli -> b.ml -> a.ml

where 'A' is linked after 'B' but 'a.mli' should still be compiled
before 'b.mli'. This will simplify a switch to 'ocp-build' or 'jbuiler'.
2017-10-11 13:44:09 +00:00
Milo Davis
dc74acba56 Validator: better error message for operations that exceed max size 2017-10-10 14:03:44 +02:00
Milo Davis
b5e53191e2 CLI: New argument parsing and help messages 2017-10-04 15:27:56 +02:00
Milo Davis
5028c8a845 Build: fix dependencies to synchronize irmin and irmin-unix 2017-09-28 11:31:28 +02:00
Grégoire Henry
c2fd13f3ab Reset the chain 2017-09-22 19:11:21 +02:00
Grégoire Henry
76bf007660 Shell/Irmin: tag the commit of the head as the "git branch" 2017-09-22 19:07:54 +02:00
Grégoire Henry
1384253447 Proto: cleanup nonces once the seed is computed 2017-09-22 19:07:54 +02:00
Grégoire Henry
8da6c1cbf4 Client/Nonce: also reveal the last block of cycle.
Fix small delay in nonce revelations when the current head is the last
block of a cycle.
2017-09-22 17:36:43 +02:00
Grégoire Henry
1af2885d72 Proto: fix level_in_cycle.
It was missing the initial 'hop' by `Storage.first_level`.
2017-09-22 17:35:12 +02:00
Milo Davis
e440dfea18 Michelson: adds key_hash type 2017-09-22 15:17:45 +02:00
Milo Davis
46cec6fe76 CLI: adds show identity command 2017-09-22 15:17:43 +02:00
Grégoire Henry
b49491587f Reset the chain. 2017-09-22 11:37:57 +02:00
venator
99d8357115 Storage: store rolls in subpathes named after their first 2 bytes 2017-09-22 11:37:48 +02:00
Benjamin Canou
8b4c94de67 Michelson: add tests and doc for SET_CADDAADR and MAP_CADDAADR 2017-09-21 15:55:39 +02:00
Benjamin Canou
7512f2df0b Michelson: update the documentation to the new syntax. 2017-09-21 15:55:39 +02:00
Milo Davis
f1c6a01a0e Michelson: Adds macros section to docs 2017-09-21 15:55:39 +02:00
Milo Davis
abee4a8e52 Michelson: tests for new parser and macro expander 2017-09-21 15:55:39 +02:00
Benjamin Canou
f50a37e6f4 Michelson: new parser and macro expander. 2017-09-21 15:55:39 +02:00
Milo Davis
d644c32676 Removes webclient 2017-09-13 15:06:48 +02:00
Milo Davis
f184be8ddc Logging of RPCs 2017-08-29 13:12:06 +00:00
Milo Davis
f2f4682606 Contracts: makes origination balance check inclusive 2017-08-29 13:09:43 +00:00
Grégoire Henry
d2ad611c3d Node/Sandbox: allow 'private' address
Allows any kind of 'private' listening address (as defined by IANA)
rather than only allowing `[::1]`.

Also document the error.
2017-08-28 21:25:19 +02:00
Milo Davis
5bf5f09fbc Emacs: vertical stack printing and suggestions 2017-08-24 21:07:58 +02:00
Milo Davis
62a10de372 Michelson: adds SIZE for sets and maps 2017-08-24 16:02:23 +02:00
Grégoire Henry
2c8b46a835 Utils: fix Utils.take_n in presence of duplicates 2017-08-22 22:07:29 +02:00
Zhenya Roubinchtein
662cc6a8ee Michelson: small documentation fix-up. 2017-08-22 20:40:26 +02:00
Alex Coventry
04ce0c1f5d Utils: various doc improvements 2017-08-22 20:39:59 +02:00
Alex Coventry
59b5b2df49 Utils: fix list_rev complexity.
Using fold_left here iterates over the entire list, whereas you only
need to iterate over the first `n` elements.
2017-08-22 20:22:27 +02:00
Grégoire Henry
4c7d4a8348 P2p: comment out dead code 2017-08-22 14:56:15 +02:00
Grégoire Henry
90f9ab4200 Makefile: fix node.top 2017-08-19 12:45:09 +02:00
Grégoire Henry
777ff19dcd Michelson: remove a spurious rule
This should have been removed when floats were removed from the
language.
2017-08-19 12:13:13 +02:00
Bayle Shanks
1436286fd6 doc typo set::MEM (again)
This pull request is identical to recently closed #19, but applied to the current head. I think #19 may have been closed erroneously. If MEM takes as an input a set of elements of type 'elt, then if it also takes another input which is an element to test for membership, clearly that other input must be of type 'elt.

If #19 was not closed erroneously, then please explain, and i will stop reopening this issue.
2017-08-19 10:55:09 +02:00
Milo Davis
8d852993ff Michelson: Add LAMBDA to the language spec 2017-08-18 19:09:46 +00:00
Milo Davis
804c3a4886 Michelson: Enforces ordering on data 2017-08-18 18:20:13 +02:00
Milo Davis
fe871e9ecd Michelson: Fixes reversed list bug 2017-08-18 18:14:17 +02:00
Benjamin Canou
7c586aaf25 Reset the chain (on-disk storage updated) 2017-08-17 14:54:34 +02:00
Grégoire Henry
a01f786de4 Update to irmin.1.3 2017-08-16 11:12:51 +02:00
Grégoire Henry
571e87dacb Update to mtime.1.0 2017-08-16 10:53:43 +02:00
Grégoire Henry
b8ccfeb0cf Makefile: fix utop rules 2017-08-16 10:52:36 +02:00
Benjamin Canou
9ae9f3f4b7 Node: fix misplaced logging message 2017-08-11 15:24:38 +02:00
Milo Davis
299ebe3865 Testing: Tests multiple nodes 2017-08-11 13:01:46 +00:00
Milo Davis
4c31d084e1 Improves error messages and defaults for transfer -arg 2017-08-10 09:03:28 +00:00
Grégoire Henry
30b2cd3e0e Update protocol version 2017-08-08 16:49:56 +02:00
OCamlPro-Iguernlala
fbacfff9e6 P2p: use incremental encoding/decoding 2017-08-08 11:22:05 +02:00
Grégoire Henry
32fa712e13 Prevalidation: minor bugfix. 2017-08-07 08:29:52 +02:00
Benjamin Canou
31a2728909 Michelson: fix typo in runtime error message 2017-07-28 15:05:23 +02:00
Milo Davis
98c96be749 Michelson: updates spec to use int and nat 2017-07-27 18:24:08 +02:00
Fabrice Le Fessant
ed04fc3d01 Michelson: add the .mli of the typechecker 2017-07-26 15:19:05 +02:00
Fabrice Le Fessant
4dd1ef9988 Michelson: replace all numbers with only int and nat 2017-07-26 15:19:05 +02:00
Milo Davis
efdf8c74eb Michelson: better propagation and printing of errors to the client 2017-07-26 14:08:49 +02:00
Justin Carter
df2d6713b5 Alpha: fix spelling of substraction 2017-07-25 17:46:36 +02:00
Justin Carter
8ba1130ee3 Client: derive the public key from the secret key when adding to wallet
That way we do not need to require the public key be added before hand
making the workflow nicer.
2017-07-25 17:46:25 +02:00
Wyatt Sullivan
cca69e409d Node: fix typo in config variable name 2017-07-25 17:46:05 +02:00
Wyatt Sullivan
9b2d0882b1 Node: fix typos in help pages 2017-07-25 17:46:05 +02:00
Milo Davis
7bfaf2fe9b Michelson: removes amount from calling convention 2017-07-25 11:18:43 +02:00
Milo Davis
110e0206e7 Michelson: allow CREATE_CONTRACT to set the spendable flag 2017-07-24 15:57:10 +02:00
Milo Davis
98424be5be Michelson: TRANSFER_TOKENS no longer takes a burn 2017-07-24 15:57:10 +02:00
Milo Davis
74f23b238d Alpha: fix error message for origination amount too low. 2017-07-24 15:57:10 +02:00
Benjamin Canou
26a5338b86 Alpha: adds a command to get the storage of a contract 2017-07-24 15:57:03 +02:00
Milo Davis
a8e984c1af Alpha: adds an RPC to get the storage of a contract 2017-07-24 15:04:46 +02:00
Milo Davis
733be3fa17 Michelson: adds missing instructions from language BNF 2017-07-24 14:42:52 +02:00
Milo Davis
9e1ec0c159 Doc: fixes incorrect usage example 2017-07-24 14:42:16 +02:00
Benjamin Canou
4a9fee3f11 Michelson: also display types inside lambdas. 2017-07-22 23:00:49 +02:00
Benjamin Canou
6e215b7d3b Michelson: Quick and Dirty Emacs mode. 2017-07-22 22:54:36 +02:00
Benjamin Canou
d083add61f Michelson: pretty print typechecking errors when using run program 2017-07-22 00:14:40 +02:00
Milo Davis
77433a5f15 Michelson: show type_map for programs with type errors 2017-07-22 00:14:40 +02:00
Benjamin Canou
4bd9a864cf Shell: document internal distributed_db error, 2017-07-21 16:16:39 +02:00
Milo Davis
23c814c783 Michelson: Adds DEFAULT_ACCOUNT instruction 2017-07-21 10:45:57 +02:00
Milo Davis
b320d43259 Michelson: removes NOP instruction from surface syntax 2017-07-21 10:34:22 +02:00
Milo Davis
b52d4a78d9 Michelson: adds -amount flag to run program 2017-07-19 18:13:03 +02:00
Benjamin Canou
800f4b555d Alpha: fix contract deletion. 2017-07-19 15:39:59 +02:00
Grégoire Henry
5d33b2ce22 Revert "Alpha: add a faucet counter to prevent replay."
This reverts commit 512fde82e4.
2017-06-12 11:08:41 +02:00
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
329c8b185a Shell: implements Chain.live_blocks 2017-06-12 11:07:37 +02:00
Grégoire Henry
8d5155cf32 Proto: return the maximum TTL for operations 2017-06-12 11:07:37 +02:00
Grégoire Henry
747cdb1963 Shell: export Distributed_db.*.clear 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
3b7a314669 Shell/Proto: more complete "begin_construction".
The `begin_construction` function now accepts an optional argument
`proto_header`. This is to be used by a new RPC that ease forging the
shell header of a block (i.e. it will compute the fitness and, in a
near future, the hash of the resulting context).
2017-06-12 11:05:49 +02:00
Grégoire Henry
89814a3d4e Proto/Alpha: more RPCs 2017-06-12 11:05:48 +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
f96ecbf667 Test: inject operation and block atomically 2017-06-12 11:05:46 +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
61eb67cbca Shell: do not keep tracks of 'invalid_successors' 2017-06-12 11:04:43 +02:00
Guillem Rieu
58587258dc Proto/Alpha: add a RPC /context/voting_period_kind 2017-06-12 09:48:02 +02:00
OCamlPro-Iguernlala
4ded0660d6 p2p: check values of some options in P2p.create 2017-06-12 09:39:36 +02:00
Benjamin Canou
afda65fef1 Alpha: fix pre-execution typechecking. 2017-06-11 21:39:55 +02:00
Grégoire Henry
68f9851bce Client: add option for forcing free mining. 2017-06-07 16:41:46 +02:00
Grégoire Henry
3b38720fb6 Minor fix in contract deletion 2017-06-07 16:41:41 +02:00
Grégoire Henry
81b720fee0 Add: tezos-client set delegate ... 2017-06-07 16:38:59 +02:00
Vincent Bernardoff
3b3428ddad Shell: experimental leveldb backend 2017-06-06 23:12:33 +02:00
Benjamin Canou
e69662efa5 Alpha: consistent typechecking of contract storage initialization. 2017-06-06 19:39:46 +02:00
Vincent Bernardoff
35792ccc37 RPCs: fix node crash on SSL write error 2017-06-06 18:58:03 +02:00
Benjamin Canou
90f87bec4a Alpha: update bootstrap parameters. 2017-06-01 01:53:54 +02:00
Benjamin Canou
512fde82e4 Alpha: add a faucet counter to prevent replay. 2017-05-31 16:36:12 +02:00
Benjamin Canou
d351bb1608 Shell: small bugfix preventing mempool cleanup. 2017-05-31 16:36:07 +02:00
Grégoire Henry
443cee2bb3 Fix compilation with lwt.3.0.0 2017-05-07 12:26:27 +02:00
arthur.breitman@gmail.com
d2a2052a2e transfering -> transferring typo fix 2017-05-06 20:53:09 -07:00
Benjamin Canou
442f2d00a0 RPCs: fix missing CORS headers. 2017-04-19 17:27:45 +02:00
Grégoire Henry
9480d411a2 Proto: add an RPC that return all the 'parsed' operations of a block 2017-04-17 00:49:49 +02:00
Grégoire Henry
8a20ec8b0f Shell/Proto: export more information to the RPC handler 2017-04-17 00:49:49 +02:00
Grégoire Henry
fb04fc1c17 Shell: lazy access to all the operations of a block
This prepares the node to the new on-disk storage.
2017-04-17 00:49:49 +02:00
Grégoire Henry
729ca9887d Shell/Protocol: minor renaming 2017-04-17 00:49:49 +02:00
Grégoire Henry
c316dc00a8 Minor improvement in the docker image. 2017-04-14 20:54:43 +02:00
Guillem Rieu
b861d45b14 Proto/Alpha: fix proposal checking location in Amendment.record_ballot 2017-04-14 20:54:43 +02:00
Guillem Rieu
76b9cedcef Tests: add test for switching unanimously to 'demo' protocol 2017-04-14 20:54:43 +02:00
Guillem Rieu
3c44f1dfba Proto/Alpha: replace Vote.set_current_proposal by init_current_proposal 2017-04-14 20:54:43 +02:00
Alain Mebsout
8777349a19 A few fixes to make things more posix compliant in build/test scripts 2017-04-14 17:41:18 +02:00
Grégoire Henry
42a4e4ecc0 Merge branch 'stream-binary-decoding' into 'master'
[data_encoding] add facilities to decode a stream of Mbytes.t incrementally

See merge request !173
2017-04-14 00:08:51 +02:00
OCamlPro-Iguernlala
7d214a19f7 data_encoding: read streams of Mbytes.t, tests, remove dead code (debug functions), expose a function that checks without reading the data 2017-04-13 18:05:41 +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
1b6ecbfc81 Shell/RPC: simplify block-watcher signature 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
2480bfd216 Shell: remove dead code 2017-04-12 12:39:41 +02:00
Grégoire Henry
ab76b8fbf5 Shell/State: consistent use of pred vs. predecessor. 2017-04-12 12:39:41 +02:00
Grégoire Henry
6212af55f1 Proto/Alpha: use uint16 for mining priority. 2017-04-12 12:39:08 +02:00
Grégoire Henry
a731a47d3c Proto: explicit fitness/timestamp in the signature
This remove the data fomr the context where they "duplicate" the
block header.
2017-04-12 12:39:04 +02:00
Grégoire Henry
3b5a3eb509 Client: minor fix in the daemon. 2017-04-10 23:30:43 +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
e11e9c9ac5 Shell/P2p: Split the unit tests in smaller atom.
And use more `Error_monad`...
2017-04-10 23:14:31 +02:00
Grégoire Henry
413bddcd96 Shell/P2p: propagate all errors to {raw_,}write_sync.
Those functions are only used in the testsuite.
2017-04-10 23:08:16 +02:00
Grégoire Henry
c187a0b792 Shell/P2p: implements raw_write_sync.
For testing only: it allows to send 'gardled' messages to a peer.
2017-04-10 23:08:16 +02:00
Grégoire Henry
c2a4db2d81 Shell/P2p: propagate disconnection errors through the pool. 2017-04-10 23:08:16 +02:00
Grégoire Henry
4523a67e7d Shell/P2p: fix connection close on read error 2017-04-10 23:08:16 +02:00
Grégoire Henry
4537c8780e Shell: introduce Error_monad._assert. 2017-04-10 23:08:16 +02:00
Benjamin Canou
18e2edf6f4 Client: minor client output fixes and enhancements. 2017-04-10 18:31:37 +02:00
Grégoire Henry
dbdcca7dbb Client/Alpha: simplify Client_proto_context 2017-04-10 18:31:37 +02:00
Grégoire Henry
a6c7f355cc Test: simplify Makefile 2017-04-10 18:31:37 +02:00
Grégoire Henry
166801fc77 Client: more Error_monad in Cli_entries. 2017-04-10 18:31:37 +02:00
Grégoire Henry
cfb7e35914 Client: a bit of Error_monad in Hash 2017-04-10 18:31:37 +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
Benjamin Canou
f26dfdbe8e RPC: fix CORS preflight. 2017-04-10 18:23:24 +02:00
Vincent Bernardoff
329b72d1aa RPC: batch operation parsing/retrieval 2017-04-04 16:11:18 +02:00
OCamlPro-Iguernlala
cb2aa6ea2b [Data_encoding.Binary] add a function 'to_bytes_list' to encode a given data as a list of 'small' blocks 2017-04-02 16:29:19 +02:00
Grégoire Henry
5449cbbfe6 Proto/Alpha: use record for mining slot. 2017-04-02 16:18:44 +02:00
Grégoire Henry
ef3180c561 Shell: Smaller Net_id. 2017-04-02 15:40:04 +02:00
Grégoire Henry
ffc8fa0383 RPC: rebind 'complete' for blocks and operations. 2017-04-02 15:33:32 +02:00
OCamlPro-Iguernlala
a330f3bcc5 [data_encoding] use MBytes.{get/set}_char to read/write binary data instead of int8 2017-03-31 17:46:44 +02:00
Guillem Rieu
9b3cde5df9 Client: add Client_proto_context.delegate_contract function 2017-03-31 17:26:04 +02:00
Benjamin Canou
5bfe8f90f2 Alpha: document and classify more errors. 2017-03-31 17:03:02 +02:00
Benjamin Canou
62ed003957 Alpha: remove assets. 2017-03-31 17:02:52 +02:00
Benjamin Canou
2ed66ea569 Alpha: take origination burn from source and not destination. 2017-03-31 17:02:36 +02:00
Benjamin Canou
02a67a7976 Alpha: fix typo in error registration. 2017-03-31 17:02:20 +02:00
Grégoire Henry
24b5290a74 Opam: use the libev backend of Lwt. 2017-03-31 16:58:59 +02:00
Grégoire Henry
852ba95a3c Client: do no pat parse the config file and Sys.argv twice. 2017-03-31 16:49:40 +02:00
Grégoire Henry
1879c4359f Merge remote-tracking branch 'ocp/bugfix-in-data-encoding' 2017-03-31 16:48:07 +02:00
Grégoire Henry
c2bf738079 Merge branch 'merkle' 2017-03-31 16:47:32 +02:00
Vincent Bernardoff
0a48a2e14a alpha: expose to_int32 for some types 2017-03-31 16:46:55 +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
Grégoire Henry
e273cfa07f Shell/Distributed_db: allow to precheck data. 2017-03-31 01:19:34 +02:00
Grégoire Henry
a6307c40cf Shell: add unit tests for Merkle tree 2017-03-31 01:19:33 +02:00
Grégoire Henry
9097809589 Shell: Merkle tree of operations 2017-03-31 01:19:33 +02:00
OCamlPro-Iguernlala
669a0249ca add some asserts in data_encoding 2017-03-29 18:33:39 +02:00
OCamlPro-Iguernlala
dc32decd05 [bugfix in data_encoding] When writing a float (to binary format), MBytes.set_double should be used instead of MBytes.set_float (Float _ encodes doubles in the encoding, not singles) 2017-03-29 18:32:46 +02:00
OCamlPro-Iguernlala
f96fbe7d31 [bugfix in data_encoding] When reading a float (from binary format), MBytes.get_double should be used instead of MBytes.get_float (Float _ encodes doubles in the encoding, not singles) 2017-03-29 18:30:15 +02:00
Benjamin Canou
66cb6a8567 Alpha: remove unused storage key. 2017-03-28 14:37:26 +02:00
Benjamin Canou
31bc331063 Switch to OCaml version 4.04.0. 2017-03-28 14:37:26 +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
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
Grégoire Henry
7e1cc171cc Shell: fix unhandled exception in io_scheduler. 2017-03-28 14:37:15 +02:00
Benjamin Canou
c46950b903 Shell: repack the context every 10 commits. 2017-03-16 18:49:31 +01:00
Benjamin Canou
d99d8f88a1 Utils: add [Lwt_utils.Idle_waiter]. 2017-03-16 18:49:31 +01:00
Benjamin Canou
70e31054d1 Alpha: classified public key revelation error. 2017-03-16 18:49:31 +01:00
Guillem Rieu
4e82e94ef4 Client: add tags to aliases (enabled for contracts). 2017-03-16 18:49:31 +01:00
Guillem Rieu
9c2564391c Client: lift some commands into functions. 2017-03-16 18:49:31 +01:00
Guillem Rieu
83f2e0dcd3 Client: switch to JSON config file and remove config-file dependency. 2017-03-16 18:49:31 +01:00
Guillem Rieu
04ef832ad3 Client: add optional seed argument to Client_keys.gen_keys 2017-03-16 18:49:31 +01:00
Guillem Rieu
c6c81345a8 RPC: add answer functions with HTTP code argument to RPC interface. 2017-03-16 18:49:31 +01:00
Guillem Rieu
cc44053229 RPC: add HTTP methods and Content-Type headers. 2017-03-16 18:49:31 +01:00
Guillem Rieu
a2758253ea Utils: add [merge_list2] function 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
b48187d43b Client: fix .merlin file. 2017-03-16 18:49:31 +01:00
Arthur Breitman
76fad5a3db Economic = economique
Economical = econome
2017-03-15 08:00:53 -07:00
Grégoire Henry
826f2ea4ba P2p: implements peer swapping 2017-03-14 11:56:42 +01:00
Grégoire Henry
cf0d6d2580 Typo 2017-03-14 11:56:42 +01:00
Benjamin Canou
b5f0021016 Shell: add RPC to list network protocol versions. 2017-03-13 19:08:08 +01:00
Grégoire Henry
16bae53015 Makefile: do not compile the (old) webclient 2017-03-13 19:08:08 +01:00
Grégoire Henry
2d828060d5 Client: do not fail when the protocol is unknown... 2017-03-13 19:08:08 +01:00
Benjamin Canou
7ba73a5955 Alpha: classify and document mining errors. 2017-03-10 18:33:46 +01:00
Benjamin Canou
259972a3dd Alpha: classify and document qty errors. 2017-03-10 18:33:46 +01:00
Benjamin Canou
9caef6fae4 Alpha: classify and document contract errors. 2017-03-10 18:33:46 +01:00
Vincent Bernardoff
d845dc9740 Alpha: documentation of RPC wrappers. 2017-03-10 18:33:46 +01:00
Grégoire Henry
c2ae0b278a OPAM: more version contraint 2017-03-10 16:27:21 +01:00
Grégoire Henry
82628a6ca2 Client: avoid unrequired monitor 2017-03-09 14:38:39 +01:00
Vincent Bernardoff
556c965af7 RPC server: use ~on_exn 2017-03-09 14:38:39 +01:00
Grégoire Henry
ab4015b189 Shell: fix (part of) the memory leak in validator 2017-03-09 14:38:39 +01:00
Grégoire Henry
ec12edeb91 Proto/Alpha: fix mining right timestamp 2017-03-09 14:38:38 +01:00
Grégoire Henry
39403e243e Shell: avoid operation leaks 2017-03-09 14:38:38 +01:00
Benjamin Canou
3b483811f5 Client/genesis: option to set the timestamp of the activation block. 2017-03-09 14:38:38 +01:00
Grégoire Henry
ccfdaa6bd0 FunView: fix recursive removal. 2017-03-09 14:38:38 +01:00
Grégoire Henry
534dc6af9d Shell: the genesis block should not flag the node as 'bootstraped' 2017-03-09 14:38:38 +01:00
Grégoire Henry
8453a69e0b Shell: no duplicates in Prevalidation 2017-03-09 14:38:38 +01:00
Grégoire Henry
9dd2e4963f Makefile: add --warn-error 8 (incomplete pattern-matching) 2017-03-07 13:12:23 +01:00
Vincent Bernardoff
63e5ea5e79 Client: Add "network stat" command. 2017-03-07 13:07:18 +01:00
Vincent Bernardoff
9e823c7dfb typo 2017-03-07 13:04:14 +01:00
Grégoire Henry
ee870722cf Shell: fix Utils.read_file 2017-03-03 18:20:38 +01:00
Grégoire Henry
49392afd73 Validation: fetch new protocol on demand. 2017-03-03 18:20:38 +01:00
Benjamin Canou
1d13908152 Alphanet: dictator in the alpha protocol 2017-03-03 18:20:38 +01:00
Benjamin Canou
7187f2d879 Proto: classify and document some errors. 2017-03-03 18:20:38 +01:00
Benjamin Canou
015f3edff3 Shell-level commit messages and timestamps. 2017-03-03 18:20:38 +01:00
Benjamin Canou
2e96a1377e Genesis: unused error. 2017-03-03 18:20:37 +01:00
Grégoire Henry
bed575d506 Baker: fix operation ordering... 2017-03-02 16:19:22 +01:00
Grégoire Henry
257a3972df Shell: do not forbid to restart the node. 2017-03-02 16:19:19 +01:00
Benjamin Canou
23869991ca Alpha: update .merlin. 2017-03-02 16:19:12 +01:00
Grégoire Henry
b087042d83 Shell: do not split the validation scheduler... 2017-03-02 16:19:06 +01:00
Benjamin Canou
85055aace6 Shell: do not validate blocks that don't increase the timestamp or fitness. 2017-03-02 16:18:51 +01:00
Grégoire Henry
cb90e3e5c5 Lwt: temporary Hack (waiting for Pierre's expertise) 2017-03-02 16:18:44 +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
2b938802f3 Alphanet: trivial faucet 2017-03-02 16:18:02 +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
de050bfee1 Shell: tezos-node identity should read the configuration file 2017-02-27 22:29:06 +01:00
Grégoire Henry
0b27503f30 Shell: exit properly on SIGTERM. 2017-02-27 22:28:59 +01:00
Grégoire Henry
348aec3d10 Makefile: more fixes...
Sigh!
2017-02-27 17:21:37 +01:00
Grégoire Henry
3edace2720 Makefile: fix various dependencies errors 2017-02-27 09:49:03 +01:00
Grégoire Henry
eb89877d58 Shell: fix propagation of error in inject_block 2017-02-26 02:03:06 +01:00
Grégoire Henry
05ed4e7557 Error_monad: allow binary serialization of error. 2017-02-26 02:02:33 +01:00
Grégoire Henry
b461b6c0c6 Shell: protection against serialisation error. 2017-02-26 01:25:47 +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
0b33e5a6da Shell/RPC: Implements `/block/<hash>/predecessors 2017-02-26 00:23:52 +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
863869eb40 Proto/Env: remove Bytes.unsafe_of_string 2017-02-25 18:18:35 +01:00
Grégoire Henry
c277b5b56d Proto: let genesis be agnostic on fitness 2017-02-25 18:14:06 +01:00
Grégoire Henry
e88e4b0848 Shell: Proto.fitness -> Context.set_fitness.
Intead of providing a `fitness` function, an economic protocol should
now call `Context.set_fitness`.

This simplify the shell's code and avoid complexity on protocol
change. Previously the fitness of a context produced by the old protocol
had to be read by the new protocol. Now, the shell read the context
without requesting the help of the economic protocol.
2017-02-25 18:14:06 +01:00
Grégoire Henry
3c035da25c Proto: unit testing for the genesis protocol
- Let the `sandbox` change the public key
- Adapt `test_basic.ml` and `test_basic.sh`
- Do not duplicate the fitness in the block header

Client:
- allow the `bootstrap` command to lookup keys in the `head` rather than
  in `genesis`.
2017-02-25 18:14:06 +01:00
Grégoire Henry
639b4c0c5c Shell: add Data_encoding.unit 2017-02-25 18:14:06 +01:00
Grégoire Henry
a2f1b6c889 Client: introduce Client_blocks 2017-02-25 18:14:06 +01:00
Vincent Bernardoff
8f5f5a2106 Genesis protocol 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
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
26ce119072 Alphanet: bootstrap accounts should always have 1/2 of the mining rights 2017-02-25 18:14:05 +01:00
Grégoire Henry
300dd5ea6d Makefile: praise the return of utop.
The Makefile is really hackish...
2017-02-25 18:14:05 +01:00
Benjamin Canou
d0e9d0d584 Proto: allow decreasing baking slot durations. 2017-02-25 18:05:17 +01:00
Grégoire Henry
09dcb59c14 Makefile: praise the return of utop.
The Makefile is really hackish...
2017-02-24 18:02:24 +01:00
Benjamin Canou
bc16b027c2 Proto: allow origination of two contract with the same properties.
fixes #124
2017-02-24 16:24:27 +01:00
Grégoire Henry
69ebe7d0cc Shell: minor doc improvement in RPC. 2017-02-24 16:22:56 +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
Pierre Chambart
a23d718515 Add utils/Watcher 2017-02-24 16:20:59 +01:00
Vincent Bernardoff
70491aea8c Utils: Moving_average: use int64 for total 2017-02-24 16:20:59 +01:00
Vincent Bernardoff
92c339f732 P2P: more types 2017-02-24 16:20:59 +01:00
Grégoire Henry
fc53f3b233 Switch to Base58.
Base48 was fun but... hell yeah... let's stay standard.

Public encoding of hash:

```
  Block:      "B..." (len: 51)
  Operation:  "o..." (len: 51)
  Protocol:   "P..." (len: 51)

  Ed25519:    "tz1.." (len: 36)
  Contract:   "TZ1.." (len: 36)

  NetworkdId: "id.." (len: 30)
```

Other internal prefixes (in the RPC):

```
  Hash of Michelson's expression: "expr..." (len: 54)

  Ed25519 public key: "edpk..." (len: 54)
  Ed25519 secret key: "edsk..." (len: 98)
  Ed25519 signature:  "edsig.." (len: 99)

  Hash of a random seed nonce: "nce...." (len: 53)
  Random seed:                 "rng...." (len: 53)
```
2017-02-24 15:44:21 +01:00
Vincent Bernardoff
efc6d285c6 Shell: limit known points table size
* Gc events still need to be recorded
2017-02-16 13:23:01 +01:00
Grégoire Henry
0a3ad7de53 Client: add rpc call ... with '{json}' 2017-02-15 15:26:39 +01:00
Grégoire Henry
9a0ac6b837 Client/Baker: improve logging. 2017-02-15 15:26:39 +01:00
Benjamin Canou
f77a2544cc Client/Baker: fix baking of the first block. 2017-02-15 15:26:39 +01:00
Grégoire Henry
34e1764bce Client/Baker: let the baking daemon reveal nonces 2017-02-15 15:26:39 +01:00
Benjamin Canou
f7a70f355c Node: shutdown on an RPC server error. 2017-02-15 15:26:39 +01:00
Benjamin Canou
8f618a0f94 Proto: remove voting proposal cleanup when there is none. 2017-02-15 15:26:39 +01:00
Cagdas Bozman
a7c8975ec6 Proto: check the 'delegatable-ity' before to remove a delegate key.
We use the `remove` function instead of `delete` to check the
delegatable-ity to avoid a storage error (`remove` does nothing if the
bucket does not exist).
2017-02-15 15:26:39 +01:00
Grégoire Henry
d475d1ac29 Proto: fix freeze_rolls_for_cycle
That's what happen when no-one review the code...
2017-02-15 15:26:39 +01:00
Pierre Chambart
90c5314c4f Proto: Initialize a nonce for the genesis block 2017-02-15 15:26:39 +01:00
Grégoire Henry
c8376198c8 Proto: refill bootstrap contracts at the end of a cycle 2017-02-15 15:26:39 +01:00
Grégoire Henry
55e2429758 P2p: more debug traces. 2017-02-15 15:26:39 +01:00
Grégoire Henry
48da8299a6 P2p: various small fixes.
* fix bad "locking" in `p2p_io_scheduler.shutdown`
* add missing exception handler in `P2p_io_scheduler`
* wake-up `P2p.recv_any` when a new connection is established
* reintroduce version negotiation
* fix typo in greylisting
2017-02-15 15:26:39 +01:00
Vincent Bernardoff
6d41b3d38c Shell: Improve the CLI of tezos-node
* Use subcommands:
  * `tezos_node run`
  * `tezos_node config`
  * `tezos_node identity`
* Regroup all on-disk data in `--data-dir`
* Split `Node_main` in multiple files.
* Add DNS resolution for `--net-addr` and `--rpc-addr`
* Hardcode `bootstrap.tezos.com` as bootstrap peer(s)
* Add `--no-bootstrap-peers`
* Rename `--expected-connections` -> `--connections`
2017-02-15 15:26:17 +01:00
Grégoire Henry
42f118f486 Publish some baker's code. 2017-01-26 13:38:25 +01:00
Vincent Bernardoff
9090559510 Node: typo 2017-01-25 00:18:11 +01:00
Grégoire Henry
ec0e7d4d48 Merge branch 'lwt_pipes_limit' into 'master'
Lwt_pipe: limit by content size in bytes

See merge request !137
2017-01-24 00:05:07 +01:00
Grégoire Henry
0820744619 Lwt_pipe: minor style issue 2017-01-23 23:59:16 +01:00
Grégoire Henry
854e2f0697 Merge branch 'work-on-script'. 2017-01-23 23:24:16 +01:00
Grégoire Henry
c194045f6e Shell: Add missing CLI arguments.
- fix the semantics of `--base-dir` and `--sandbox`:
  -  `--sandbox path` becomes : `--base-dir path --sandbox`
  -  `--sandbox path --sandbox-param file.json` becomes `--base-dir path --sandbox=file.json`
- added `--generate-identity` for generating the node cryptographic identity and the associated stamp of proof-of-work. The amount of required work can be adjusted with `--expected-pow f` where `f` is float value such as the 256-bit stamp should be below `2^(256-f)`. For instance `--expected-pow 16` requires 16 zero-bits.
- added all the new p2p parameters: queue size, buffer size, ...
2017-01-23 22:28:44 +01:00
Grégoire Henry
b228904bc7 Node: more CLI argument 2017-01-23 22:15:36 +01:00
Grégoire Henry
2da0c83b5a P2p: postpone the first maintenance step. 2017-01-23 22:01:35 +01:00
Grégoire Henry
5ee3581d60 P2p: fix in P2p_maintenance 2017-01-23 22:01:35 +01:00
Grégoire Henry
c87e88d84d Shell: minor fix in RPC description 2017-01-23 22:01:35 +01:00
Grégoire Henry
197ac28f0b Shell: Add Cryptobox.target_of_float
[target_of_float f] is `2 ^ (256 - f)`.
2017-01-23 21:33:01 +01:00
Grégoire Henry
3a70d88fe6 Shell: animated generation of P2p.Identity 2017-01-23 21:31:30 +01:00
Grégoire Henry
5e1eddf681 Shell: Use Error_monad in Data_encoding_ezjsonm 2017-01-23 21:31:30 +01:00
Grégoire Henry
a65ad52620 Shell: improve Lwt_utils 2017-01-23 21:31:30 +01:00
Grégoire Henry
31872eb1b1 Shell: Improve Logging 2017-01-23 21:31:30 +01:00
Grégoire Henry
866e7add2f Shell: improve Utils 2017-01-23 21:31:30 +01:00
Vincent Bernardoff
1e4d090e2c Lwt_pipe: limit by content size in bytes 2017-01-23 18:03:00 +01:00
Grégoire Henry
d87a6cd556 Docker: integration in CI
And minor fix:

- introduce configuration file for OCaml and alpine versions
- add missing `libssl1.0` in docker image
- remove the split call to `install_build_deps` (not required anymore)
- rename scripts
2017-01-23 11:28:04 +01:00
Grégoire Henry
52fab9528c P2p: add error for invalid authentification 2017-01-23 09:18:56 +01:00
Vincent Bernardoff
ce986c4a9c Shell: sign Ack message 2017-01-23 09:13:41 +01:00
Benjamin Canou
d72746c990 Michelson (docs): fixed forward example. 2017-01-20 13:25:28 +01:00
Benjamin Canou
52ec257e1d Michelson (docs): fixed scrutable reservoir example. 2017-01-20 13:25:28 +01:00