Commit Graph

76 Commits

Author SHA1 Message Date
Grégoire Henry
a505b54287 CI: fix dependency caching 2017-12-05 18:52:44 +01:00
Grégoire Henry
d3f91f05a2 Fix CI for new repository structure 2017-12-04 19:27:30 +01:00
Grégoire Henry
ab5b597eb1 Jbuilder: Move client & node libraries in their own OPAM packages 2017-12-04 19:15:26 +01:00
Grégoire Henry
b6449cae87 Jbuilder: split src/utils/ in multiple OPAM packages
* `lib_stdlib`: basic extended OCaml stdlib and generic data structures

* `lib_data_encoding`: almost independant 'Data_encoding'
* `lib_error_monad`: almost independant 'Error_monad'

* `lib_stdlib_lwt`: extended Lwt library
* `lib_crypto`: all the crypto stuff (hashing, signing, cryptobox).

* `lib_base`:
  - basic type definitions (Block_header, Operation, ...)
  - a module `TzPervasives` to bind them all and to be the
    single module opened everywhere.

In the process, I splitted `Tezos_data` and `Hash` in multiple
submodules, thus removing a lot of `-open`.

The following two modules may not have found their place yet:
- Base58 (currently in `lib_crypto`)
- Cli_entries (currently in `lib_stdlib_lwt`)
2017-12-04 16:05:54 +01:00
Grégoire Henry
5b50279851 Import new version of vendors/ocplib-resto
The new version of ocplib-resto :

- uses jbuilder ;
- is functorized over `Json_encoding` rather than `Json_repr` ;
- handles query parameters ;
- handles HTTP methods (GET, POST, DELETE, PUT, PATCH) ;
- replaces `custom_service` by a more generic trailer argument ;
- replaces generic answer `(code, body)` by a more ad-hoc sum type
  (allowing distinct encoding for success and error) ;
- includes a minimal HTTP-server based on Cohttp
  (includings CORS and media type negotiation).
- adds a function `Directory.transparent_lookup` to lookup/call
  a service handler without serializing the various parameters
  (path, query, request body).

As a first consequences in Tezos, this patch allows binary
communication between the client and the node.

This patch tries to be minimal inside the tezos source code and
therefore it introduces a minimal compatibility layer in
`RPC.ml`. This code should be removed as soon as possible.
2017-12-04 15:51:59 +01:00
Benjamin Canou
4b0896300d Fix alphanet_constants.patch 2017-11-28 15:43:40 +01:00
Grégoire Henry
c6b4a83e2b Reset the chain. 2017-11-26 22:49:20 +00:00
Grégoire Henry
485d8bc26a Context: quick-and-dirty leveldb backend for Irmin
This is a dirty and non-optimized backend, it is still faster than the
current git backend.

Main drawbacks:
- the leveldb binding is non-coopertive, the node will
  block while committing a block to the disk ;
- the leveldb use 'string' while internally we use 'cstruct',
  this implies a lot of time-consuming 'memcpy'.
2017-11-26 22:49:17 +00:00
Grégoire Henry
84a2f1ee29 Shell: enforce the maximum number of operation per block 2017-11-20 05:03:00 +01:00
Grégoire Henry
5bcb2593a3 Docker: fix leveldb installation 2017-11-20 01:11:38 +01:00
Grégoire Henry
b6b59be5fd Jbuilder: minor improvement in error reporting. 2017-11-17 15:54:36 +01:00
Grégoire Henry
529795efd7
Reset the chain 2017-11-17 02:51:39 +01:00
Pietro Abate
0f467c263b Scripts: Add optional 'fix' argument to test-ocp-indent.sh
the script can be called with fix as argument to fix all indentation
problems in one go
2017-11-14 17:24:34 +01:00
Grégoire Henry
3eddca508b CI: use compatible options for diff.
Also install `ocp-indent` and embeds `.ocp-indent` in the docker
image.
2017-11-14 05:35:40 +01:00
Pietro Abate
6ecfca9396 Reindent all files
Now `make test` fails when sources are not indented correctly, the
indentation test is also executed in the CI.
2017-11-13 23:13:34 +01:00
Benjamin Canou
6a38f76956 Reset the chain. 2017-11-13 22:18:17 +01:00
Benjamin Canou
d00b9ca1e1 CI: Import Alpine package backport for leveldb-1.18 2017-11-13 22:18:16 +01:00
Grégoire Henry
e21672c4ac Jbuilder: do not depend on the git version anymore 2017-11-08 15:55:40 +01: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
Arthur Breitman
6dd9f2289a mining -> baking, continued 2017-11-01 04:13:23 -07: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
Benjamin Canou
c3ed0d35a5 Scripts: wait for node termination before cleaning up temporary files 2017-09-28 15:40:27 +02:00
Grégoire Henry
c2fd13f3ab Reset the chain 2017-09-22 19:11:21 +02:00
Grégoire Henry
84376e09a4 Alphanet: use bash inside the docker image. 2017-09-22 11:38:25 +02:00
Grégoire Henry
b49491587f Reset the chain. 2017-09-22 11:37:57 +02:00
Grégoire Henry
a0bca5c733 Sandbox: add missing file 2017-09-13 15:22:20 +02:00
Milo Davis
d255807af9 Alphanet: fixes argument quoting bug 2017-08-29 13:04:59 +00:00
Grégoire Henry
d6348c009a Scripts/Test: more shared scripts...
- introduced `test/utils/test_lib.inc.sh` to simplify usage of
  sandboxed node/client in the testsuite

