Commit Graph

1497 Commits

Author SHA1 Message Date
Grégoire Henry
ceddb09ea7 TMP remove dictator 2018-06-06 10:54:33 +02:00
Grégoire Henry
420986b45b Alpha: simplify the operation datatype 2018-06-06 10:54:33 +02:00
Grégoire Henry
371b84fa5d Alpha/PRC use more Data_encoding.def 2018-06-06 10:54:33 +02:00
Grégoire Henry
33c3d1fcbd Alpha/RPC: add a low-level but typed RPC for context introspection
Example:

```
> tezos-client rpc get /chains/main/blocks/head/context/raw/json/\?depth\=1 | jq
{
  "commitments": [],
  "contracts": {
    "global_counter": 0,
    "index": []
  },
  "cycle": [
    4,
    3,
    2,
    1,
    0
  ],
  "delegates": [
    "tz1gjaF81ZRRvdzjobyfVNsAeSC6PScjfQwN",
    "tz1faswCTDciRzE4oJ9jn2Vm2dvjeyA9fUzU",
    "tz1ddb9NMYHZi5UzPdzTZMYQQZoMub195zgv",
    "tz1b7tUupMgCNw2cCLpKTkSD1NZzB5TkP2sv",
    "tz1KqTpEZ7Yob7QbPE4Hy4Wo8fHG8LhKxZSx"
  ],
  "last_block_priority": 0,
  "rolls": {
    "index": [],
    "next": 2000,
    "owner": {}
  },
  "votes": {
    "ballots": [],
    "current_period_kind": "proposal",
    "current_quorum": 8000,
    "listings": [],
    "proposals": []
  }
}
> tezos-client rpc get /chains/main/blocks/head/context/raw/json/cycle/4\?depth\=2 | jq
{
  "last_roll": [
    [
      0,
      2000
    ]
  ],
  "nonces": [],
  "random_seed": "97d50852c159ada8e9f107e98f693b059ba28336c723e6cd0f6353eb3c0cb415",
  "roll_snapshot": 0
}
> tezos-client rpc get /chains/main/blocks/head/context/raw/json/cycle/5\?depth\=2 | jq
{
  "last_roll": [
    [
      1,
      2000
    ],
    [
      0,
      2000
    ]
  ],
  "nonces": [],
  "roll_snapshot": 2
}
```
2018-06-06 10:54:33 +02:00
Grégoire Henry
74acad1472 Alpha: minor signature change in storage functors 2018-06-06 10:54:33 +02:00
Grégoire Henry
f7aa0398ca Alpha/RPC: minor renaming 2018-06-06 10:54:33 +02:00
Grégoire Henry
f5e3fb17c0 Resto: lift the lwt monad into Resto. 2018-06-06 10:54:33 +02:00
Grégoire Henry
b6b30875e4 Resto: export RPC_arg.eq to the protocol. 2018-06-06 10:54:33 +02:00
Grégoire Henry
1460aba927 Alpha/RPC: some renaming in delegate services 2018-06-06 10:54:33 +02:00
Grégoire Henry
ebc00b6463 Client/Alpha: display the "real" metadata when --wait is used 2018-06-06 10:54:33 +02:00
Grégoire Henry
89cbe0f8fa Docs/RPC: fix doc generation
The current doc generator does not handles path were multiple method
are registred. The fix remove the intermediate (compilation) tree.
2018-06-06 10:54:33 +02:00
Grégoire Henry
22d20509bf Docs/RPC: minor RPC improvements 2018-06-06 10:54:33 +02:00
Grégoire Henry
33ded01ae7 Shell/RPC: rename /context/helpers into /helpers 2018-06-06 10:54:33 +02:00
Grégoire Henry
0ad85aca21 Shell/RPC: use GET request for /errors 2018-06-06 10:54:33 +02:00
Grégoire Henry
3783e43a2e Alpha/RPC: rename levels_in_cycle into levels_in_current_cycle 2018-06-06 10:54:33 +02:00
Grégoire Henry
7e8f4341d7 Alpha/RPC: regroups /context/helpers/scripts 2018-06-06 10:54:33 +02:00
Grégoire Henry
32e40ec19a Alpha/RPC: remove helpers/minimal_time 2018-06-06 10:54:33 +02:00
Grégoire Henry
0a78bbe33b Shell/RPC: use GET request for /workers 2018-06-06 10:54:33 +02:00
Grégoire Henry
64c464a73f Shell/RPC: some module renaming/aliasing 2018-06-06 10:54:33 +02:00
Grégoire Henry
2a93a336aa Shell/RPC: use query parameters in /injection 2018-06-06 10:54:33 +02:00
Grégoire Henry
9bc7b1e573 Shell/RPC: also list embedded protocols 2018-06-06 10:54:33 +02:00
Grégoire Henry
04c920df29 Shell/RPC: use query parameters in /protocols 2018-06-06 10:54:33 +02:00
Grégoire Henry
bbf5c7408b Shell/RPC: split out Monitor_services 2018-06-06 10:54:33 +02:00
Grégoire Henry
c175cd1c65 Shell/RPC: use query parameters for /p2p 2018-06-06 10:54:33 +02:00
Grégoire Henry
0b08dce3e8 Shell/RPC: move preapply_operation into Block_services 2018-06-06 10:54:33 +02:00
Grégoire Henry
9093e5c02d Alpha/RPC: minor RPC renaming 2018-06-06 10:54:33 +02:00
Grégoire Henry
b11a604d20 Alpha/RPC: more query parameters in /helpers 2018-06-06 10:54:33 +02:00
Grégoire Henry
482dbb116c Alpha/RPC: use query string for delegation rights 2018-06-06 10:54:33 +02:00
Grégoire Henry
7b758dbca8 Alpha/RPC: export various delegate data 2018-06-06 10:54:33 +02:00
Grégoire Henry
991846e716 Alpha/RPC: use GET requests for /contracts and /constants 2018-06-06 10:54:33 +02:00
Grégoire Henry
acc76d22a8 Alpha/Client: use block metadata 2018-06-06 10:54:33 +02:00
Grégoire Henry
d6f79edae2 Shell/RPC: rework /blocks
- start using `GET` and query parameters instead of `POST`  when
  meaningful

