Commit Graph

4188 Commits

Author SHA1 Message Date
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
96953d9895 Michelson: Adds typechecking test for michelson-lang.com contracts 2017-11-03 15:51:11 +01:00
Milo Davis
5ce950e168 Emacs: close types buffer when editing buffer closes 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
2fa77489bc CLI: completion with aliases and alphanet 2017-11-03 10:59:02 +01:00
Milo Davis
466831c179 CLI: Autocomplete 2017-11-03 10:59:02 +01:00
Thomas Refis
8707f0e08b v0.9.115.24+69 2017-11-02 09:29:38 +00: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
Grégoire Henry
c5d15d3640 Test/Alpha: allows distinct port for distinct test. 2017-10-31 20:33:53 +00:00
Milo Davis
47d77acfd7 Rename client_alpha.cmx into client_embedded_alpha.cmx 2017-10-31 20:33:52 +00:00
Milo Davis
26b05ae292 Remove unused open 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