Commit Graph

197 Commits

Author SHA1 Message Date
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
Pietro
4c4d2121ce [ci]: recompile hidapi-0.8.0_rc1 package for alpine stable 2018-06-05 17:57:03 +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
Grégoire Henry
556e95cef0 Client: rename rpc call into rpc post or rpc get 2018-05-29 16:13:30 +02:00
Arthur B
07a631316a Alpha: allow to deactivate rewards for a few initial cycles 2018-05-26 18:25:40 +02:00
Raphaël Proust
d520a3db68 CI: adding test dependencies to CI scripts 2018-05-24 17:50:18 +02:00
Fred Yankowski
7eabd8e151 use docker alphanet image name that exists on hub.docker.com 2018-05-22 11:37:42 +02:00
Raphaël Proust
ccdb761bbb Script/gen_genesis: load HACL 2018-05-17 11:09:35 +02:00
Grégoire Henry
c696502131 Docker: proper cleanup on chain reset 2018-05-11 14:24:28 +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
Vincent Bernardoff
3759ff1f90 Scripts: do not pin ocplib-json-typed anymore 2018-05-04 18:48:00 +02:00
Benjamin Canou
c92860df1c Quick fix for test deps in the CI 2018-05-04 18:48:00 +02:00
Vincent Bernardoff
63e44af5e4 TLS: switch to ocaml-tls 2018-05-03 15:48:25 +02:00
Grégoire Henry
f6e0fdfdf5 Alphanet/Zeronet: fix usage of external file 2018-04-18 16:18:02 +02:00
Grégoire Henry
dbe4a20d4a Reset the chain 2018-04-17 13:46:23 +02:00
Vincent Botbol
326226d5ed Genesis: add mnemonics, passwords and emails to genesis info generation 2018-04-17 10:36:46 +02:00
Grégoire Henry
3d57055cca Alpha: use protocol parameters instead of sandbox to tune constants 2018-04-16 09:28:26 +02:00
Vincent Botbol
91dfb730bf Alpha: parametrize protocol activation with commitments and bootstrap accounts 2018-04-09 15:05:46 +02:00
Arthur B
ffa56852d4 Script: generate prefix for base58 encoding 2018-04-06 11:47:22 +02:00
Arthur B
15955dcbae Alpha: genesis block allocation script 2018-03-28 10:29:51 +02:00
Pietro
ae316d7591 Sandbox: Faster block generations in sandbox mode 2018-03-22 14:38:26 +01:00
Grégoire Henry
590e67f71b Docker: reinstall 'vi' in docker image
This is used by `tezos-client`.
2018-03-22 14:04:51 +01:00
Grégoire Henry
34a8c30c83 Alphanet.sh: fix --rpc-port (fix #137) 2018-03-22 13:50:47 +01:00
Grégoire Henry
bf0dfda7d4 Alphanet: fix docker-compose version 2018-03-21 15:20:13 +01:00
Pietro
9ef69b4502 Client, test: Add two more protocol injection tests (from alpha) 2018-03-20 07:07:57 +01:00
Grégoire Henry
75274bf923 Zeronet/alphanet: update constants. 2018-03-20 06:49:52 +01:00
Benjamin Canou
dabf4c1578 Fix alphanet_constants.patch and reset the chain 2018-03-18 18:36:56 +01:00
Grégoire Henry
e1a1f754aa Fix indent in gen_genesis.ml 2018-03-16 14:40:39 +01:00
Grégoire Henry
ee3f81b6e3 Zeronet: check constant patch application. 2018-03-12 10:34:21 +01:00
Benjamin Canou
d00724ea13 Fix alphanet_constant.patch and reset the chain 2018-03-09 14:17:18 +01:00
Grégoire Henry
f926cfc0ac Reset the chain 2018-03-08 07:08:24 +01:00
Grégoire Henry
cdeff6d3ca Fix 'script/reset_chain.sh' 2018-03-08 07:07:59 +01:00
Grégoire Henry
c4146d1d46 Zeronet: update bootstrap nodes 2018-03-07 19:22:22 +01:00
Grégoire Henry
5d99c7c0ae Reset the chain 2018-03-07 18:39:23 +01:00
Grégoire Henry
d339ada6fb Alphanet: script for reseting the chain data 2018-03-07 18:38:53 +01:00
Grégoire Henry
891f2093ef Docker: add bash-completion.sh in image 2018-03-07 18:14:51 +01:00
Grégoire Henry
1903f081ab Docker: remove the parameter 'P2P_PORT' 2018-03-07 18:14:51 +01:00
Grégoire Henry
b8f8b598cd Fix alphanet_constant.patch 2018-03-07 18:14:51 +01:00
Grégoire Henry
64a41538c8 CI: add missing 'test' package in the cached opam repository 2018-02-26 11:58:39 -05:00
Pietro Abate
9c6d0bd684 Docker: introduce a generic docker-compose.yml 2018-02-22 10:49:22 -05:00
Pietro
ea515b9551 Alphanet: use docker-compose 2018-02-22 10:24:02 -05:00
Grégoire Henry
80079bc200 CI: temporary workaround 2018-02-22 05:36:57 +01:00
Pierre Chambart
590ddb750f Change compiler's requested version 2018-02-22 05:36:57 +01:00
Grégoire Henry
040d99b673 Docker: use remote opam image by default 2018-02-15 17:16:39 +01:00
Grégoire Henry
a70a0788d3 Test: quick and dirty port to alcotest 2018-02-12 02:09:00 +01:00
Marco Stronati
035042d69f Scripts: fix alphanet/zeronet patch 2018-02-08 18:04:53 +01:00
Grégoire Henry
2ad06a0e06 CI: manually bundle test dependencies 2018-02-07 14:40:55 +01:00
Grégoire Henry
9899169f78 CI: embeds test packages in the default image 2018-02-07 11:16:39 +01:00
Vincent Bernardoff
e1d1292c09 Crypto: drop libsodium
We now use simpler OCaml bindings much easier to review.
2018-02-07 11:16:39 +01:00
Grégoire Henry
ae3ff0503b Proto: the number of validation is now a protocol constant 2018-02-02 10:27:58 +01:00
Grégoire Henry
3c2430e916 CI: use released version of opam-depext 2018-01-31 08:40:39 +01:00
Milo Davis
1ec1f501a4 Alphanet: fixes assert_endorser in alphanet script 2018-01-30 23:00:49 +00:00
Grégoire Henry
e664179927 Refactor: CI: check opam packages 2018-01-30 10:13:40 +01:00
Grégoire Henry
1f3c68cbd8 Refactor: Regroup protocols 2018-01-30 10:12:55 +01:00
Grégoire Henry
260a717cc1 CI: Fix the publish rules 2018-01-29 22:11:18 +01:00
Grégoire Henry
55db2dbf18 CI: improve pipeline duration
- do not use a intermediate docker image between 'build' and 'test'
- in 'build_deps', avoid downloading the cached image
- in 'prepare', use `opam bundle` to:
  - embedded the sources of dependency
  - reduce the embedded opam repository to the needed package

Other changes:

- reintroduced 'sudo' in the base image, it is needed by `opam depext`
  and the job 'publish:doc'
- moved the docker script used by the CI in `scripts/ci/`
2018-01-28 20:03:31 +01:00
Pietro
99cdf5e5c2 gitlab CI refactoring
- Docker files and build scripts
    + add git, bash and patch to the docker base definition (Dockerfile.base)
    + build leveldb once and for all
      (scripts/create_docker_image.leveldb_deps.sh)
    + add --depth 1 to all git clone calls
    + remove sudo, openssh and rsync from base images
    + add --no-cache to all apk calls
    + merge dockerfiles in the sh scripts
2018-01-28 20:02:51 +01:00
Grégoire Henry
e7483ff392 Opam: new release of ocp-ocamlres 2018-01-27 14:55:57 +01:00
Benjamin Canou
adf860ea40 Docs: new documentation structure using Sphinx/RST
- Provides a toplevel documentation structure using Sphinx
 - Adds a `doc-html` target to the main Makefile
 - Converts existing documentation to RST format
 - Add some new documentation / tutorials
 - Links the developer manual and OCaml documentation
 - Synchronized documentation on Gitlab pages

This patch is co-authored by:
 - Benjamin Canou <benjamin@canou.fr>
 - Bruno Bernardo <bernardobruno@gmail.com>
 - Pietro Abate <pietro.abate@inria.fr>
2018-01-23 08:02:17 +01:00
Grégoire Henry
7b6d8c3db3 Temporary CI fix 2018-01-22 10:42:02 +01:00
Grégoire Henry
525b09259f Fix d9405292a4 2018-01-18 16:08:20 +01:00
Pietro
d9405292a4 Move all packages to src/
Modify Makefile accordingly
2018-01-16 23:11:39 +01:00
Milo Davis
054506a85f Init-client: fix bash-completion error 2017-12-14 23:45:48 +00:00
Milo Davis
9f5b6183ac Apply patch: update script to match new directory structure 2017-12-13 14:14:24 +00:00
Grégoire Henry
3ee46c59be CI: add support for opam2-beta5 2017-12-08 02:50:03 +01:00
Grégoire Henry
de5935228f Opam: remove tezos-deps.opam
All dependencies are now inlined in the various opam packages.
2017-12-08 02:50:03 +01:00
Grégoire Henry
d8d54ce321 Jbuilder: install tezos-sandboxed-node.sh/tezos-init-sandboxed-client.sh 2017-12-08 02:50:03 +01:00
Grégoire Henry
be04cb027b Opam: pin external dev packages
This is temporary, we should either: release new version and stop
using development version; or import sources in the tezos-repo (and
compile them with jbuilder, especially sodium (or part of it) if it is
not maintened anymore.
2017-12-08 02:50:03 +01:00
Grégoire Henry
38ca0b8ad0 Opam: add compiler version contraints 2017-12-08 02:50:03 +01:00
Grégoire Henry
d2708740c8 Opam: fix some dependencies and add some scripts/opam-*.sh.
Installation:

   `./scripts/opam-pin.sh && opam install tezos-node tezos-client`

Upgrade installed packages after a `git pull` (opam2 only):

   `./scripts/opam-upgrade.sh`

Remove and cleanup every from the opam repo:

   `./scripts/opam-unpin.sh`
2017-12-08 02:50:03 +01:00
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