- inline parsed protocol data and metadata in block headers

- inline parsed protocol data and metadata in operations

- split the RPC in four categories:

  - static data, available explicitly in block headers and operations

  - static "metadata", information that were computed while validating
    a block or an operation, but which are not explicit in the block
    header (e.g. the baker of a block, the list of internal
    transfer... (currently not implemented, but that's WIP))

  - "context" all the static data we may read in the context
    (contracts balance, list of delegates, ...)

  - "helpers" are some RPC that may perform some computation.
2018-06-06 10:54:33 +02:00
Grégoire Henry
f02972bb8a Alpha: use Apply_operation_result as operation metadata 2018-06-06 10:54:33 +02:00
Grégoire Henry
b6207bb14d Alpha: allow binary serialization of Apply_operation_result 2018-06-06 10:54:33 +02:00
Grégoire Henry
0ded5c8024 Alpha: export some blocks metadata (baker, ...) 2018-06-06 10:54:33 +02:00
Pierre Boutillier
e1cdd69b8b MacOS compatible 'date' format (again) 2018-06-06 09:55:56 +02:00
Grégoire Henry
6b12ab9473 Opam: add missing test dependencies for tezos-protocol-alpha 2018-06-05 14:17:24 +02:00
Grégoire Henry
95a56753df P2p: store connection_local_metadata in P2p_connection.Info.t 2018-06-05 13:51:25 +02:00
Grégoire Henry
e610fcaade P2p: read connection metadata before to accept connections
This will allow to decide whether to accept a connection or not
depending on its actual metadata.
2018-06-05 13:51:20 +02:00
Grégoire Henry
26c08672dd P2p: slighty less verbose debug 2018-06-05 13:51:12 +02:00
OCamlPro-Iguernlala
5456824960 P2p: do not propose private nodes for peers swap 2018-06-05 13:51:11 +02:00
OCamlPro-Iguernlala
d08cd57c69 P2p: do not broadcast private peers 2018-06-05 13:48:29 +02:00
OCamlPro-Iguernlala
6b287ba98e P2p: do not request new peers from known private peers 2018-06-05 13:41:33 +02:00
OCamlPro-Iguernlala
bcb56331b5 P2p: tag known peers as private until the first connection
This information will be needed to be able to know if a
point is/was eventually private.
2018-06-05 13:40:12 +02:00
OCamlPro-Iguernlala
4a16b3ef0b P2p: add "private node" information in Connection_metadata.
Add private_node flag in Connection_metadata.t and update Node,
Distributed_db, P2p and P2p_pool to propagate the information
2018-06-05 13:40:00 +02:00
OCamlPro-Iguernlala
65758d08ac P2p: add a warning in case of an incoming connection from an untrusted peer 2018-06-05 13:39:50 +02:00
OCamlPro-Iguernlala
6bbdf13bc5 P2p: do not send bootstrap message to peers in private mode 2018-06-05 13:39:43 +02:00
OCamlPro-Iguernlala
6663109639 P2p: disable some capabilities when creating a connection in private mode
This is mainly done in the creation of the callback functions of
the answerer's field of a 'connection'.
2018-06-05 13:38:53 +02:00
OCamlPro-Iguernlala
c1ccea3501 P2p: do not send peer swap requests in private mode 2018-06-05 13:34:50 +02:00
OCamlPro-Iguernlala
01648e7611 Node: rename option '--closed' to '--private-mode' 2018-06-05 13:29:06 +02:00
Marco Stronati
7b8f764524 Tests: add tests for baking 2018-06-05 12:55:59 +02:00
Marco Stronati
ff237c79cc Tests: add tests for seed nonce revelation operation 2018-06-05 12:55:59 +02:00
Galfour
6e65a12206 Tests: add tests for double endorsement and double baking 2018-06-05 12:23:40 +02:00
Vincent Botbol
7505a66904 Tests: add tests for endorsement and activation operations 2018-06-05 12:23:40 +02:00
Quyen
d9a11caeb8 Tests: add tests for transfer and origination operations 2018-06-05 12:23:40 +02:00
Grégoire Henry
e8e66a83c7 Tests/helpers: replace old test framework 2018-06-05 12:23:40 +02:00
Grégoire Henry
4105467603 Alpha: changes needed for test framework 2018-06-05 11:56:40 +02:00
michael
bd3a9fabe5 test: add a small test for disable_mempool option 2018-06-04 15:55:43 +02:00
michael
aedf867e4a RPC: Add conn_metadata to peer_info rpcs 2018-06-04 15:55:41 +02:00
michael
df4e474577 Shell: disable prevalidator if disable-mempool is used 2018-06-04 15:39:42 +02:00
michael
d5925f088c P2p: Add option to disable the mempool
This allows a node to specify that it doesn't want to receive operations
that are not included in a block. To do so, one should use the new
--disable-mempool option.

A disabled mempool node announce its configuration during the ACK exchange.
This configuration should be easily expandable with other options.

Node will keep track of the ack exchange configuration for each nodes it
is connected to and will not propagate its mempool to disabled mempool
nodes.

A disabled mempool node will ignore non-empty mempool received.
In the future, this incident should be punish by a decrement of its score
and / or ban.
2018-06-04 15:35:22 +02:00
michael
5b21610985 P2p: fix weird partial application 2018-06-04 15:17:37 +02:00
Grégoire Henry
6faaeaf5e8 P2p: properly export connection metadata 2018-06-04 15:17:35 +02:00
Grégoire Henry
367cc4e916 Faucet: rename secret into activation_code 2018-06-04 14:40:10 +02:00
Vincent Botbol
92bb69e744 Protocol: remove half pkh in commitments 2018-06-04 14:12:01 +02:00
Raphaël Proust
ad90fadf5e Data_encoding: use more inline records in sums 2018-06-04 13:53:29 +02:00
Raphaël Proust
f647404739 Proto_alpha/levels: added documentation 2018-06-04 08:41:46 +08:00
michael
a8e607a5a9 Shell: preliminary work for ack_cfg exchange 2018-06-01 16:25:43 +00:00
Benjamin Canou
1f6302bf36 Proto: fill-in placeholder docstrings 2018-06-01 17:15:14 +02:00
Grégoire Henry
d7e5ca81e4 Shell: store metadata for block header and operations 2018-06-01 16:20:10 +02:00
Grégoire Henry
fc26022cd2 Proto: associate metadata to valid block headers and operations 2018-06-01 16:20:10 +02:00
Grégoire Henry
c85e27605b Proto: export Data_encoding.t for block headers and operationss
Previously we were only exporting parsing function. This will allow
to move out of the protocol some `helpers` RPCs.
2018-06-01 16:20:10 +02:00
James Deikun
afa335ff48 move module-specific logging to the modules that use it 2018-05-31 17:05:00 -04:00
Grégoire Henry
b2e6001007 Data_encoding: merge def and describe 2018-05-30 14:38:05 +02:00
Grégoire Henry
09a039bfea Data_encoding: use inline record for case field 2018-05-30 14:38:05 +02:00
Pierre Boutillier
d9c5549ae2 date --"an hour ago" in a way compatible with both GNU and BSD 2018-05-30 12:59:59 +02:00
Grégoire Henry
cf9d26740c Shell/RPC: allow immediate value
This a HACK for allowing serialisation of toplevel value that are
float, string,... and not only object or array.

In a latter time, we may prefer to you `yojson` instead of `ezjsonm`,
but some of our dependencies rely on `ezjsonm` and we may not want to
embeds two distinct JSON libraries...
2018-05-29 16:13:30 +02:00
Grégoire Henry
556e95cef0 Client: rename rpc call into rpc post or rpc get 2018-05-29 16:13:30 +02:00
Grégoire Henry
c00d8131c6 Signer: allow to configure the signer with environment variables 2018-05-28 17:23:08 +02:00
Grégoire Henry
1f662dd53b Signer: add proper documentation to signer 2018-05-28 17:22:14 +02:00
Milo Davis
f644d8f332 Client: adds check signature command 2018-05-28 17:09:03 +02:00
Benjamin Canou
1b91d0929a Michelson: read some constants in base58 but store them in binary 2018-05-28 17:09:03 +02:00
Milo Davis
ff4a5fadda Client: get timestamp in seconds 2018-05-28 17:09:03 +02:00
Benjamin Canou
439435bd11 Michelson: forbid internal operation replay 2018-05-28 17:09:03 +02:00
Benjamin Canou
f1fc7ab582 Michelson: forbid internal operations in parameter and storage 2018-05-28 17:09:03 +02:00
Benjamin Canou
702896f420 Michelson: switch string tez constants to int mutez constants 2018-05-28 17:09:03 +02:00
Benjamin Canou
ffec060a6f Client, Michelson: minor fixes in error reporting 2018-05-28 17:09:03 +02:00
Benjamin Canou
a425b3dc27 Michelson: cleanup iterator opcodes 2018-05-28 17:09:03 +02:00
Benjamin Canou
c57458ea01 Michelson: fix inconsistency when reading and printing strings 2018-05-28 17:09:03 +02:00
Benjamin Canou
f119a9b2a5 Micheline: lexing bug fix 2018-05-28 17:09:03 +02:00
Benjamin Canou
bb37e04340 Michelson: add estimated memory cost of an expression 2018-05-28 17:09:03 +02:00
Benjamin Canou
ce668e6afb Alpha: lazily deserialize scripts 2018-05-28 17:09:03 +02:00
Benjamin Canou
5f39f2ceec Data_encoding: add lazy_encoding combinator 2018-05-28 17:09:03 +02:00
Benjamin Canou
530427c813 Michelson: unpair input of CHECK_SIGNATURE 2018-05-28 17:09:03 +02:00
Benjamin Canou
8e28c790ea Client/Alpha: detect script failure before injection 2018-05-28 17:09:03 +02:00
Benjamin Canou
23f9949e70 Alpha: add storage limits 2018-05-28 17:09:03 +02:00
Benjamin Canou
dd9cd8a1c3 Alpha: keep the storage space in bytes instead of the premultiplied fees 2018-05-28 17:09:03 +02:00
Grégoire Henry
7d73605f5c Alpha: fix endorsement rewards
It should be computed with the priority of the endorsed blocks,
not with the priority of the block where it is included.
2018-05-28 17:09:03 +02:00
Grégoire Henry
c167d0eaae Alpha: remove unused parameters 2018-05-28 17:09:03 +02:00
Grégoire Henry
25ecd68b90 Alpha: use singular for Sourced_operation 2018-05-28 17:09:03 +02:00
Grégoire Henry
ee5373d960 Client: add global option --wait 2018-05-28 17:09:03 +02:00
Grégoire Henry
72e31287d1 Client/Alpha: split module Client_proto_context 2018-05-28 17:09:03 +02:00
Benjamin Canou
a11e0000e7 Michelson: add SET_DELEGATE opcode 2018-05-28 17:09:03 +02:00
Benjamin Canou
b669632075 Alpha: check delegatable flag before removing the delegate 2018-05-28 17:09:03 +02:00
Benjamin Canou
af5a8939cf Alpha: originations from contracts are now internal operations 2018-05-28 17:09:03 +02:00
Benjamin Canou
97208fd532 Alpha: add a type for operation results 2018-05-28 17:09:03 +02:00
Benjamin Canou
18c77318fb Alpha: thread origination_nonce in the context 2018-05-28 17:09:03 +02:00
Benjamin Canou
f05b02f74f Michelson: some new contracts/tests 2018-05-28 17:09:03 +02:00
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