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