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
Benjamin Canou
5e06b9c719
Michelson (docs): fixed reservoir example.
2017-01-20 13:25:28 +01:00
Benjamin Canou
3a149af667
Utils: include error id in the default error pretty printer.
2017-01-20 13:25:28 +01:00
Benjamin Canou
c472dbdfa4
Michelson: towards better typechecking error reports.
2017-01-20 13:25:28 +01:00
Benjamin Canou
3cce0f3d1d
Michelson: fix and extend macro expansion.
...
fixes #114
fixes #115
2017-01-20 13:25:14 +01:00
Benjamin Canou
507c46bbcb
Michelson: get rid of tagged data notation.
2017-01-20 13:25:14 +01:00
Benjamin Canou
26e1adc143
Michelson: rename void into unit.
2017-01-20 13:25:14 +01:00
Benjamin Canou
98859dbf30
Michelson (docs): rewrite intro + doc fixes.
2017-01-20 13:25:09 +01:00
Benjamin Canou
6bfbb0d300
Michelson: enforce case sensitivity.
2017-01-20 13:24:46 +01:00
Benjamin Canou
8b8ce63590
Michelson: fix missing type equality.
...
fixes #111
2017-01-20 13:24:24 +01:00
Grégoire Henry
26ce72bc18
P2p: remove functors and rename recv
into recv_any
.
...
This allows to export the underlying `P2p_connection_pool.recv`
that will be used in the refactored distributed DB.
2017-01-19 10:26:45 +01:00
Vincent Bernardoff
e1692ed9bf
Shell: use the new P2P backend
2017-01-19 10:26:45 +01:00
Grégoire Henry
d9fc93a5c0
Shell: implement P2p_{maintenance,discovery}
.
2017-01-19 10:26:45 +01:00
Grégoire Henry
b694a62810
Shell: implement P2p_{connection_pool,welcome}
2017-01-19 10:26:45 +01:00
Grégoire Henry
6d47cb2c8f
Shell: implement P2p_connection
2017-01-19 10:21:21 +01:00
Grégoire Henry
2ed8bf2cfa
Shell: implement P2p_io_scheduler
2017-01-19 10:21:21 +01:00
Vincent Bernardoff
7f091b38b9
Shell: add Crypto_box.Public_key_hash
2017-01-19 10:21:21 +01:00
Vincent Bernardoff
0b6aa16ca7
Shell: improve logging (prepend the current time)
2017-01-19 10:21:21 +01:00
Vincent Bernardoff
5eb8d0077a
Shell: add Data_encoding.Binary.fixed_length
2017-01-19 10:21:21 +01:00
Vincent Bernardoff
22ae4dbf45
Shell: simplify the signature of Hash.Hash_table
2017-01-19 10:21:21 +01:00
Vincent Bernardoff
1f7f9b369d
Shell: improve Lwt_pipe
2017-01-19 10:21:21 +01:00
Vincent Bernardoff
6b3e002285
Shell: improve Lwt_utils
2017-01-19 10:21:21 +01:00
Vincent Bernardoff
0027d70158
Shell: improve Error_monad
2017-01-19 10:21:17 +01:00
Vincent Bernardoff
98fd45ab9f
Shell: add Ring
2017-01-19 10:21:17 +01:00
Vincent Bernardoff
ad035d7679
Shell: add Time.{Map,Set,Table}
2017-01-19 10:21:17 +01:00
Vincent Bernardoff
a891e23741
Shell: improve Utils
...
- unopt_map
- list_{sub,rev_sub}
- take_n
- Bounded
2017-01-19 10:21:17 +01:00
Grégoire Henry
df81d95614
Shell: update to lwt.2.7.0
2017-01-14 13:12:55 +01:00
Grégoire Henry
7689021810
CI: less build artifacts
2017-01-02 14:49:56 +01:00
Eitan Chatav
28b4c8e6ef
Minimal attacker node.
2017-01-02 13:33:11 +01:00
Grégoire Henry
61bea21033
Merge branch 'rpc-tls' into 'master'
...
Rpc tls
See merge request !128
2017-01-02 09:36:39 +01:00
Grégoire Henry
77ba592448
Opam: depends on ssl
.
2017-01-02 09:21:36 +01:00
Arthur Breitman
86039e5d88
typo left/right in language description
2016-12-25 08:39:49 -08:00
Benjamin Canou
63aeab5bb9
RPC: use the external TLS implementation.
2016-12-14 16:45:37 +01:00
Benjamin Canou
8360b4e407
RPC: fixes some comments.
2016-12-14 16:40:42 +01:00
Benjamin Canou
8264ec111a
Client: do not eat some error messages.
2016-12-14 16:39:42 +01:00
Vincent Bernardoff
cdb34ca7d3
RPC: TLS bugfixes
2016-12-13 01:52:55 +01:00
Vincent Bernardoff
59881cde32
RPC: Add TLS on the client
2016-12-13 00:47:23 +01:00
Vincent Bernardoff
77506ac4b5
RPC: Fix doc
2016-12-13 00:45:46 +01:00
Vincent Bernardoff
42b30f7bd2
RPC: Add TLS
2016-12-13 00:45:46 +01:00
Vincent Bernardoff
01fe34bc4b
Node: catch correct P2P exn
2016-12-09 18:18:59 +01:00
Grégoire Henry
5c428a5ea3
CI: avoids broken packages
...
Otherwise:
```
The actions to process have cyclic dependencies:
- install bos.0.1.4 -> install base64.2.1.2 -> install js_of_ocaml.2.8.3 -> install mtime.0.8.3 -> install bos.0.1.4
- install bos.0.1.4 -> install base64.2.1.2 -> install js_of_ocaml.2.8.3 -> install logs.0.6.2 -> install bos.0.1.4
```
2016-12-09 11:19:24 +01:00
Grégoire Henry
f7f5f21e46
Fix make build-deps
...
The amended script is now able to handle new dependency in the opam file.
It also abloe to handle `test` attributes.
2016-12-08 16:33:01 +01:00
Vincent Bernardoff
224e5d8c73
P2P: Add counters in peer_info
2016-12-06 14:12:18 +01:00
Vincent Bernardoff
92f78b29e4
P2P: recv: return size read
2016-12-06 14:12:18 +01:00
Vincent Bernardoff
2b27a1ffbe
P2P: Discovery: avoid unneeded connections
2016-12-06 14:12:18 +01:00
Vincent Bernardoff
c2249056d7
P2P: Do not send unauthenticated Advertise msgs
2016-12-06 14:12:18 +01:00
Vincent Bernardoff
6a1265255f
P2P: refactor for less indenting
2016-12-06 14:12:18 +01:00
damian
517893f707
RPC: Add CORS headers
2016-12-06 13:58:21 +01:00
Vincent Bernardoff
4e9c54efa9
node_main: do not override cfg file values
2016-12-06 13:54:20 +01:00