- it reuses code from `./script/{node,client}_lib.inc.sh`

- use `wait_for_the_node_to_be_ready` to properly wait for the node to
  be launched rather to use a fexed delay

- `test_multinode.sh` now launch 8 nodes.
2017-08-29 14:10:40 +02:00
Grégoire Henry
e033176820 README: add instructions for running a sandboxed node 2017-08-29 14:10:03 +02:00
Milo Davis
8c9f5f21a5 Alphanet: fixes container: relative paths bug 2017-08-24 21:15:59 +02:00
Milo Davis
bbf9df021b Fix bug in launch node script 2017-08-24 21:07:58 +02:00
Grégoire Henry
ba6e78900c Makefile: fix compat issue with macOS. 2017-08-22 14:55:46 +02:00
Henrik Jonsson
f7d596ac50 scripts: Set 'echo -e' to make text colors work in alphanet.sh
Before this change, output from `alphanet.sh` looked like the following:

```
New contract alias 'my_account' saved.
Contract memorized as my_account.
\033[32mThe node is now running.\033[0m
\033[32mThe baker is now running.\033[0m
\033[32mThe endorser is now running.\033[0m
\033[33mWarning: the container contains a new version of 'alphanet.sh'.\033[0m
\033[33mYou might run './scripts/alphanet.sh update_script' to synchronize.\033[0m
```

I.e. control characters showed up, instead of modifying the color of the text
output. Repro'd on Container Linux (CoreOS) 1492.3.0.

After this change, `The node is now running` shows up in green &c.
2017-08-19 11:06:15 +02:00
Benjamin Canou
7c586aaf25 Reset the chain (on-disk storage updated) 2017-08-17 14:54:34 +02:00
Grégoire Henry
a31bb86a63 CI: minor tweaks 2017-08-17 13:12:22 +02:00
Grégoire Henry
a01f786de4 Update to irmin.1.3 2017-08-16 11:12:51 +02:00
Grégoire Henry
67bbf11a12 CI: use our own docker image of opam 2017-08-16 10:52:36 +02:00
Grégoire Henry
bd7596005f Add CHANGES.alphanet. 2017-08-11 14:49:24 +02:00
Grégoire Henry
af16d9d62c Add scripts/README.alphanet. 2017-08-10 16:08:58 +00:00
Grégoire Henry
58b53d79c5 CI: fix the 'deploy' rules of alphanet/zeronet 2017-08-09 21:55:59 +02:00
Grégoire Henry
30b2cd3e0e Update protocol version 2017-08-08 16:49:56 +02:00
Milo Davis
3255fc8cd8 Alphanet: automatically copy files into container 2017-08-08 14:06:24 +00:00
Grégoire Henry
eed9e7581d Update CI 2017-08-04 18:32:52 +02:00
Grégoire Henry
a30d1a615c Update to ocaml.4.04.2 2017-08-04 18:31:31 +02:00
Grégoire Henry
f39eca214a Shell: remove the on-disk index of operations
Let's get serious. The full index of operations is not sustainable in
the production code. We now only keep the index of operations not yet
in the chain (i.e. the mempool/prevalidation). Operations from the
chain are now only accesible through a block. For instance, see the
RPC:

   /blocks/<hash>/proto/operations
2017-06-12 11:04:43 +02:00
Grégoire Henry
81b720fee0 Add: tezos-client set delegate ... 2017-06-07 16:38:59 +02:00
Vincent Bernardoff
3b3428ddad Shell: experimental leveldb backend 2017-06-06 23:12:33 +02:00
Benjamin Canou
591f11a808 Docker: quick fix for wrong upstream alpine docker. 2017-06-01 17:55:53 +02:00
Vincent Bernardoff
c7c7ffbd0e do not pin cohttp to dev version 2017-05-22 13:59:17 +02:00