Revision 818796ad151631188384a01bb218cf1f8a057135 authored by François Thiré on 22 January 2024, 17:11:32 UTC, committed by François Thiré on 22 January 2024, 17:11:32 UTC
1 parent 73a7a2c
README.md
# Mockup mode
Libraries for mockup mode, i.e., the implementation of
`octez-client`'s `--mode mockup` flags.
## Overview
There are 3 libraries in this directory (see `dune` file):
* `tezos_mockup`
* `tezos_mockup_registration`
* `tezos_mockup_commands`
### Tezos mockup
This library defines a mockup implementation of RPCs that are handled locally
in mockup mode while they are executed on a node by vanilla clients.
Mockup-specific services (e.g., baking RPCs) are implemented in `local_services.ml`
The mockup RPC layer is itself in `RPC_client.ml`.
Higher-level mockup interaction is located in `persistence.ml`, in particular to
handle mockup states (creation, modification, etc.).
### Tezos mockup registration
This library defines the interface that is expected to be implemented by
the protocol. This then allows to register a protocol and support it in
mockup mode. See for example `src/proto_alpha/lib_client/mockup.ml`.
`mockup_args.ml` handles mockup (dummy) chain ids.
### Tezos mockup commands
Mockup commands that are independent from the protocol (one of `list mockup
protocols`) are implemented here. Currently, there is only one such command
(`list mockup protocols` indeed). All other mockup client commands are the same as for
vanilla clients, except for the additional `--mode mockup` switch.
Protocol-specific mockup commands are implemented in the respective
`src/proto_*/lib_client_commands/client_proto_mockup_commands.ml`. For example,
for protocol `alpha`, this is done in
`src/proto_alpha/lib_client_commands/client_proto_mockup_commands.ml`. `create
mockup` is an example of such a command.
All mockup commands are used in
`src/lib_client_base_unix/client_config.ml`. More precisely, there is a
dedicated mockup context object in
`src/lib_client_base_unix/client_context_unix.ml`, delegating its RPC calls to
the local mockup implementation
## Testing
Tests for mockup mode use the `tezt` testing framework.
Run at toplevel
```
dune exec tezt/tests/main.exe -- mockup
```
## API Documentation
- https://tezos.gitlab.io/api/odoc/_html/tezos-mockup/index.html
### Other documentation
- [Manual](https://tezos.gitlab.io/user/mockup.html)
- [Blog post](https://blog.nomadic-labs.com/introducing-mockup-mode-for-tezos-client.html)
![swh spinner](/static/img/swh-spinner.gif)
Computing file changes ...