OCamlPro-Iguernlala
4ded0660d6
p2p: check values of some options in P2p.create
2017-06-12 09:39:36 +02:00
Vincent Bernardoff
3b3428ddad
Shell: experimental leveldb backend
2017-06-06 23:12:33 +02:00
Vincent Bernardoff
35792ccc37
RPCs: fix node crash on SSL write error
2017-06-06 18:58:03 +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
Benjamin Canou
442f2d00a0
RPCs: fix missing CORS headers.
2017-04-19 17:27:45 +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
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
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
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
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
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
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
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
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
e273cfa07f
Shell/Distributed_db: allow to precheck
data.
2017-03-31 01:19:34 +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
Guillem Rieu
83f2e0dcd3
Client: switch to JSON config file and remove config-file dependency.
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
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
Benjamin Canou
b5f0021016
Shell: add RPC to list network protocol versions.
2017-03-13 19:08:08 +01:00
Vincent Bernardoff
d845dc9740
Alpha: documentation of RPC wrappers.
2017-03-10 18:33:46 +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
39403e243e
Shell: avoid operation leaks
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
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
49392afd73
Validation: fetch new protocol on demand.
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
Grégoire Henry
257a3972df
Shell: do not forbid to restart the node.
2017-03-02 16:19:19 +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
22e3aee362
Alphanet: remove the secret bootstrap
keys
2017-03-02 16:18:09 +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
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
b461b6c0c6
Shell: protection against serialisation error.
2017-02-26 01:25:47 +01:00
Grégoire Henry
0b33e5a6da
Shell/RPC: Implements `/block/<hash>/predecessors
2017-02-26 00:23:52 +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
Vincent Bernardoff
8f5f5a2106
Genesis protocol
2017-02-25 18:14:06 +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
300dd5ea6d
Makefile: praise the return of utop
.
...
The Makefile is really hackish...
2017-02-25 18:14:05 +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
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
Benjamin Canou
f7a70f355c
Node: shutdown on an RPC server error.
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
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
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
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
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
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
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
Grégoire Henry
61bea21033
Merge branch 'rpc-tls' into 'master'
...
Rpc tls
See merge request !128
2017-01-02 09:36:39 +01:00
Benjamin Canou
8360b4e407
RPC: fixes some comments.
2016-12-14 16:40:42 +01:00
Vincent Bernardoff
cdb34ca7d3
RPC: TLS bugfixes
2016-12-13 01:52:55 +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
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
Benjamin Canou
e7c39578b4
Extract the js_of_ocaml compatible part of utils.
2016-12-01 18:27:53 +01:00
Benjamin Canou
69f682357f
Add hooks to the RPC server to handle static files.
2016-12-01 15:52:31 +01:00
Vincent Bernardoff
1ffe2db277
P2P: Minor changes
2016-12-01 13:52:05 +01:00
Vincent Bernardoff
bdb2d20f05
P2P: Introduce a worker dedicated to user events
2016-12-01 13:52:05 +01:00
Vincent Bernardoff
a832c2069f
P2P: Do not log ``ordinary'' errors
2016-12-01 13:52:05 +01:00
Vincent Bernardoff
e1d6df6e99
P2P: Do not accept unauthenticated Advertise msgs
2016-12-01 13:52:05 +01:00
Vincent Bernardoff
5f8b74e96c
P2P: Cancel MA computations on client disconnect
2016-12-01 13:52:05 +01:00
Vincent Bernardoff
158447416b
Shell: Count sent and received bytes in P2p
.
2016-12-01 13:52:05 +01:00
Vincent Bernardoff
56a58cc962
Shell: use bounded Lwt_pipe
in P2p
2016-12-01 13:52:05 +01:00
Vincent Bernardoff
dc2084d993
Shell: export P2p.gid
2016-12-01 13:52:05 +01:00
Vincent Bernardoff
41d5bbe989
Shell: Use some Error_monad
in P2p
2016-12-01 13:52:05 +01:00
Vincent Bernardoff
d41c05a066
Shell: minor rewording in P2p
2016-12-01 13:52:05 +01:00
Vincent Bernardoff
fdff344989
Shell: minor cosmetics in p2p.ml
2016-12-01 13:52:05 +01:00
Vincent Bernardoff
bc7f4b48e2
RPC: launch: remove unused argument
2016-11-29 16:41:17 +01:00
Grégoire Henry
2a43eeaa7f
P2P: properly handle End_of_file
.
2016-11-26 11:49:07 +01:00
Grégoire Henry
17475aa743
Shell: switch to Blake2b ( closes #87 #89 )
...
Also drop the dependencies on Cryptokit.
2016-11-25 19:46:50 +01:00
Eitan Chatav
710e3e755a
Merge branch 'master' into crypto-box
2016-11-21 12:55:13 -08:00
Eitan Chatav
c52146cb71
debug string
2016-11-18 15:59:56 -08:00
Eitan Chatav
abb9e19260
integrate proof of work in p2p
...
* check proof of work when connecting to peers
* I’m not sure how to get the debug statement on line 418 to work, keep
getting syntax errors
2016-11-18 15:47:32 -08:00
Grégoire Henry
938ff6404b
Shell: export Bytes.{get,set}_intXX
to the proto
2016-11-17 02:06:50 +01:00
Grégoire Henry
a55f31bc9b
Merge branch 'resolve_prefix' into 'master'
...
Implement a minimal "completion" service.
The use of Base48 encoding allows to efficiently implement a "completion" mechanism for blocks, operations, public key and contract identifiers. For instance:
```
> ./tezos-client complete eeHfgnr9QeDN
eeHfgnr9QeDNvcMgSfATNeDeec4KG4CkHHkNNJt5B9xdVmsxhsHNR
```
This command returns all the identifiers matching the given prefix. Adding the option `-unique` let the command fails when there more than one possible completion.
This completion mechanism should probably never be used implicitly, but it might still be useful to display a small completion popup in a GUI, or during manual testing on the CLI.
See merge request !101
2016-11-17 01:50:49 +01:00
Vincent Bernardoff
ba014261dc
P2p: bugfix
2016-11-16 17:21:56 +01:00
Vincent Bernardoff
2680bf7efb
P2p: fix logging
2016-11-16 17:16:01 +01:00
Vincent Bernardoff
f7e73a6dc5
P2p: force IPv6 in discovery
2016-11-16 17:16:01 +01:00
Grégoire Henry
3c55c72abf
Merge remote-tracking branch 'ocp/crypto-box'
2016-11-16 01:19:13 +01:00
Grégoire Henry
d61220f4f9
Compiler: use explicit functor in Environment
...
Previously, the functor applications were hidden in a module generated
by `tezos-protocol-compiler`.
2016-11-16 00:53:40 +01:00
Grégoire Henry
b16a644e55
Proto: Completion of Base48-encoded public keys and contracts
...
This required some modifications in the Base48 module, in order not to
share the 'resolver' between distinct version of the economical protocol.
2016-11-16 00:53:40 +01:00
Grégoire Henry
1805a1d816
Shell: inline Ed25519
into Environment
...
This interface is not used in the shell, only in the protocol. It is
just a (documented) wrapper over a fragment of sodium.
2016-11-16 00:53:40 +01:00
Grégoire Henry
69261aa542
Client: add command "complete".
2016-11-16 00:52:48 +01:00
Grégoire Henry
1ce2643dc7
Shell: add Base48.decode_partial
2016-11-16 00:52:48 +01:00
Grégoire Henry
07ba685b8d
Base48: encode the "data" before its "hash"
2016-11-16 00:52:48 +01:00
Vincent Bernardoff
8680d98ecd
P2p: force IPv6 in discovery
2016-11-16 00:45:52 +01:00
Vincent Bernardoff
23968b53e3
P2p: fix logging
2016-11-16 00:45:52 +01:00
Grégoire Henry
6121c518d4
Shell/P2p: do not read the tag twice...
2016-11-16 00:45:52 +01:00
Grégoire Henry
9d67c1fea5
Shell/P2p: remove Ping/Pong
2016-11-16 00:45:51 +01:00
Grégoire Henry
cfba0d9cb7
Shell/P2p: Use `Lwt_utils.{read/write}
2016-11-16 00:45:51 +01:00