mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-05-31 01:41:03 +00:00
Squashed 'bridges/' changes from 23dda62482..407bf44a8a
407bf44a8a add missing license header (#1204) 9babb19810 Custom relay strategy (#1198) c287872a11 fix clippy things (#1200) 3a40e62789 Expose some const value and type (#1186) 32b61476d1 increase sleep before connectingMillau (#1195) aabe7041fa revert messages transactions mortality (#1194) 3651f4f909 Message transactions mortality (#1191) 364d6e155d Bump dependencies (#1180) f0389acc08 cargo +nightly fmt --all (#1192) b270b6a016 Unify error enums in substrate and ethereum clients with `thiserror` (#1094) 58c4946f74 Limit max call size of Rialto/Millau runtimes (#1187) fd56a8cd56 Add UI to the deployment (#1047) 16f01dc736 Westend -> Millau alerts are pending before notifications are sent (#1184) 5628c11ece replace collective flip with babe randomness in Rialto (#1188) 1094a63b00 ignore another (pretty bad) RUSTSEC (#1185) 379fe323ea fix/ignore cargo deny issues (#1183) 92af5e6e64 additional log in finality relay + rephrase "failed" (#1182) b996a3b681 Rialto parachain in test deployments (#1178) 28d9332b44 Resubmit transactions strategy for Polkadot/Kusama (#1175) d0172c6847 Playing with CI (#1179) fb6f42456d fix checks order when registering parachain (#1177) ee828c005a Register-parachain subcommand of substrate-relay (#1170) 8cd2b1a112 Token swap pallet benchmarks (#1174) bb811accb1 fix collision with westend bridge (#1172) 8d2fba70ed add token swaps to test deployments (#1169) b6d1bdfe2c publish rialto parachain collator image (#1171) 834ae4a10a Fix OutboundLaneData types (#1159) 5ee0ea1626 copypasted -> copied (#1168) c3bb835f18 fix spelling (#1167) f90d041dc9 Upgrade `jsonrpsee` to v0.3 (#1051) 598c9b6d0d add some basic tests for swap tokens (#1164) 05e88c61f5 publish images when tag of specific format(e.g. v2021-09-27 + v2021-09-27-1) is published (#1166) 7f3f94a6e0 Fix CI again (#1165) ff37de332f Move calculation relayer reward into `MessageDeliveryAndDispatchPayment` (#1153) 36fbba839b fix clippy warning (#1163) 16da44d018 explicit wasm build (#1158) c9c8226449 Match substrate's fmt (#1148) 2fdd7f3e5e Fix/ignore clippy warnings (#1157) 43dfcc2686 Adding LookupAddress (#1156) 951eaa5582 Add rialto-parachain runtime and node (#1142) 803d266d61 Rename MessageId -> BridgeMessageId (#1152) 5f234484fc Box large arguments of GRANDPA pallet (#1154) cf9abc1011 Fix spelling (#1150) ab83ba2e58 Relay subcommand that performs token RLT <> MLAU token swap (#1141) 832536caf0 Polkadot <> Kusama relayers (#1122) 6d0daa8975 Add `OnMessageAccepted` callback (#1134) 5d03a20b3e Integrate token swap pallet into Millau runtime (#1099) ea4cfa833e Adding MultiAddress type and ValidationCodeHash (#1139) c20325a784 Add tests for `Raw` and `BridgeSendMessage` enum `Call` variants (#1125) 6d802416e2 increase pause before pining Rialto nodes (#1137) b54fa56b62 calculate fee using full message payload (#1132) ca5d8178f5 Add parachain pallets to rialto runtime (#1053) 9eaae4142e fix transaction resubmitter limits for Millau -> Rialto transactions (#1135) 9d4e17783c add --mandatory-headers-only cli option to complex relay (#1129) 1c5e0ec1cb Add local CI info to README (#1131) a8e0929e14 chore: spellchecker fixes (#1130) 3b8e2118e3 set fee for importing mandatory headers to zero (#1127) 49bba9aa52 another bunch of words for spellchecker (#1128) 8a72eafef6 Increase pause before messages generation start (#1126) 1f0ba9a191 Move some associated types from relay_substrate_client::Chain to bp_runtime::Chain (#1087) 74bc1a5b54 Transactions resubmitter (#1083) 21ba001f26 log max balance drop when sending message (#1117) 638a7ddffa Code Cleaning (#1124) be6555c51b Fix buildah logout (#1120) 87539c4a98 Format code work (#1116) 526fe7fdd7 fix spelling (#1119) bd4ce7f241 Fix spelling (#1118) 3c1147858e added missing constants to Kusama/Polkadot primitives (#1114) 52093b22ab Fix delivery transaction estimation used by rational relayer (#1109) 77a2f2fbed Remove fund account checks from upgrade. (#1111) 824334802b Rename param and update comment (#1108) d7784bfe06 Fix spellcheck (#1110) 0b18f5906a Refactor substrate messages source and substrate messages target (#1105) b27240bbff fix compilation (#1107) 9697da4fe8 Emit mortal transactions from relay (#1073) b29396c077 Change vault vars type to env vars (#1084) 35e0bbdc0c Make clippy mandatory. (#1103) a517e8541f Remove unused deps (#1102) 873dae608a Remove unnessary deps (#1101) 13450b74ee Stored conversion rate updater (#1005) 74389829f3 [BREAKING] Migrate messages pallet to frame v2 (#1088) 424da938dd README fix (#1100) 865744c909 upgrade currency exchange pallet to frame v2 (#1097) b5038148b3 Add missing docs (#1095) 0791e911c1 Common crate for substrate-relay (#1082) 3834c9d880 Update high-level-overview.md (#1093) c93553face Increase the time window for messaging alerts. (#1092) 8b9cc3cecd migrate pallet-shift-session-manager to frame v2 (#1090) dc91813c22 migrate eth PoA pallet to frame v2 (#1091) f16bb098cc Migrate dispatch pallet to frame v2 (#1089) 19f4325348 Bridge/This Chain Ids should be exposed as constants on pallet level. (#1085) 6381122df7 Change ChainSpec::from_genesis for Rialto and Millau chains to reflect the chain names. (#1079) 0f1d33e973 Make CI happy again (#1086) 238e65d96f fix typo (#1080) fc008457b6 Token-swap-over-bridge pallet (#944) 3fb97fa5ef Fix full spellcheck (#1076) eae4ed7170 fixed wrong trace (#1075) 219a0fad04 merge two weight-related loops in messages pallet (#1071) fc85632fdb increase_message_fee depends on stored mesage size (#1066) 530f37a23b companion for https://github.com/paritytech/polkadot/pull/3507 (#1067) 53b8cba683 sc_basic_authorship=trace for millau nodes (#1074) 9874e05e98 Improve traces of message generator scripts (#1069) 7b5ee84fbb extract message_details impl into runtime common (#1070) 5a4aed5a8b refund weight for mot pruning messages (#1062) 90e3d1e111 Fix Westend -> Millau sync (#1064) 427d30ddfc When restarting client, also "restart" tokio runtime (#1065) d47c05eeef Change get pipeline sensitive variables from Vault instead of GitLab settings (#1063) d775a85415 use tokio reactor to execute jsonrpsee futures (#1061) 15c8cd61cb Use BABE to author blocks on Rialto (previously: Aura) (#1050) 5186293500 Allow reading suri && password override from file (#1059) b506298262 Update jsonrpsee reference (#1049) 1734d00517 enable weight fee adjustent in Rialto/Millau (#1044) 607265afae Pay dispatch fee at target chain cli option (#1043) ce79ef91be bump dependencies before start referencing polkadot repo (#1048) 924fa24f6d Cli option for greedy relayer + run no-losses relayer by default (#1042) e21eba7b59 Yrong README Fixup + M1 Fixes (#1045) 20d08204a2 Confirm delivery detects when more than expected messages are confirmed (#1039) 994b846b52 pre and post dispatch weights of OnDeliveryConfirmed callback (#1040) 1dd5297e84 give real value to Rialto and Millau tokens (#1038) 035bee8715 Use real conversion rate in greedy relayer strategy (#1035) 9cfaecd0f7 fixed metrics prefix (#1037) 1d8d224937 Use kebab-case for bridge arguments (#1036) f30a4c79a6 Shared reference to conversion rate metric value (#1034) c34d7a5cbb estimate transaction fee (#1015) 93404b18bb change alert period from 2m to 10m for Westend -> Millau (GRANDPA or public node itself is lagging sometimes) (#1032) git-subtree-dir: bridges git-subtree-split: 407bf44a8a5f4e60aceef2dc755cd9ff09929ac3
This commit is contained in:
@@ -1,32 +0,0 @@
|
||||
# Image with dependencies required to build projects from the bridge repo.
|
||||
#
|
||||
# This image is meant to be used as a building block when building images for
|
||||
# the various components in the bridge repo, such as nodes and relayers.
|
||||
FROM ubuntu:20.04
|
||||
|
||||
ENV LAST_DEPS_UPDATE 2021-04-01
|
||||
ENV DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
RUN set -eux; \
|
||||
apt-get update && \
|
||||
apt-get install -y curl ca-certificates && \
|
||||
apt-get install -y cmake pkg-config libssl-dev git clang libclang-dev
|
||||
|
||||
ENV LAST_CERTS_UPDATE 2021-04-01
|
||||
|
||||
RUN update-ca-certificates && \
|
||||
curl https://sh.rustup.rs -sSf | sh -s -- -y
|
||||
|
||||
ENV PATH="/root/.cargo/bin:${PATH}"
|
||||
ENV LAST_RUST_UPDATE 2021-04-01
|
||||
|
||||
RUN rustup update stable && \
|
||||
rustup install nightly && \
|
||||
rustup target add wasm32-unknown-unknown --toolchain nightly
|
||||
|
||||
RUN rustc -vV && \
|
||||
cargo -V && \
|
||||
gcc -v && \
|
||||
cmake --version
|
||||
|
||||
ENV RUST_BACKTRACE 1
|
||||
@@ -1,254 +0,0 @@
|
||||
# Bridge Deployments
|
||||
|
||||
## Requirements
|
||||
Make sure to install `docker` and `docker-compose` to be able to run and test bridge deployments. If
|
||||
for whatever reason you can't or don't want to use Docker, you can find some scripts for running the
|
||||
bridge [here](https://github.com/svyatonik/parity-bridges-common.test).
|
||||
|
||||
## Networks
|
||||
One of the building blocks we use for our deployments are _networks_. A network is a collection of
|
||||
homogenous blockchain nodes. We have Docker Compose files for each network that we want to bridge.
|
||||
Each of the compose files found in the `./networks` folder is able to independently spin up a
|
||||
network like so:
|
||||
|
||||
```bash
|
||||
docker-compose -f ./networks/rialto.yml up
|
||||
```
|
||||
|
||||
After running this command we would have a network of several nodes producing blocks.
|
||||
|
||||
## Bridges
|
||||
A _bridge_ is a way for several _networks_ to connect to one another. Bridge deployments have their
|
||||
own Docker Compose files which can be found in the `./bridges` folder. These Compose files typically
|
||||
contain bridge relayers, which are services external to blockchain nodes, and other components such
|
||||
as testing infrastructure, or user interfaces.
|
||||
|
||||
Unlike the network Compose files, these *cannot* be deployed on their own. They must be combined
|
||||
with different networks.
|
||||
|
||||
In general, we can deploy the bridge using `docker-compose up` in the following way:
|
||||
|
||||
```bash
|
||||
docker-compose -f <bridge>.yml \
|
||||
-f <network_1>.yml \
|
||||
-f <network_2>.yml \
|
||||
-f <monitoring>.yml up
|
||||
```
|
||||
|
||||
If you want to see how the Compose commands are actually run, check out the source code of the
|
||||
[`./run.sh`](./run.sh).
|
||||
|
||||
One thing worth noting is that we have a _monitoring_ Compose file. This adds support for Prometheus
|
||||
and Grafana. We cover these in more details in the [Monitoring](#monitoring) section. At the moment
|
||||
the monitoring Compose file is _not_ optional, and must be included for bridge deployments.
|
||||
|
||||
### Running and Updating Deployments
|
||||
We currently support two bridge deployments
|
||||
1. Ethereum PoA to Rialto Substrate
|
||||
2. Rialto Substrate to Millau Substrate
|
||||
|
||||
These bridges can be deployed using our [`./run.sh`](./run.sh) script.
|
||||
|
||||
The first argument it takes is the name of the bridge you want to run. Right now we only support two
|
||||
bridges: `poa-rialto` and `rialto-millau`.
|
||||
|
||||
```bash
|
||||
./run.sh poa-rialto
|
||||
```
|
||||
|
||||
If you add a second `update` argument to the script it will pull the latest images from Docker Hub
|
||||
and restart the deployment.
|
||||
|
||||
```bash
|
||||
./run.sh rialto-millau update
|
||||
```
|
||||
|
||||
You can also bring down a deployment using the script with the `stop` argument.
|
||||
|
||||
```bash
|
||||
./run.sh poa-rialto stop
|
||||
```
|
||||
|
||||
### Adding Deployments
|
||||
We need two main things when adding a new deployment. First, the new network which we want to
|
||||
bridge. A compose file for the network should be added in the `/networks/` folder. Secondly we'll
|
||||
need a new bridge Compose file in `./bridges/`. This should configure the bridge relayer nodes
|
||||
correctly for the two networks, and add any additional components needed for the deployment. If you
|
||||
want you can also add support in the `./run` script for the new deployment. While recommended it's
|
||||
not strictly required.
|
||||
|
||||
## General Notes
|
||||
|
||||
Rialto authorities are named: `Alice`, `Bob`, `Charlie`, `Dave`, `Eve`.
|
||||
Rialto-PoA authorities are named: `Arthur`, `Bertha`, `Carlos`.
|
||||
Millau authorities are named: `Alice`, `Bob`, `Charlie`, `Dave`, `Eve`.
|
||||
|
||||
Both authorities and following accounts have enough funds (for test purposes) on corresponding Substrate chains:
|
||||
|
||||
- on Rialto: `Ferdie`, `George`, `Harry`.
|
||||
- on Millau: `Ferdie`, `George`, `Harry`.
|
||||
|
||||
Names of accounts on Substrate (Rialto and Millau) chains may be prefixed with `//` and used as
|
||||
seeds for the `sr25519` keys. This seed may also be used in the signer argument in Substrate
|
||||
and PoA relays. Example:
|
||||
|
||||
```bash
|
||||
./substrate-relay relay-headers RialtoToMillau \
|
||||
--source-host rialto-node-alice \
|
||||
--source-port 9944 \
|
||||
--target-host millau-node-alice \
|
||||
--target-port 9944 \
|
||||
--source-signer //Harry \
|
||||
--prometheus-host=0.0.0.0
|
||||
```
|
||||
|
||||
Some accounts are used by bridge components. Using these accounts to sign other transactions
|
||||
is not recommended, because this may lead to nonces conflict.
|
||||
|
||||
Following accounts are used when `poa-rialto` bridge is running:
|
||||
|
||||
- Rialto's `Alice` signs relay transactions with new Rialto-PoA headers;
|
||||
- Rialto's `Bob` signs relay transactions with Rialto-PoA -> Rialto currency exchange proofs.
|
||||
- Rialto-PoA's `Arthur`: signs relay transactions with new Rialto headers;
|
||||
- Rialto-PoA's `Bertha`: signs currency exchange transactions.
|
||||
|
||||
Following accounts are used when `rialto-millau` bridge is running:
|
||||
|
||||
- Millau's `Charlie` signs complex headers+messages relay transactions on Millau chain;
|
||||
- Rialto's `Charlie` signs complex headers+messages relay transactions on Rialto chain;
|
||||
- Millau's `Dave` signs Millau transactions which contain messages for Rialto;
|
||||
- Rialto's `Dave` signs Rialto transactions which contain messages for Millau;
|
||||
- Millau's `Eve` signs relay transactions with message delivery confirmations (lane 00000001) from Rialto to Millau;
|
||||
- Rialto's `Eve` signs relay transactions with messages (lane 00000001) from Millau to Rialto;
|
||||
- Millau's `Ferdie` signs relay transactions with messages (lane 00000001) from Rialto to Millau;
|
||||
- Rialto's `Ferdie` signs relay transactions with message delivery confirmations (lane 00000001) from Millau to Rialto.
|
||||
|
||||
Following accounts are used when `westend-millau` bridge is running:
|
||||
|
||||
- Millau's `George` signs relay transactions with new Westend headers.
|
||||
|
||||
### Docker Usage
|
||||
When the network is running you can query logs from individual nodes using:
|
||||
|
||||
```bash
|
||||
docker logs rialto_poa-node-bertha_1 -f
|
||||
```
|
||||
|
||||
To kill all left over containers and start the network from scratch next time:
|
||||
```bash
|
||||
docker ps -a --format "{{.ID}}" | xargs docker rm # This removes all containers!
|
||||
```
|
||||
|
||||
### Docker Compose Usage
|
||||
If you're not familiar with how to use `docker-compose` here are some useful commands you'll need
|
||||
when interacting with the bridge deployments:
|
||||
|
||||
```bash
|
||||
docker-compose pull # Get the latest images from the Docker Hub
|
||||
docker-compose build # This is going to build images
|
||||
docker-compose up # Start all the nodes
|
||||
docker-compose up -d # Start the nodes in detached mode.
|
||||
docker-compose down # Stop the network.
|
||||
```
|
||||
|
||||
Note that for the you'll need to add the appropriate `-f` arguments that were mentioned in the
|
||||
[Bridges](#bridges) section. You can read more about using multiple Compose files
|
||||
[here](https://docs.docker.com/compose/extends/#multiple-compose-files). One thing worth noting is
|
||||
that the _order_ the compose files are specified in matters. A different order will result in a
|
||||
different configuration.
|
||||
|
||||
You can sanity check the final config like so:
|
||||
|
||||
```bash
|
||||
docker-compose -f docker-compose.yml -f docker-compose.override.yml config > docker-compose.merged.yml
|
||||
```
|
||||
|
||||
## Docker and Git Deployment
|
||||
It is also possible to avoid using images from the Docker Hub and instead build
|
||||
containers from Git. There are two ways to build the images this way.
|
||||
|
||||
### Git Repo
|
||||
If you have cloned the bridges repo you can build local Docker images by running the following
|
||||
command at the top level of the repo:
|
||||
|
||||
```bash
|
||||
docker build . -t local/<project_you're_building> --build-arg=PROJECT=<project>
|
||||
```
|
||||
|
||||
This will build a local image of a particular component with a tag of
|
||||
`local/<project_you're_building>`. This tag can be used in Docker Compose files.
|
||||
|
||||
You can configure the build using using Docker
|
||||
[build arguments](https://docs.docker.com/engine/reference/commandline/build/#set-build-time-variables---build-arg).
|
||||
Here are the arguments currently supported:
|
||||
- `BRIDGE_REPO`: Git repository of the bridge node and relay code
|
||||
- `BRIDGE_HASH`: Commit hash within that repo (can also be a branch or tag)
|
||||
- `ETHEREUM_REPO`: Git repository of the OpenEthereum client
|
||||
- `ETHEREUM_HASH`: Commit hash within that repo (can also be a branch or tag)
|
||||
- `PROJECT`: Project to build withing bridges repo. Can be one of:
|
||||
- `rialto-bridge-node`
|
||||
- `millau-bridge-node`
|
||||
- `ethereum-poa-relay`
|
||||
- `substrate-relay`
|
||||
|
||||
### GitHub Actions
|
||||
We have a nightly job which runs and publishes Docker images for the different nodes and relayers to
|
||||
the [ParityTech Docker Hub](https://hub.docker.com/u/paritytech) organization. These images are used
|
||||
for our ephemeral (temporary) test networks. Additionally, any time a tag in the form of `v*` is
|
||||
pushed to GitHub the publishing job is run. This will build all the components (nodes, relayers) and
|
||||
publish them.
|
||||
|
||||
With images built using either method, all you have to do to use them in a deployment is change the
|
||||
`image` field in the existing Docker Compose files to point to the tag of the image you want to use.
|
||||
|
||||
### Monitoring
|
||||
[Prometheus](https://prometheus.io/) is used by the bridge relay to monitor information such as system
|
||||
resource use, and block data (e.g the best blocks it knows about). In order to visualize this data
|
||||
a [Grafana](https://grafana.com/) dashboard can be used.
|
||||
|
||||
As part of the Rialto `docker-compose` setup we spin up a Prometheus server and Grafana dashboard. The
|
||||
Prometheus server connects to the Prometheus data endpoint exposed by the bridge relay. The Grafana
|
||||
dashboard uses the Prometheus server as its data source.
|
||||
|
||||
The default port for the bridge relay's Prometheus data is `9616`. The host and port can be
|
||||
configured though the `--prometheus-host` and `--prometheus-port` flags. The Prometheus server's
|
||||
dashboard can be accessed at `http://localhost:9090`. The Grafana dashboard can be accessed at
|
||||
`http://localhost:3000`. Note that the default log-in credentials for Grafana are `admin:admin`.
|
||||
|
||||
### Environment Variables
|
||||
Here is an example `.env` file which is used for production deployments and network updates. For
|
||||
security reasons it is not kept as part of version control. When deploying a network this
|
||||
file should be correctly populated and kept in the appropriate [`bridges`](`./bridges`) deployment
|
||||
folder.
|
||||
|
||||
The `UI_SUBSTRATE_PROVIDER` variable lets you define the url of the Substrate node that the user
|
||||
interface will connect to. `UI_ETHEREUM_PROVIDER` is used only as a guidance for users to connect
|
||||
Metamask to the right Ethereum network. `UI_EXPECTED_ETHEREUM_NETWORK_ID` is used by
|
||||
the user interface as a fail safe to prevent users from connecting their Metamask extension to an
|
||||
unexpected network.
|
||||
|
||||
```bash
|
||||
GRAFANA_ADMIN_PASS=admin_pass
|
||||
GRAFANA_SERVER_ROOT_URL=%(protocol)s://%(domain)s:%(http_port)s/
|
||||
GRAFANA_SERVER_DOMAIN=server.domain.io
|
||||
MATRIX_ACCESS_TOKEN="access-token"
|
||||
WITH_PROXY=1 # Optional
|
||||
UI_SUBSTRATE_PROVIDER=ws://localhost:9944
|
||||
UI_ETHEREUM_PROVIDER=http://localhost:8545
|
||||
UI_EXPECTED_ETHEREUM_NETWORK_ID=105
|
||||
```
|
||||
|
||||
### UI
|
||||
|
||||
Use [wss://rialto.bridges.test-installations.parity.io/](https://polkadot.js.org/apps/)
|
||||
as a custom endpoint for [https://polkadot.js.org/apps/](https://polkadot.js.org/apps/).
|
||||
|
||||
### Polkadot.js UI
|
||||
|
||||
To teach the UI decode our custom types used in the pallet, go to: `Settings -> Developer`
|
||||
and import the [`./types.json`](./types.json)
|
||||
|
||||
## Scripts
|
||||
|
||||
The are some bash scripts in `scripts` folder that allow testing `Relay`
|
||||
without running the entire network within docker. Use if needed for development.
|
||||
@@ -1,26 +0,0 @@
|
||||
FROM node:12 as build-deps
|
||||
|
||||
# install tools and dependencies
|
||||
RUN set -eux; \
|
||||
apt-get install -y git
|
||||
|
||||
# clone UI repo
|
||||
RUN cd /usr/src/ && git clone https://github.com/paritytech/bridge-ui.git
|
||||
WORKDIR /usr/src/bridge-ui
|
||||
RUN yarn
|
||||
ARG SUBSTRATE_PROVIDER
|
||||
ARG ETHEREUM_PROVIDER
|
||||
ARG EXPECTED_ETHEREUM_NETWORK_ID
|
||||
|
||||
ENV SUBSTRATE_PROVIDER $SUBSTRATE_PROVIDER
|
||||
ENV ETHEREUM_PROVIDER $ETHEREUM_PROVIDER
|
||||
ENV EXPECTED_ETHEREUM_NETWORK_ID $EXPECTED_ETHEREUM_NETWORK_ID
|
||||
|
||||
RUN yarn build:docker
|
||||
|
||||
# Stage 2 - the production environment
|
||||
FROM nginx:1.12
|
||||
COPY --from=build-deps /usr/src/bridge-ui/nginx/*.conf /etc/nginx/conf.d/
|
||||
COPY --from=build-deps /usr/src/bridge-ui/dist /usr/share/nginx/html
|
||||
EXPOSE 80
|
||||
CMD ["nginx", "-g", "daemon off;"]
|
||||
-474
@@ -1,474 +0,0 @@
|
||||
{
|
||||
"annotations": {
|
||||
"list": [
|
||||
{
|
||||
"builtIn": 1,
|
||||
"datasource": "-- Grafana --",
|
||||
"enable": true,
|
||||
"hide": true,
|
||||
"iconColor": "rgba(0, 211, 255, 1)",
|
||||
"name": "Annotations & Alerts",
|
||||
"type": "dashboard"
|
||||
}
|
||||
]
|
||||
},
|
||||
"editable": true,
|
||||
"gnetId": null,
|
||||
"graphTooltip": 0,
|
||||
"links": [],
|
||||
"panels": [
|
||||
{
|
||||
"datasource": "Prometheus",
|
||||
"description": "",
|
||||
"fieldConfig": {
|
||||
"defaults": {
|
||||
"custom": {},
|
||||
"mappings": [],
|
||||
"thresholds": {
|
||||
"mode": "absolute",
|
||||
"steps": [
|
||||
{
|
||||
"color": "green",
|
||||
"value": null
|
||||
},
|
||||
{
|
||||
"color": "red",
|
||||
"value": 80
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"overrides": []
|
||||
},
|
||||
"gridPos": {
|
||||
"h": 7,
|
||||
"w": 7,
|
||||
"x": 0,
|
||||
"y": 0
|
||||
},
|
||||
"id": 2,
|
||||
"options": {
|
||||
"colorMode": "value",
|
||||
"graphMode": "area",
|
||||
"justifyMode": "auto",
|
||||
"orientation": "auto",
|
||||
"reduceOptions": {
|
||||
"calcs": [
|
||||
"mean"
|
||||
],
|
||||
"fields": "",
|
||||
"values": false
|
||||
},
|
||||
"textMode": "auto"
|
||||
},
|
||||
"pluginVersion": "7.1.3",
|
||||
"targets": [
|
||||
{
|
||||
"expr": "Ethereum_to_Substrate_Exchange_best_block_numbers",
|
||||
"instant": true,
|
||||
"interval": "",
|
||||
"legendFormat": "Best {{type}} block",
|
||||
"refId": "A"
|
||||
}
|
||||
],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "Best finalized blocks",
|
||||
"type": "stat"
|
||||
},
|
||||
{
|
||||
"datasource": "Prometheus",
|
||||
"fieldConfig": {
|
||||
"defaults": {
|
||||
"custom": {},
|
||||
"mappings": [],
|
||||
"thresholds": {
|
||||
"mode": "absolute",
|
||||
"steps": [
|
||||
{
|
||||
"color": "green",
|
||||
"value": null
|
||||
},
|
||||
{
|
||||
"color": "red",
|
||||
"value": 80
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"overrides": []
|
||||
},
|
||||
"gridPos": {
|
||||
"h": 7,
|
||||
"w": 5,
|
||||
"x": 7,
|
||||
"y": 0
|
||||
},
|
||||
"id": 12,
|
||||
"options": {
|
||||
"colorMode": "value",
|
||||
"graphMode": "area",
|
||||
"justifyMode": "auto",
|
||||
"orientation": "auto",
|
||||
"reduceOptions": {
|
||||
"calcs": [
|
||||
"mean"
|
||||
],
|
||||
"fields": "",
|
||||
"values": false
|
||||
},
|
||||
"textMode": "auto"
|
||||
},
|
||||
"pluginVersion": "7.1.3",
|
||||
"targets": [
|
||||
{
|
||||
"expr": "Ethereum_to_Substrate_Exchange_processed_blocks",
|
||||
"instant": true,
|
||||
"interval": "",
|
||||
"legendFormat": "",
|
||||
"refId": "A"
|
||||
}
|
||||
],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "Number of processed blocks since last restart",
|
||||
"type": "stat"
|
||||
},
|
||||
{
|
||||
"aliasColors": {},
|
||||
"bars": false,
|
||||
"dashLength": 10,
|
||||
"dashes": false,
|
||||
"datasource": "Prometheus",
|
||||
"fieldConfig": {
|
||||
"defaults": {
|
||||
"custom": {},
|
||||
"links": []
|
||||
},
|
||||
"overrides": []
|
||||
},
|
||||
"fill": 1,
|
||||
"fillGradient": 0,
|
||||
"gridPos": {
|
||||
"h": 9,
|
||||
"w": 6,
|
||||
"x": 12,
|
||||
"y": 0
|
||||
},
|
||||
"hiddenSeries": false,
|
||||
"id": 6,
|
||||
"legend": {
|
||||
"avg": false,
|
||||
"current": false,
|
||||
"max": false,
|
||||
"min": false,
|
||||
"show": true,
|
||||
"total": false,
|
||||
"values": false
|
||||
},
|
||||
"lines": true,
|
||||
"linewidth": 1,
|
||||
"nullPointMode": "null",
|
||||
"percentage": false,
|
||||
"pluginVersion": "7.1.3",
|
||||
"pointradius": 2,
|
||||
"points": false,
|
||||
"renderer": "flot",
|
||||
"seriesOverrides": [],
|
||||
"spaceLength": 10,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"expr": "Ethereum_to_Substrate_Exchange_system_average_load",
|
||||
"interval": "",
|
||||
"legendFormat": "Average system load in last {{over}}",
|
||||
"refId": "A"
|
||||
}
|
||||
],
|
||||
"thresholds": [
|
||||
{
|
||||
"colorMode": "critical",
|
||||
"fill": true,
|
||||
"line": true,
|
||||
"op": "gt",
|
||||
"value": null
|
||||
}
|
||||
],
|
||||
"timeFrom": null,
|
||||
"timeRegions": [],
|
||||
"timeShift": null,
|
||||
"title": "Average System Load",
|
||||
"tooltip": {
|
||||
"shared": true,
|
||||
"sort": 0,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"buckets": null,
|
||||
"mode": "time",
|
||||
"name": null,
|
||||
"show": true,
|
||||
"values": []
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"format": "short",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"format": "short",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
}
|
||||
],
|
||||
"yaxis": {
|
||||
"align": false,
|
||||
"alignLevel": null
|
||||
}
|
||||
},
|
||||
{
|
||||
"datasource": "Prometheus",
|
||||
"description": "",
|
||||
"fieldConfig": {
|
||||
"defaults": {
|
||||
"custom": {},
|
||||
"mappings": [],
|
||||
"thresholds": {
|
||||
"mode": "absolute",
|
||||
"steps": [
|
||||
{
|
||||
"color": "green",
|
||||
"value": null
|
||||
},
|
||||
{
|
||||
"color": "red",
|
||||
"value": 80
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"overrides": []
|
||||
},
|
||||
"gridPos": {
|
||||
"h": 9,
|
||||
"w": 6,
|
||||
"x": 18,
|
||||
"y": 0
|
||||
},
|
||||
"id": 8,
|
||||
"options": {
|
||||
"orientation": "auto",
|
||||
"reduceOptions": {
|
||||
"calcs": [
|
||||
"mean"
|
||||
],
|
||||
"fields": "",
|
||||
"values": false
|
||||
},
|
||||
"showThresholdLabels": false,
|
||||
"showThresholdMarkers": true
|
||||
},
|
||||
"pluginVersion": "7.1.3",
|
||||
"targets": [
|
||||
{
|
||||
"expr": "Ethereum_to_Substrate_Exchange_process_cpu_usage_percentage",
|
||||
"interval": "",
|
||||
"legendFormat": "1 CPU = 100",
|
||||
"refId": "A"
|
||||
}
|
||||
],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "Relay Process CPU Usage",
|
||||
"type": "gauge"
|
||||
},
|
||||
{
|
||||
"datasource": "Prometheus",
|
||||
"fieldConfig": {
|
||||
"defaults": {
|
||||
"custom": {},
|
||||
"mappings": [],
|
||||
"thresholds": {
|
||||
"mode": "absolute",
|
||||
"steps": [
|
||||
{
|
||||
"color": "green",
|
||||
"value": null
|
||||
},
|
||||
{
|
||||
"color": "red",
|
||||
"value": 80
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"overrides": []
|
||||
},
|
||||
"gridPos": {
|
||||
"h": 10,
|
||||
"w": 12,
|
||||
"x": 0,
|
||||
"y": 7
|
||||
},
|
||||
"id": 14,
|
||||
"options": {
|
||||
"colorMode": "value",
|
||||
"graphMode": "area",
|
||||
"justifyMode": "auto",
|
||||
"orientation": "auto",
|
||||
"reduceOptions": {
|
||||
"calcs": [
|
||||
"mean"
|
||||
],
|
||||
"fields": "",
|
||||
"values": false
|
||||
},
|
||||
"textMode": "auto"
|
||||
},
|
||||
"pluginVersion": "7.1.3",
|
||||
"targets": [
|
||||
{
|
||||
"expr": "Ethereum_to_Substrate_Exchange_processed_transactions",
|
||||
"instant": true,
|
||||
"interval": "",
|
||||
"legendFormat": "{{type}} transactions",
|
||||
"refId": "A"
|
||||
}
|
||||
],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "Number of processed transactions since last restart",
|
||||
"type": "stat"
|
||||
},
|
||||
{
|
||||
"aliasColors": {},
|
||||
"bars": false,
|
||||
"dashLength": 10,
|
||||
"dashes": false,
|
||||
"datasource": "Prometheus",
|
||||
"fieldConfig": {
|
||||
"defaults": {
|
||||
"custom": {},
|
||||
"links": []
|
||||
},
|
||||
"overrides": []
|
||||
},
|
||||
"fill": 1,
|
||||
"fillGradient": 0,
|
||||
"gridPos": {
|
||||
"h": 8,
|
||||
"w": 12,
|
||||
"x": 12,
|
||||
"y": 9
|
||||
},
|
||||
"hiddenSeries": false,
|
||||
"id": 10,
|
||||
"legend": {
|
||||
"avg": false,
|
||||
"current": false,
|
||||
"max": false,
|
||||
"min": false,
|
||||
"show": true,
|
||||
"total": false,
|
||||
"values": false
|
||||
},
|
||||
"lines": true,
|
||||
"linewidth": 1,
|
||||
"nullPointMode": "null",
|
||||
"percentage": false,
|
||||
"pluginVersion": "7.1.3",
|
||||
"pointradius": 2,
|
||||
"points": false,
|
||||
"renderer": "flot",
|
||||
"seriesOverrides": [],
|
||||
"spaceLength": 10,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"expr": "Ethereum_to_Substrate_Exchange_process_memory_usage_bytes / 1024 / 1024",
|
||||
"interval": "",
|
||||
"legendFormat": "Process memory, MB",
|
||||
"refId": "A"
|
||||
}
|
||||
],
|
||||
"thresholds": [],
|
||||
"timeFrom": null,
|
||||
"timeRegions": [],
|
||||
"timeShift": null,
|
||||
"title": "Memory Usage for Relay Process",
|
||||
"tooltip": {
|
||||
"shared": true,
|
||||
"sort": 0,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"buckets": null,
|
||||
"mode": "time",
|
||||
"name": null,
|
||||
"show": true,
|
||||
"values": []
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"format": "short",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"format": "short",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
}
|
||||
],
|
||||
"yaxis": {
|
||||
"align": false,
|
||||
"alignLevel": null
|
||||
}
|
||||
}
|
||||
],
|
||||
"refresh": "5s",
|
||||
"schemaVersion": 26,
|
||||
"style": "dark",
|
||||
"tags": [],
|
||||
"templating": {
|
||||
"list": []
|
||||
},
|
||||
"time": {
|
||||
"from": "now-5m",
|
||||
"to": "now"
|
||||
},
|
||||
"timepicker": {
|
||||
"refresh_intervals": [
|
||||
"10s",
|
||||
"30s",
|
||||
"1m",
|
||||
"5m",
|
||||
"15m",
|
||||
"30m",
|
||||
"1h",
|
||||
"2h",
|
||||
"1d"
|
||||
]
|
||||
},
|
||||
"timezone": "",
|
||||
"title": "Ethereum PoA to Rialto Exchange Dashboard",
|
||||
"uid": "relay-poa-to-rialto-exchange",
|
||||
"version": 1
|
||||
}
|
||||
-694
@@ -1,694 +0,0 @@
|
||||
{
|
||||
"annotations": {
|
||||
"list": [
|
||||
{
|
||||
"builtIn": 1,
|
||||
"datasource": "-- Grafana --",
|
||||
"enable": true,
|
||||
"hide": true,
|
||||
"iconColor": "rgba(0, 211, 255, 1)",
|
||||
"name": "Annotations & Alerts",
|
||||
"type": "dashboard"
|
||||
}
|
||||
]
|
||||
},
|
||||
"editable": true,
|
||||
"gnetId": null,
|
||||
"graphTooltip": 0,
|
||||
"links": [],
|
||||
"panels": [
|
||||
{
|
||||
"alert": {
|
||||
"alertRuleTags": {},
|
||||
"conditions": [
|
||||
{
|
||||
"evaluator": {
|
||||
"params": [
|
||||
5
|
||||
],
|
||||
"type": "gt"
|
||||
},
|
||||
"operator": {
|
||||
"type": "and"
|
||||
},
|
||||
"query": {
|
||||
"params": [
|
||||
"A",
|
||||
"5m",
|
||||
"now"
|
||||
]
|
||||
},
|
||||
"reducer": {
|
||||
"params": [],
|
||||
"type": "min"
|
||||
},
|
||||
"type": "query"
|
||||
}
|
||||
],
|
||||
"executionErrorState": "alerting",
|
||||
"for": "5m",
|
||||
"frequency": "5m",
|
||||
"handler": 1,
|
||||
"message": "",
|
||||
"name": "Synced Header Difference is Over 5 (Ethereum PoA to Rialto)",
|
||||
"noDataState": "no_data",
|
||||
"notifications": []
|
||||
},
|
||||
"aliasColors": {},
|
||||
"bars": false,
|
||||
"dashLength": 10,
|
||||
"dashes": false,
|
||||
"datasource": "Prometheus",
|
||||
"description": "Shows how many headers behind the target chain is from the source chain.",
|
||||
"fieldConfig": {
|
||||
"defaults": {
|
||||
"custom": {}
|
||||
},
|
||||
"overrides": []
|
||||
},
|
||||
"fill": 1,
|
||||
"fillGradient": 0,
|
||||
"gridPos": {
|
||||
"h": 8,
|
||||
"w": 12,
|
||||
"x": 0,
|
||||
"y": 0
|
||||
},
|
||||
"hiddenSeries": false,
|
||||
"id": 14,
|
||||
"legend": {
|
||||
"avg": false,
|
||||
"current": false,
|
||||
"max": false,
|
||||
"min": false,
|
||||
"show": true,
|
||||
"total": false,
|
||||
"values": false
|
||||
},
|
||||
"lines": true,
|
||||
"linewidth": 1,
|
||||
"nullPointMode": "null",
|
||||
"percentage": false,
|
||||
"pluginVersion": "7.1.3",
|
||||
"pointradius": 2,
|
||||
"points": false,
|
||||
"renderer": "flot",
|
||||
"seriesOverrides": [],
|
||||
"spaceLength": 10,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"expr": "max(Ethereum_to_Substrate_Sync_best_block_numbers{node=\"source\"}) - max(Ethereum_to_Substrate_Sync_best_block_numbers{node=\"target\"})",
|
||||
"format": "table",
|
||||
"instant": false,
|
||||
"interval": "",
|
||||
"legendFormat": "",
|
||||
"refId": "A"
|
||||
}
|
||||
],
|
||||
"thresholds": [
|
||||
{
|
||||
"colorMode": "critical",
|
||||
"fill": true,
|
||||
"line": true,
|
||||
"op": "gt",
|
||||
"value": 5
|
||||
}
|
||||
],
|
||||
"timeFrom": null,
|
||||
"timeRegions": [],
|
||||
"timeShift": null,
|
||||
"title": "Difference Between Source and Target Headers",
|
||||
"tooltip": {
|
||||
"shared": true,
|
||||
"sort": 0,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"buckets": null,
|
||||
"mode": "time",
|
||||
"name": null,
|
||||
"show": true,
|
||||
"values": []
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"format": "short",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"format": "short",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
}
|
||||
],
|
||||
"yaxis": {
|
||||
"align": false,
|
||||
"alignLevel": null
|
||||
}
|
||||
},
|
||||
{
|
||||
"alert": {
|
||||
"alertRuleTags": {},
|
||||
"conditions": [
|
||||
{
|
||||
"evaluator": {
|
||||
"params": [
|
||||
5
|
||||
],
|
||||
"type": "lt"
|
||||
},
|
||||
"operator": {
|
||||
"type": "and"
|
||||
},
|
||||
"query": {
|
||||
"params": [
|
||||
"A",
|
||||
"2m",
|
||||
"now"
|
||||
]
|
||||
},
|
||||
"reducer": {
|
||||
"params": [],
|
||||
"type": "min"
|
||||
},
|
||||
"type": "query"
|
||||
}
|
||||
],
|
||||
"executionErrorState": "alerting",
|
||||
"for": "3m",
|
||||
"frequency": "5m",
|
||||
"handler": 1,
|
||||
"name": "No New Headers (Ethereum PoA to Rialto)",
|
||||
"noDataState": "no_data",
|
||||
"notifications": []
|
||||
},
|
||||
"aliasColors": {},
|
||||
"bars": false,
|
||||
"dashLength": 10,
|
||||
"dashes": false,
|
||||
"datasource": "Prometheus",
|
||||
"description": "How many headers has the relay synced from the source node in the last 2 mins?",
|
||||
"fieldConfig": {
|
||||
"defaults": {
|
||||
"custom": {}
|
||||
},
|
||||
"overrides": []
|
||||
},
|
||||
"fill": 1,
|
||||
"fillGradient": 0,
|
||||
"gridPos": {
|
||||
"h": 8,
|
||||
"w": 12,
|
||||
"x": 12,
|
||||
"y": 0
|
||||
},
|
||||
"hiddenSeries": false,
|
||||
"id": 16,
|
||||
"legend": {
|
||||
"avg": false,
|
||||
"current": false,
|
||||
"max": false,
|
||||
"min": false,
|
||||
"show": true,
|
||||
"total": false,
|
||||
"values": false
|
||||
},
|
||||
"lines": true,
|
||||
"linewidth": 1,
|
||||
"nullPointMode": "null",
|
||||
"percentage": false,
|
||||
"pluginVersion": "7.1.3",
|
||||
"pointradius": 2,
|
||||
"points": false,
|
||||
"renderer": "flot",
|
||||
"seriesOverrides": [],
|
||||
"spaceLength": 10,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"expr": "max_over_time(Ethereum_to_Substrate_Sync_best_block_numbers{node=\"source\"}[2m])-min_over_time(Ethereum_to_Substrate_Sync_best_block_numbers{node=\"source\"}[2m])",
|
||||
"interval": "",
|
||||
"legendFormat": "Number of new Headers on Ethereum PoA (Last 2 Mins)",
|
||||
"refId": "A"
|
||||
}
|
||||
],
|
||||
"thresholds": [
|
||||
{
|
||||
"colorMode": "critical",
|
||||
"fill": true,
|
||||
"line": true,
|
||||
"op": "lt",
|
||||
"value": 5
|
||||
}
|
||||
],
|
||||
"timeFrom": null,
|
||||
"timeRegions": [],
|
||||
"timeShift": null,
|
||||
"title": "Headers Synced on Rialto (Last 2 Mins)",
|
||||
"tooltip": {
|
||||
"shared": true,
|
||||
"sort": 0,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"buckets": null,
|
||||
"mode": "time",
|
||||
"name": null,
|
||||
"show": true,
|
||||
"values": []
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"format": "short",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"format": "short",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
}
|
||||
],
|
||||
"yaxis": {
|
||||
"align": false,
|
||||
"alignLevel": null
|
||||
}
|
||||
},
|
||||
{
|
||||
"datasource": "Prometheus",
|
||||
"fieldConfig": {
|
||||
"defaults": {
|
||||
"custom": {
|
||||
"align": null
|
||||
},
|
||||
"mappings": [],
|
||||
"thresholds": {
|
||||
"mode": "absolute",
|
||||
"steps": [
|
||||
{
|
||||
"color": "green",
|
||||
"value": null
|
||||
},
|
||||
{
|
||||
"color": "red",
|
||||
"value": 80
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"overrides": []
|
||||
},
|
||||
"gridPos": {
|
||||
"h": 6,
|
||||
"w": 12,
|
||||
"x": 0,
|
||||
"y": 8
|
||||
},
|
||||
"id": 2,
|
||||
"interval": "5s",
|
||||
"options": {
|
||||
"colorMode": "value",
|
||||
"graphMode": "area",
|
||||
"justifyMode": "auto",
|
||||
"orientation": "auto",
|
||||
"reduceOptions": {
|
||||
"calcs": [
|
||||
"mean"
|
||||
],
|
||||
"fields": "",
|
||||
"values": false
|
||||
},
|
||||
"textMode": "auto"
|
||||
},
|
||||
"pluginVersion": "7.1.3",
|
||||
"targets": [
|
||||
{
|
||||
"expr": "Ethereum_to_Substrate_Sync_best_block_numbers",
|
||||
"format": "time_series",
|
||||
"instant": true,
|
||||
"interval": "",
|
||||
"intervalFactor": 1,
|
||||
"legendFormat": "Best Known Header on {{node}} Node",
|
||||
"refId": "A"
|
||||
}
|
||||
],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "Best Blocks according to Relay",
|
||||
"type": "stat"
|
||||
},
|
||||
{
|
||||
"aliasColors": {},
|
||||
"bars": false,
|
||||
"dashLength": 10,
|
||||
"dashes": false,
|
||||
"datasource": "Prometheus",
|
||||
"description": "",
|
||||
"fieldConfig": {
|
||||
"defaults": {
|
||||
"custom": {}
|
||||
},
|
||||
"overrides": []
|
||||
},
|
||||
"fill": 1,
|
||||
"fillGradient": 0,
|
||||
"gridPos": {
|
||||
"h": 8,
|
||||
"w": 6,
|
||||
"x": 12,
|
||||
"y": 8
|
||||
},
|
||||
"hiddenSeries": false,
|
||||
"id": 6,
|
||||
"legend": {
|
||||
"avg": false,
|
||||
"current": false,
|
||||
"max": false,
|
||||
"min": false,
|
||||
"show": true,
|
||||
"total": false,
|
||||
"values": false
|
||||
},
|
||||
"lines": true,
|
||||
"linewidth": 1,
|
||||
"nullPointMode": "null",
|
||||
"percentage": false,
|
||||
"pluginVersion": "7.1.3",
|
||||
"pointradius": 2,
|
||||
"points": false,
|
||||
"renderer": "flot",
|
||||
"seriesOverrides": [],
|
||||
"spaceLength": 10,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"expr": "Ethereum_to_Substrate_Sync_system_average_load",
|
||||
"interval": "",
|
||||
"legendFormat": "Average system load in last {{over}}",
|
||||
"refId": "A"
|
||||
}
|
||||
],
|
||||
"thresholds": [
|
||||
{
|
||||
"colorMode": "critical",
|
||||
"fill": true,
|
||||
"line": true,
|
||||
"op": "gt",
|
||||
"value": null
|
||||
}
|
||||
],
|
||||
"timeFrom": null,
|
||||
"timeRegions": [],
|
||||
"timeShift": null,
|
||||
"title": "Average System Load",
|
||||
"tooltip": {
|
||||
"shared": true,
|
||||
"sort": 0,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"buckets": null,
|
||||
"mode": "time",
|
||||
"name": null,
|
||||
"show": true,
|
||||
"values": []
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"format": "short",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"format": "short",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
}
|
||||
],
|
||||
"yaxis": {
|
||||
"align": false,
|
||||
"alignLevel": null
|
||||
}
|
||||
},
|
||||
{
|
||||
"datasource": "Prometheus",
|
||||
"fieldConfig": {
|
||||
"defaults": {
|
||||
"custom": {},
|
||||
"mappings": [],
|
||||
"thresholds": {
|
||||
"mode": "absolute",
|
||||
"steps": [
|
||||
{
|
||||
"color": "green",
|
||||
"value": null
|
||||
},
|
||||
{
|
||||
"color": "red",
|
||||
"value": 80
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"overrides": []
|
||||
},
|
||||
"gridPos": {
|
||||
"h": 8,
|
||||
"w": 6,
|
||||
"x": 18,
|
||||
"y": 8
|
||||
},
|
||||
"id": 12,
|
||||
"options": {
|
||||
"orientation": "auto",
|
||||
"reduceOptions": {
|
||||
"calcs": [
|
||||
"mean"
|
||||
],
|
||||
"fields": "",
|
||||
"values": false
|
||||
},
|
||||
"showThresholdLabels": false,
|
||||
"showThresholdMarkers": true
|
||||
},
|
||||
"pluginVersion": "7.1.3",
|
||||
"targets": [
|
||||
{
|
||||
"expr": "avg_over_time(Ethereum_to_Substrate_Sync_process_cpu_usage_percentage[1m])",
|
||||
"instant": true,
|
||||
"interval": "",
|
||||
"legendFormat": "1 CPU = 100",
|
||||
"refId": "A"
|
||||
}
|
||||
],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "Relay Process CPU Usage ",
|
||||
"type": "gauge"
|
||||
},
|
||||
{
|
||||
"datasource": "Prometheus",
|
||||
"description": "",
|
||||
"fieldConfig": {
|
||||
"defaults": {
|
||||
"custom": {},
|
||||
"mappings": [],
|
||||
"thresholds": {
|
||||
"mode": "absolute",
|
||||
"steps": [
|
||||
{
|
||||
"color": "green",
|
||||
"value": null
|
||||
},
|
||||
{
|
||||
"color": "red",
|
||||
"value": 80
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"overrides": []
|
||||
},
|
||||
"gridPos": {
|
||||
"h": 10,
|
||||
"w": 12,
|
||||
"x": 0,
|
||||
"y": 14
|
||||
},
|
||||
"id": 4,
|
||||
"options": {
|
||||
"displayMode": "gradient",
|
||||
"orientation": "auto",
|
||||
"reduceOptions": {
|
||||
"calcs": [
|
||||
"mean"
|
||||
],
|
||||
"fields": "",
|
||||
"values": false
|
||||
},
|
||||
"showUnfilled": true
|
||||
},
|
||||
"pluginVersion": "7.1.3",
|
||||
"targets": [
|
||||
{
|
||||
"expr": "Ethereum_to_Substrate_Sync_blocks_in_state",
|
||||
"instant": true,
|
||||
"interval": "",
|
||||
"legendFormat": "{{state}}",
|
||||
"refId": "A"
|
||||
}
|
||||
],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "Queued Headers in Relay",
|
||||
"type": "bargauge"
|
||||
},
|
||||
{
|
||||
"aliasColors": {},
|
||||
"bars": false,
|
||||
"dashLength": 10,
|
||||
"dashes": false,
|
||||
"datasource": "Prometheus",
|
||||
"description": "",
|
||||
"fieldConfig": {
|
||||
"defaults": {
|
||||
"custom": {}
|
||||
},
|
||||
"overrides": []
|
||||
},
|
||||
"fill": 1,
|
||||
"fillGradient": 0,
|
||||
"gridPos": {
|
||||
"h": 8,
|
||||
"w": 12,
|
||||
"x": 12,
|
||||
"y": 16
|
||||
},
|
||||
"hiddenSeries": false,
|
||||
"id": 10,
|
||||
"legend": {
|
||||
"avg": false,
|
||||
"current": false,
|
||||
"max": false,
|
||||
"min": false,
|
||||
"show": true,
|
||||
"total": false,
|
||||
"values": false
|
||||
},
|
||||
"lines": true,
|
||||
"linewidth": 1,
|
||||
"nullPointMode": "null",
|
||||
"percentage": false,
|
||||
"pluginVersion": "7.1.3",
|
||||
"pointradius": 2,
|
||||
"points": false,
|
||||
"renderer": "flot",
|
||||
"seriesOverrides": [],
|
||||
"spaceLength": 10,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"expr": "Ethereum_to_Substrate_Sync_process_memory_usage_bytes / 1024 / 1024",
|
||||
"interval": "",
|
||||
"legendFormat": "Process memory, MB",
|
||||
"refId": "A"
|
||||
}
|
||||
],
|
||||
"thresholds": [],
|
||||
"timeFrom": null,
|
||||
"timeRegions": [],
|
||||
"timeShift": null,
|
||||
"title": "Memory Usage for Relay Process",
|
||||
"tooltip": {
|
||||
"shared": true,
|
||||
"sort": 0,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"buckets": null,
|
||||
"mode": "time",
|
||||
"name": null,
|
||||
"show": true,
|
||||
"values": []
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"format": "short",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"format": "short",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
}
|
||||
],
|
||||
"yaxis": {
|
||||
"align": false,
|
||||
"alignLevel": null
|
||||
}
|
||||
}
|
||||
],
|
||||
"refresh": "5s",
|
||||
"schemaVersion": 26,
|
||||
"style": "dark",
|
||||
"tags": [],
|
||||
"templating": {
|
||||
"list": []
|
||||
},
|
||||
"time": {
|
||||
"from": "now-5m",
|
||||
"to": "now"
|
||||
},
|
||||
"timepicker": {
|
||||
"refresh_intervals": [
|
||||
"10s",
|
||||
"30s",
|
||||
"1m",
|
||||
"5m",
|
||||
"15m",
|
||||
"30m",
|
||||
"1h",
|
||||
"2h",
|
||||
"1d"
|
||||
]
|
||||
},
|
||||
"timezone": "",
|
||||
"title": "Ethereum PoA to Rialto Header Sync Dashboard",
|
||||
"uid": "relay-poa-to-rialto-headers",
|
||||
"version": 1
|
||||
}
|
||||
-694
@@ -1,694 +0,0 @@
|
||||
{
|
||||
"annotations": {
|
||||
"list": [
|
||||
{
|
||||
"builtIn": 1,
|
||||
"datasource": "-- Grafana --",
|
||||
"enable": true,
|
||||
"hide": true,
|
||||
"iconColor": "rgba(0, 211, 255, 1)",
|
||||
"name": "Annotations & Alerts",
|
||||
"type": "dashboard"
|
||||
}
|
||||
]
|
||||
},
|
||||
"editable": true,
|
||||
"gnetId": null,
|
||||
"graphTooltip": 0,
|
||||
"links": [],
|
||||
"panels": [
|
||||
{
|
||||
"alert": {
|
||||
"alertRuleTags": {},
|
||||
"conditions": [
|
||||
{
|
||||
"evaluator": {
|
||||
"params": [
|
||||
5
|
||||
],
|
||||
"type": "gt"
|
||||
},
|
||||
"operator": {
|
||||
"type": "and"
|
||||
},
|
||||
"query": {
|
||||
"params": [
|
||||
"A",
|
||||
"5m",
|
||||
"now"
|
||||
]
|
||||
},
|
||||
"reducer": {
|
||||
"params": [],
|
||||
"type": "min"
|
||||
},
|
||||
"type": "query"
|
||||
}
|
||||
],
|
||||
"executionErrorState": "alerting",
|
||||
"for": "5m",
|
||||
"frequency": "5m",
|
||||
"handler": 1,
|
||||
"message": "",
|
||||
"name": "Synced Header Difference is Over 5 (Rialto to Ethereum PoA)",
|
||||
"noDataState": "no_data",
|
||||
"notifications": []
|
||||
},
|
||||
"aliasColors": {},
|
||||
"bars": false,
|
||||
"dashLength": 10,
|
||||
"dashes": false,
|
||||
"datasource": "Prometheus",
|
||||
"description": "Shows how many headers behind the target chain is from the source chain.",
|
||||
"fieldConfig": {
|
||||
"defaults": {
|
||||
"custom": {}
|
||||
},
|
||||
"overrides": []
|
||||
},
|
||||
"fill": 1,
|
||||
"fillGradient": 0,
|
||||
"gridPos": {
|
||||
"h": 8,
|
||||
"w": 12,
|
||||
"x": 0,
|
||||
"y": 0
|
||||
},
|
||||
"hiddenSeries": false,
|
||||
"id": 14,
|
||||
"legend": {
|
||||
"avg": false,
|
||||
"current": false,
|
||||
"max": false,
|
||||
"min": false,
|
||||
"show": true,
|
||||
"total": false,
|
||||
"values": false
|
||||
},
|
||||
"lines": true,
|
||||
"linewidth": 1,
|
||||
"nullPointMode": "null",
|
||||
"percentage": false,
|
||||
"pluginVersion": "7.1.3",
|
||||
"pointradius": 2,
|
||||
"points": false,
|
||||
"renderer": "flot",
|
||||
"seriesOverrides": [],
|
||||
"spaceLength": 10,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"expr": "max(Substrate_to_Ethereum_Sync_best_block_numbers{node=\"source\"}) - max(Substrate_to_Ethereum_Sync_best_block_numbers{node=\"target\"})",
|
||||
"format": "table",
|
||||
"instant": false,
|
||||
"interval": "",
|
||||
"legendFormat": "",
|
||||
"refId": "A"
|
||||
}
|
||||
],
|
||||
"thresholds": [
|
||||
{
|
||||
"colorMode": "critical",
|
||||
"fill": true,
|
||||
"line": true,
|
||||
"op": "gt",
|
||||
"value": 5
|
||||
}
|
||||
],
|
||||
"timeFrom": null,
|
||||
"timeRegions": [],
|
||||
"timeShift": null,
|
||||
"title": "Difference Between Source and Target Headers",
|
||||
"tooltip": {
|
||||
"shared": true,
|
||||
"sort": 0,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"buckets": null,
|
||||
"mode": "time",
|
||||
"name": null,
|
||||
"show": true,
|
||||
"values": []
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"format": "short",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"format": "short",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
}
|
||||
],
|
||||
"yaxis": {
|
||||
"align": false,
|
||||
"alignLevel": null
|
||||
}
|
||||
},
|
||||
{
|
||||
"alert": {
|
||||
"alertRuleTags": {},
|
||||
"conditions": [
|
||||
{
|
||||
"evaluator": {
|
||||
"params": [
|
||||
5
|
||||
],
|
||||
"type": "lt"
|
||||
},
|
||||
"operator": {
|
||||
"type": "and"
|
||||
},
|
||||
"query": {
|
||||
"params": [
|
||||
"A",
|
||||
"2m",
|
||||
"now"
|
||||
]
|
||||
},
|
||||
"reducer": {
|
||||
"params": [],
|
||||
"type": "min"
|
||||
},
|
||||
"type": "query"
|
||||
}
|
||||
],
|
||||
"executionErrorState": "alerting",
|
||||
"for": "3m",
|
||||
"frequency": "5m",
|
||||
"handler": 1,
|
||||
"name": "No New Headers (Rialto to Ethereum PoA)",
|
||||
"noDataState": "no_data",
|
||||
"notifications": []
|
||||
},
|
||||
"aliasColors": {},
|
||||
"bars": false,
|
||||
"dashLength": 10,
|
||||
"dashes": false,
|
||||
"datasource": "Prometheus",
|
||||
"description": "How many headers has the relay synced from the source node in the last 2 mins?",
|
||||
"fieldConfig": {
|
||||
"defaults": {
|
||||
"custom": {}
|
||||
},
|
||||
"overrides": []
|
||||
},
|
||||
"fill": 1,
|
||||
"fillGradient": 0,
|
||||
"gridPos": {
|
||||
"h": 8,
|
||||
"w": 12,
|
||||
"x": 12,
|
||||
"y": 0
|
||||
},
|
||||
"hiddenSeries": false,
|
||||
"id": 16,
|
||||
"legend": {
|
||||
"avg": false,
|
||||
"current": false,
|
||||
"max": false,
|
||||
"min": false,
|
||||
"show": true,
|
||||
"total": false,
|
||||
"values": false
|
||||
},
|
||||
"lines": true,
|
||||
"linewidth": 1,
|
||||
"nullPointMode": "null",
|
||||
"percentage": false,
|
||||
"pluginVersion": "7.1.3",
|
||||
"pointradius": 2,
|
||||
"points": false,
|
||||
"renderer": "flot",
|
||||
"seriesOverrides": [],
|
||||
"spaceLength": 10,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"expr": "max_over_time(Substrate_to_Ethereum_Sync_best_block_numbers{node=\"source\"}[2m])-min_over_time(Substrate_to_Ethereum_Sync_best_block_numbers{node=\"source\"}[2m])",
|
||||
"interval": "",
|
||||
"legendFormat": "Number of new Headers on Rialto (Last 2 Mins)",
|
||||
"refId": "A"
|
||||
}
|
||||
],
|
||||
"thresholds": [
|
||||
{
|
||||
"colorMode": "critical",
|
||||
"fill": true,
|
||||
"line": true,
|
||||
"op": "lt",
|
||||
"value": 5
|
||||
}
|
||||
],
|
||||
"timeFrom": null,
|
||||
"timeRegions": [],
|
||||
"timeShift": null,
|
||||
"title": "Headers Synced on Ethereum PoA (Last 2 Mins)",
|
||||
"tooltip": {
|
||||
"shared": true,
|
||||
"sort": 0,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"buckets": null,
|
||||
"mode": "time",
|
||||
"name": null,
|
||||
"show": true,
|
||||
"values": []
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"format": "short",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"format": "short",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
}
|
||||
],
|
||||
"yaxis": {
|
||||
"align": false,
|
||||
"alignLevel": null
|
||||
}
|
||||
},
|
||||
{
|
||||
"datasource": "Prometheus",
|
||||
"fieldConfig": {
|
||||
"defaults": {
|
||||
"custom": {
|
||||
"align": null
|
||||
},
|
||||
"mappings": [],
|
||||
"thresholds": {
|
||||
"mode": "absolute",
|
||||
"steps": [
|
||||
{
|
||||
"color": "green",
|
||||
"value": null
|
||||
},
|
||||
{
|
||||
"color": "red",
|
||||
"value": 80
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"overrides": []
|
||||
},
|
||||
"gridPos": {
|
||||
"h": 6,
|
||||
"w": 12,
|
||||
"x": 0,
|
||||
"y": 8
|
||||
},
|
||||
"id": 2,
|
||||
"interval": "5s",
|
||||
"options": {
|
||||
"colorMode": "value",
|
||||
"graphMode": "area",
|
||||
"justifyMode": "auto",
|
||||
"orientation": "auto",
|
||||
"reduceOptions": {
|
||||
"calcs": [
|
||||
"mean"
|
||||
],
|
||||
"fields": "",
|
||||
"values": false
|
||||
},
|
||||
"textMode": "auto"
|
||||
},
|
||||
"pluginVersion": "7.1.3",
|
||||
"targets": [
|
||||
{
|
||||
"expr": "Substrate_to_Ethereum_Sync_best_block_numbers",
|
||||
"format": "time_series",
|
||||
"instant": true,
|
||||
"interval": "",
|
||||
"intervalFactor": 1,
|
||||
"legendFormat": "Best Known Header on {{node}} Node",
|
||||
"refId": "A"
|
||||
}
|
||||
],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "Best Blocks according to Relay",
|
||||
"type": "stat"
|
||||
},
|
||||
{
|
||||
"aliasColors": {},
|
||||
"bars": false,
|
||||
"dashLength": 10,
|
||||
"dashes": false,
|
||||
"datasource": "Prometheus",
|
||||
"description": "",
|
||||
"fieldConfig": {
|
||||
"defaults": {
|
||||
"custom": {}
|
||||
},
|
||||
"overrides": []
|
||||
},
|
||||
"fill": 1,
|
||||
"fillGradient": 0,
|
||||
"gridPos": {
|
||||
"h": 8,
|
||||
"w": 6,
|
||||
"x": 12,
|
||||
"y": 8
|
||||
},
|
||||
"hiddenSeries": false,
|
||||
"id": 6,
|
||||
"legend": {
|
||||
"avg": false,
|
||||
"current": false,
|
||||
"max": false,
|
||||
"min": false,
|
||||
"show": true,
|
||||
"total": false,
|
||||
"values": false
|
||||
},
|
||||
"lines": true,
|
||||
"linewidth": 1,
|
||||
"nullPointMode": "null",
|
||||
"percentage": false,
|
||||
"pluginVersion": "7.1.3",
|
||||
"pointradius": 2,
|
||||
"points": false,
|
||||
"renderer": "flot",
|
||||
"seriesOverrides": [],
|
||||
"spaceLength": 10,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"expr": "Substrate_to_Ethereum_Sync_system_average_load",
|
||||
"interval": "",
|
||||
"legendFormat": "Average system load in last {{over}}",
|
||||
"refId": "A"
|
||||
}
|
||||
],
|
||||
"thresholds": [
|
||||
{
|
||||
"colorMode": "critical",
|
||||
"fill": true,
|
||||
"line": true,
|
||||
"op": "gt",
|
||||
"value": null
|
||||
}
|
||||
],
|
||||
"timeFrom": null,
|
||||
"timeRegions": [],
|
||||
"timeShift": null,
|
||||
"title": "Average System Load",
|
||||
"tooltip": {
|
||||
"shared": true,
|
||||
"sort": 0,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"buckets": null,
|
||||
"mode": "time",
|
||||
"name": null,
|
||||
"show": true,
|
||||
"values": []
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"format": "short",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"format": "short",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
}
|
||||
],
|
||||
"yaxis": {
|
||||
"align": false,
|
||||
"alignLevel": null
|
||||
}
|
||||
},
|
||||
{
|
||||
"datasource": "Prometheus",
|
||||
"fieldConfig": {
|
||||
"defaults": {
|
||||
"custom": {},
|
||||
"mappings": [],
|
||||
"thresholds": {
|
||||
"mode": "absolute",
|
||||
"steps": [
|
||||
{
|
||||
"color": "green",
|
||||
"value": null
|
||||
},
|
||||
{
|
||||
"color": "red",
|
||||
"value": 80
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"overrides": []
|
||||
},
|
||||
"gridPos": {
|
||||
"h": 8,
|
||||
"w": 6,
|
||||
"x": 18,
|
||||
"y": 8
|
||||
},
|
||||
"id": 12,
|
||||
"options": {
|
||||
"orientation": "auto",
|
||||
"reduceOptions": {
|
||||
"calcs": [
|
||||
"mean"
|
||||
],
|
||||
"fields": "",
|
||||
"values": false
|
||||
},
|
||||
"showThresholdLabels": false,
|
||||
"showThresholdMarkers": true
|
||||
},
|
||||
"pluginVersion": "7.1.3",
|
||||
"targets": [
|
||||
{
|
||||
"expr": "avg_over_time(Substrate_to_Ethereum_Sync_process_cpu_usage_percentage[1m])",
|
||||
"instant": true,
|
||||
"interval": "",
|
||||
"legendFormat": "1 CPU = 100",
|
||||
"refId": "A"
|
||||
}
|
||||
],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "Relay Process CPU Usage ",
|
||||
"type": "gauge"
|
||||
},
|
||||
{
|
||||
"datasource": "Prometheus",
|
||||
"description": "",
|
||||
"fieldConfig": {
|
||||
"defaults": {
|
||||
"custom": {},
|
||||
"mappings": [],
|
||||
"thresholds": {
|
||||
"mode": "absolute",
|
||||
"steps": [
|
||||
{
|
||||
"color": "green",
|
||||
"value": null
|
||||
},
|
||||
{
|
||||
"color": "red",
|
||||
"value": 80
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"overrides": []
|
||||
},
|
||||
"gridPos": {
|
||||
"h": 10,
|
||||
"w": 12,
|
||||
"x": 0,
|
||||
"y": 14
|
||||
},
|
||||
"id": 4,
|
||||
"options": {
|
||||
"displayMode": "gradient",
|
||||
"orientation": "auto",
|
||||
"reduceOptions": {
|
||||
"calcs": [
|
||||
"mean"
|
||||
],
|
||||
"fields": "",
|
||||
"values": false
|
||||
},
|
||||
"showUnfilled": true
|
||||
},
|
||||
"pluginVersion": "7.1.3",
|
||||
"targets": [
|
||||
{
|
||||
"expr": "Substrate_to_Ethereum_Sync_blocks_in_state",
|
||||
"instant": true,
|
||||
"interval": "",
|
||||
"legendFormat": "{{state}}",
|
||||
"refId": "A"
|
||||
}
|
||||
],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "Queued Headers in Relay",
|
||||
"type": "bargauge"
|
||||
},
|
||||
{
|
||||
"aliasColors": {},
|
||||
"bars": false,
|
||||
"dashLength": 10,
|
||||
"dashes": false,
|
||||
"datasource": "Prometheus",
|
||||
"description": "",
|
||||
"fieldConfig": {
|
||||
"defaults": {
|
||||
"custom": {}
|
||||
},
|
||||
"overrides": []
|
||||
},
|
||||
"fill": 1,
|
||||
"fillGradient": 0,
|
||||
"gridPos": {
|
||||
"h": 8,
|
||||
"w": 12,
|
||||
"x": 12,
|
||||
"y": 16
|
||||
},
|
||||
"hiddenSeries": false,
|
||||
"id": 10,
|
||||
"legend": {
|
||||
"avg": false,
|
||||
"current": false,
|
||||
"max": false,
|
||||
"min": false,
|
||||
"show": true,
|
||||
"total": false,
|
||||
"values": false
|
||||
},
|
||||
"lines": true,
|
||||
"linewidth": 1,
|
||||
"nullPointMode": "null",
|
||||
"percentage": false,
|
||||
"pluginVersion": "7.1.3",
|
||||
"pointradius": 2,
|
||||
"points": false,
|
||||
"renderer": "flot",
|
||||
"seriesOverrides": [],
|
||||
"spaceLength": 10,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"expr": "Substrate_to_Ethereum_Sync_process_memory_usage_bytes / 1024 / 1024",
|
||||
"interval": "",
|
||||
"legendFormat": "Process memory, MB",
|
||||
"refId": "A"
|
||||
}
|
||||
],
|
||||
"thresholds": [],
|
||||
"timeFrom": null,
|
||||
"timeRegions": [],
|
||||
"timeShift": null,
|
||||
"title": "Memory Usage for Relay Process",
|
||||
"tooltip": {
|
||||
"shared": true,
|
||||
"sort": 0,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"buckets": null,
|
||||
"mode": "time",
|
||||
"name": null,
|
||||
"show": true,
|
||||
"values": []
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"format": "short",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"format": "short",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
}
|
||||
],
|
||||
"yaxis": {
|
||||
"align": false,
|
||||
"alignLevel": null
|
||||
}
|
||||
}
|
||||
],
|
||||
"refresh": "5s",
|
||||
"schemaVersion": 26,
|
||||
"style": "dark",
|
||||
"tags": [],
|
||||
"templating": {
|
||||
"list": []
|
||||
},
|
||||
"time": {
|
||||
"from": "now-5m",
|
||||
"to": "now"
|
||||
},
|
||||
"timepicker": {
|
||||
"refresh_intervals": [
|
||||
"10s",
|
||||
"30s",
|
||||
"1m",
|
||||
"5m",
|
||||
"15m",
|
||||
"30m",
|
||||
"1h",
|
||||
"2h",
|
||||
"1d"
|
||||
]
|
||||
},
|
||||
"timezone": "",
|
||||
"title": "Rialto to Ethereum PoA Header Sync Dashboard",
|
||||
"uid": "relay-rialto-to-poa-headers",
|
||||
"version": 1
|
||||
}
|
||||
@@ -1,4 +0,0 @@
|
||||
- targets:
|
||||
- relay-headers-poa-to-rialto:9616
|
||||
- relay-poa-exchange-rialto:9616
|
||||
- relay-headers-rialto-to-poa:9616
|
||||
@@ -1,94 +0,0 @@
|
||||
# This Compose file should be built using the Rialto and Eth-PoA node
|
||||
# compose files. Otherwise it won't work.
|
||||
#
|
||||
# Exposed ports: 9616, 9716, 9816, 9916, 8080
|
||||
|
||||
version: '3.5'
|
||||
services:
|
||||
# We override these nodes to make sure we have the correct chain config for this network.
|
||||
poa-node-arthur: &poa-node
|
||||
volumes:
|
||||
- ./bridges/poa-rialto/poa-config:/config
|
||||
poa-node-bertha:
|
||||
<<: *poa-node
|
||||
poa-node-carlos:
|
||||
<<: *poa-node
|
||||
|
||||
# We provide an override for this particular node since this is a public facing
|
||||
# node which we use to connect from things like Polkadot JS Apps.
|
||||
rialto-node-charlie:
|
||||
environment:
|
||||
VIRTUAL_HOST: rialto.bridges.test-installations.parity.io,wss.rialto.brucke.link
|
||||
VIRTUAL_PORT: 9944
|
||||
LETSENCRYPT_HOST: rialto.bridges.test-installations.parity.io,wss.rialto.brucke.link
|
||||
LETSENCRYPT_EMAIL: admin@parity.io
|
||||
|
||||
relay-headers-poa-to-rialto: ð-poa-relay
|
||||
image: paritytech/ethereum-poa-relay
|
||||
entrypoint: /entrypoints/relay-headers-poa-to-rialto-entrypoint.sh
|
||||
volumes:
|
||||
- ./bridges/poa-rialto/entrypoints:/entrypoints
|
||||
environment:
|
||||
RUST_LOG: rpc=trace,bridge=trace
|
||||
ports:
|
||||
- "9616:9616"
|
||||
depends_on: &all-nodes
|
||||
- poa-node-arthur
|
||||
- poa-node-bertha
|
||||
- poa-node-carlos
|
||||
- rialto-node-alice
|
||||
- rialto-node-bob
|
||||
- rialto-node-charlie
|
||||
- rialto-node-dave
|
||||
- rialto-node-eve
|
||||
|
||||
relay-poa-exchange-rialto:
|
||||
<<: *eth-poa-relay
|
||||
entrypoint: /entrypoints/relay-poa-exchange-rialto-entrypoint.sh
|
||||
ports:
|
||||
- "9716:9616"
|
||||
|
||||
relay-headers-rialto-to-poa:
|
||||
<<: *eth-poa-relay
|
||||
entrypoint: /entrypoints/relay-headers-rialto-to-poa-entrypoint.sh
|
||||
ports:
|
||||
- "9816:9616"
|
||||
|
||||
poa-exchange-tx-generator:
|
||||
<<: *eth-poa-relay
|
||||
entrypoint: /entrypoints/poa-exchange-tx-generator-entrypoint.sh
|
||||
environment:
|
||||
EXCHANGE_GEN_MIN_AMOUNT_FINNEY: ${EXCHANGE_GEN_MIN_AMOUNT_FINNEY:-1}
|
||||
EXCHANGE_GEN_MAX_AMOUNT_FINNEY: ${EXCHANGE_GEN_MAX_AMOUNT_FINNEY:-100000}
|
||||
EXCHANGE_GEN_MAX_SUBMIT_DELAY_S: ${EXCHANGE_GEN_MAX_SUBMIT_DELAY_S:-60}
|
||||
ports:
|
||||
- "9916:9616"
|
||||
depends_on:
|
||||
- relay-headers-poa-to-rialto
|
||||
- relay-headers-rialto-to-poa
|
||||
|
||||
front-end:
|
||||
build:
|
||||
context: .
|
||||
dockerfile: ./bridges/poa-rialto/Front-end.Dockerfile
|
||||
args:
|
||||
SUBSTRATE_PROVIDER: ${UI_SUBSTRATE_PROVIDER:-ws://localhost:9944}
|
||||
ETHEREUM_PROVIDER: ${UI_ETHEREUM_PROVIDER:-http://localhost:8545}
|
||||
EXPECTED_ETHEREUM_NETWORK_ID: ${UI_EXPECTED_ETHEREUM_NETWORK_ID:-105}
|
||||
ports:
|
||||
- "8080:80"
|
||||
|
||||
# Note: These are being overridden from the top level `monitoring` compose file.
|
||||
prometheus-metrics:
|
||||
volumes:
|
||||
- ./bridges/poa-rialto/dashboard/prometheus/targets.yml:/etc/prometheus/targets-poa-rialto.yml
|
||||
depends_on: *all-nodes
|
||||
|
||||
grafana-dashboard:
|
||||
volumes:
|
||||
- ./bridges/poa-rialto/dashboard/grafana:/etc/grafana/dashboards/poa-rialto:ro
|
||||
environment:
|
||||
VIRTUAL_HOST: dashboard.rialto.bridges.test-installations.parity.io,grafana.rialto.brucke.link
|
||||
VIRTUAL_PORT: 3000
|
||||
LETSENCRYPT_HOST: dashboard.rialto.bridges.test-installations.parity.io,grafana.rialto.brucke.link
|
||||
LETSENCRYPT_EMAIL: admin@parity.io
|
||||
-99
@@ -1,99 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# THIS SCRIPT IS NOT INTENDED FOR USE IN PRODUCTION ENVIRONMENT
|
||||
#
|
||||
# This scripts periodically calls relay binary to generate PoA -> Substrate
|
||||
# exchange transaction from hardcoded PoA senders (assuming they have
|
||||
# enough funds) to hardcoded Substrate recipients.
|
||||
|
||||
set -eu
|
||||
|
||||
# Path to relay binary
|
||||
RELAY_BINARY_PATH=${RELAY_BINARY_PATH:-./ethereum-poa-relay}
|
||||
# Ethereum node host
|
||||
ETH_HOST=${ETH_HOST:-poa-node-arthur}
|
||||
# Ethereum node websocket port
|
||||
ETH_PORT=${ETH_PORT:-8546}
|
||||
# Ethereum chain id
|
||||
ETH_CHAIN_ID=${ETH_CHAIN_ID:-105}
|
||||
|
||||
# All possible Substrate recipients (hex-encoded public keys)
|
||||
SUB_RECIPIENTS=(
|
||||
# Alice (5GrwvaEF...)
|
||||
"d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d"\
|
||||
# Bob (5FHneW46...)
|
||||
"8eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48"\
|
||||
# Charlie (5FLSigC9...)
|
||||
"90b5ab205c6974c9ea841be688864633dc9ca8a357843eeacf2314649965fe22"\
|
||||
# Dave (5DAAnrj7...)
|
||||
"306721211d5404bd9da88e0204360a1a9ab8b87c66c1bc2fcdd37f3c2222cc20"\
|
||||
# Eve (5HGjWAeF...)
|
||||
"e659a7a1628cdd93febc04a4e0646ea20e9f5f0ce097d9a05290d4a9e054df4e"\
|
||||
# Ferdie (5CiPPseX...)
|
||||
"1cbd2d43530a44705ad088af313e18f80b53ef16b36177cd4b77b846f2a5f07c"
|
||||
)
|
||||
# All possible Ethereum signers (hex-encoded private keys)
|
||||
# (note that we're tracking nonce here => sender must not send concurrent transactions)
|
||||
ETH_SIGNERS=(
|
||||
# Bertha account (0x007594304039c2937a12220338aab821d819f5a4) and its current nonce (unknown by default)
|
||||
"bc10e0f21e33456ade82182dd1ebdbdd89bca923d4e4adbd90fb5b44d7098cbe" ""
|
||||
)
|
||||
# Minimal exchange amount (in finney)
|
||||
MIN_EXCHANGE_AMOUNT_FINNEY=${EXCHANGE_GEN_MIN_AMOUNT_FINNEY:-1} # 0.1 ETH
|
||||
# Maximal exchange amount (in finney)
|
||||
MAX_EXCHANGE_AMOUNT_FINNEY=${EXCHANGE_GEN_MAX_AMOUNT_FINNEY:-100000} # 100 ETH
|
||||
# Max delay before submitting transactions (s)
|
||||
MAX_SUBMIT_DELAY_S=${EXCHANGE_GEN_MAX_SUBMIT_DELAY_S:-60}
|
||||
|
||||
while true
|
||||
do
|
||||
# sleep some time
|
||||
SUBMIT_DELAY_S=`shuf -i 0-$MAX_SUBMIT_DELAY_S -n 1`
|
||||
echo "Sleeping $SUBMIT_DELAY_S seconds..."
|
||||
sleep $SUBMIT_DELAY_S
|
||||
|
||||
# select recipient
|
||||
SUB_RECIPIENTS_MAX_INDEX=$((${#SUB_RECIPIENTS[@]} - 1))
|
||||
SUB_RECIPIENT_INDEX=`shuf -i 0-$SUB_RECIPIENTS_MAX_INDEX -n 1`
|
||||
SUB_RECIPIENT=${SUB_RECIPIENTS[$SUB_RECIPIENT_INDEX]}
|
||||
|
||||
# select signer
|
||||
ETH_SIGNERS_MAX_INDEX=$(((${#ETH_SIGNERS[@]} - 1) / 2))
|
||||
ETH_SIGNERS_INDEX=`shuf -i 0-$ETH_SIGNERS_MAX_INDEX -n 1`
|
||||
ETH_SIGNER_INDEX=$(($ETH_SIGNERS_INDEX * 2))
|
||||
ETH_SIGNER_NONCE_INDEX=$(($ETH_SIGNER_INDEX + 1))
|
||||
ETH_SIGNER=${ETH_SIGNERS[$ETH_SIGNER_INDEX]}
|
||||
ETH_SIGNER_NONCE=${ETH_SIGNERS[$ETH_SIGNER_NONCE_INDEX]}
|
||||
if [ -z $ETH_SIGNER_NONCE ]; then
|
||||
ETH_SIGNER_NONCE_ARG=
|
||||
else
|
||||
ETH_SIGNER_NONCE_ARG=`printf -- "--eth-nonce=%s" $ETH_SIGNER_NONCE`
|
||||
fi
|
||||
|
||||
# select amount
|
||||
EXCHANGE_AMOUNT_FINNEY=`shuf -i $MIN_EXCHANGE_AMOUNT_FINNEY-$MAX_EXCHANGE_AMOUNT_FINNEY -n 1`
|
||||
EXCHANGE_AMOUNT_ETH=`printf "%s000" $EXCHANGE_AMOUNT_FINNEY`
|
||||
|
||||
# submit transaction
|
||||
echo "Sending $EXCHANGE_AMOUNT_ETH from PoA:$ETH_SIGNER to Substrate:$SUB_RECIPIENT. Nonce: $ETH_SIGNER_NONCE"
|
||||
set -x
|
||||
SUBMIT_OUTPUT=`$RELAY_BINARY_PATH 2>&1 eth-submit-exchange-tx \
|
||||
--sub-recipient=$SUB_RECIPIENT \
|
||||
--eth-host=$ETH_HOST \
|
||||
--eth-port=$ETH_PORT \
|
||||
--eth-chain-id=$ETH_CHAIN_ID \
|
||||
--eth-signer=$ETH_SIGNER \
|
||||
--eth-amount=$EXCHANGE_AMOUNT_ETH \
|
||||
$ETH_SIGNER_NONCE_ARG`
|
||||
set +x
|
||||
|
||||
# update sender nonce
|
||||
SUBMIT_OUTPUT_RE='nonce: ([0-9]+)'
|
||||
if [[ $SUBMIT_OUTPUT =~ $SUBMIT_OUTPUT_RE ]]; then
|
||||
ETH_SIGNER_NONCE=${BASH_REMATCH[1]}
|
||||
ETH_SIGNERS[$ETH_SIGNER_NONCE_INDEX]=$(($ETH_SIGNER_NONCE + 1))
|
||||
else
|
||||
echo "Missing nonce in relay response: $SUBMIT_OUTPUT"
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
-15
@@ -1,15 +0,0 @@
|
||||
#!/bin/bash
|
||||
set -xeu
|
||||
|
||||
sleep 20
|
||||
curl -v http://poa-node-arthur:8545/api/health
|
||||
curl -v http://poa-node-bertha:8545/api/health
|
||||
curl -v http://poa-node-carlos:8545/api/health
|
||||
curl -v http://rialto-node-alice:9933/health
|
||||
curl -v http://rialto-node-bob:9933/health
|
||||
curl -v http://rialto-node-charlie:9933/health
|
||||
|
||||
/home/user/ethereum-poa-relay eth-to-sub \
|
||||
--sub-host rialto-node-alice \
|
||||
--eth-host poa-node-arthur \
|
||||
--prometheus-host=0.0.0.0
|
||||
-26
@@ -1,26 +0,0 @@
|
||||
#!/bin/bash
|
||||
set -xeu
|
||||
|
||||
sleep 20
|
||||
|
||||
curl -v http://rialto-node-bob:9933/health
|
||||
curl -v http://poa-node-bertha:8545/api/health
|
||||
|
||||
# Try to deploy contracts first
|
||||
# networkID = 0x69
|
||||
# Arthur's key.
|
||||
/home/user/ethereum-poa-relay eth-deploy-contract \
|
||||
--eth-chain-id 105 \
|
||||
--eth-signer 0399dbd15cf6ee8250895a1f3873eb1e10e23ca18e8ed0726c63c4aea356e87d \
|
||||
--sub-host rialto-node-bob \
|
||||
--eth-host poa-node-bertha || echo "Failed to deploy contracts."
|
||||
|
||||
sleep 10
|
||||
echo "Starting SUB -> ETH relay"
|
||||
/home/user/ethereum-poa-relay sub-to-eth \
|
||||
--eth-contract c9a61fb29e971d1dabfd98657969882ef5d0beee \
|
||||
--eth-chain-id 105 \
|
||||
--eth-signer 0399dbd15cf6ee8250895a1f3873eb1e10e23ca18e8ed0726c63c4aea356e87d \
|
||||
--sub-host rialto-node-bob \
|
||||
--eth-host poa-node-bertha \
|
||||
--prometheus-host=0.0.0.0
|
||||
-16
@@ -1,16 +0,0 @@
|
||||
#!/bin/bash
|
||||
set -xeu
|
||||
|
||||
sleep 20
|
||||
curl -v http://poa-node-arthur:8545/api/health
|
||||
curl -v http://poa-node-bertha:8545/api/health
|
||||
curl -v http://poa-node-carlos:8545/api/health
|
||||
curl -v http://rialto-node-alice:9933/health
|
||||
curl -v http://rialto-node-bob:9933/health
|
||||
curl -v http://rialto-node-charlie:9933/health
|
||||
|
||||
/home/user/ethereum-poa-relay eth-exchange-sub \
|
||||
--sub-host rialto-node-alice \
|
||||
--sub-signer //Bob \
|
||||
--eth-host poa-node-arthur \
|
||||
--prometheus-host=0.0.0.0
|
||||
-1
@@ -1 +0,0 @@
|
||||
{}
|
||||
@@ -1 +0,0 @@
|
||||
{"id":"dd04f316-bc9d-2deb-4a34-51014cd5f34f","version":3,"crypto":{"cipher":"aes-128-ctr","cipherparams":{"iv":"aa91e6f0e6cf48208be4a1bcf15c6f30"},"ciphertext":"6e057599b13a87e8181bb39a40e14848fdc97958d493ddfa6bb1260350f69328","kdf":"pbkdf2","kdfparams":{"c":10240,"dklen":32,"prf":"hmac-sha256","salt":"79dd8c09c5c066b830179a2558a51efca6d97c0db2c4128090a01835786823c5"},"mac":"8f8b8e2c9de29ec8eefc54a60055e30ae7ff4dd4a367eaf38880edb887da771e"},"address":"005e714f896a8b7cede9d38688c1a81de72a58e4","name":"","meta":"{}"}
|
||||
@@ -1 +0,0 @@
|
||||
{"id":"6d1e690f-0b52-35f7-989b-46100e7c65ed","version":3,"crypto":{"cipher":"aes-128-ctr","cipherparams":{"iv":"a5b4d0466834e75c9fd29c6cbbac57ad"},"ciphertext":"102ac328cbe66d8cb8515c42e3268776a9be4419a5cb7b79852860b1e691c15b","kdf":"pbkdf2","kdfparams":{"c":10240,"dklen":32,"prf":"hmac-sha256","salt":"e8daf2e70086b0cacf925d368fd3f60cada1285e39a42c4cc73c135368cfdbef"},"mac":"1bc3b750900a1143c64ba9e677d69e1093aab47cb003ba09f3cd595a3b422db5"},"address":"007594304039c2937a12220338aab821d819f5a4","name":"","meta":"{}"}
|
||||
@@ -1 +0,0 @@
|
||||
{"id":"ffaebba1-f1b9-8758-7034-0314040b1396","version":3,"crypto":{"cipher":"aes-128-ctr","cipherparams":{"iv":"97f124bc8a7bf55d00eb2755c2b50364"},"ciphertext":"b87827816f33d2bef2dc3102a8a7744b86912f8ace10e45cb282a13487769ed2","kdf":"pbkdf2","kdfparams":{"c":10240,"dklen":32,"prf":"hmac-sha256","salt":"3114c67a05bff7831d112083f566b176bfc874aea160eebadbe5564e406ee85c"},"mac":"e9bfe8fd6f612bc036bb57659297fc03db022264f5086a1b5726972d3ab6f64a"},"address":"004e7a39907f090e19b0b80a277e77b72b22e269","name":"","meta":"{}"}
|
||||
@@ -1 +0,0 @@
|
||||
{"id":"ef9eb431-dc73-cf31-357e-736f64febe68","version":3,"crypto":{"cipher":"aes-128-ctr","cipherparams":{"iv":"7077f1c4170d9fc2e05c5956be32fb51"},"ciphertext":"a053be448768d984257aeb8f9c7913e3f54c6e6e741accad9f09dd70c2d9828c","kdf":"pbkdf2","kdfparams":{"c":10240,"dklen":32,"prf":"hmac-sha256","salt":"12580aa4624040970301e7474d3f9b2a93552bfe9ea2517f7119ccf8e91ebd0d"},"mac":"796dbb48adcfc09041fe39121632801d9f950d3c73dd47105180d8097d4f4491"},"address":"00eed42bf93b498f28acd21d207427a14074defe","name":"","meta":"{}"}
|
||||
@@ -1 +0,0 @@
|
||||
password
|
||||
@@ -1,20 +0,0 @@
|
||||
[parity]
|
||||
chain = "/config/poa.json"
|
||||
keys_path = "/config/keys"
|
||||
no_persistent_txqueue = true
|
||||
|
||||
[account]
|
||||
password = ["/config/pass"]
|
||||
|
||||
[network]
|
||||
reserved_peers = "/config/reserved"
|
||||
|
||||
[rpc]
|
||||
apis = ["all"]
|
||||
cors = ["moz-extension://*", "chrome-extension://*"]
|
||||
|
||||
[mining]
|
||||
force_sealing = true
|
||||
|
||||
[misc]
|
||||
unsafe_expose = true
|
||||
@@ -1,184 +0,0 @@
|
||||
{
|
||||
"name": "BridgePoa",
|
||||
"engine": {
|
||||
"authorityRound": {
|
||||
"params": {
|
||||
"stepDuration": 10,
|
||||
"validators": {
|
||||
"list": [
|
||||
"0x005e714f896a8b7cede9d38688c1a81de72a58e4",
|
||||
"0x007594304039c2937a12220338aab821d819f5a4",
|
||||
"0x004e7a39907f090e19b0b80a277e77b72b22e269"
|
||||
]
|
||||
},
|
||||
"validateScoreTransition": 0,
|
||||
"validateStepTransition": 0,
|
||||
"maximumUncleCountTransition": 0,
|
||||
"maximumUncleCount": 0,
|
||||
"emptyStepsTransition": "0xfffffffff",
|
||||
"maximumEmptySteps": 1
|
||||
}
|
||||
}
|
||||
},
|
||||
"params": {
|
||||
"accountStartNonce": "0x0",
|
||||
"eip1014Transition": "0x0",
|
||||
"eip1052Transition": "0x0",
|
||||
"eip140Transition": "0x0",
|
||||
"eip145Transition": "0x0",
|
||||
"eip150Transition": "0x0",
|
||||
"eip155Transition": "0x0",
|
||||
"eip160Transition": "0x0",
|
||||
"eip161abcTransition": "0x0",
|
||||
"eip161dTransition": "0x0",
|
||||
"eip211Transition": "0x0",
|
||||
"eip214Transition": "0x0",
|
||||
"eip658Transition": "0x0",
|
||||
"eip98Transition": "0x7fffffffffffff",
|
||||
"gasLimitBoundDivisor": "0x0400",
|
||||
"maxCodeSize": 24576,
|
||||
"maxCodeSizeTransition": "0x0",
|
||||
"maximumExtraDataSize": "0x20",
|
||||
"minGasLimit": "0x1388",
|
||||
"networkID" : "0x69",
|
||||
"validateChainIdTransition": "0x0",
|
||||
"validateReceiptsTransition": "0x0"
|
||||
},
|
||||
"genesis": {
|
||||
"seal": {
|
||||
"authorityRound": {
|
||||
"step": "0x0",
|
||||
"signature": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
|
||||
}
|
||||
},
|
||||
"difficulty": "0x20000",
|
||||
"author": "0x0000000000000000000000000000000000000000",
|
||||
"timestamp": "0x00",
|
||||
"parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
|
||||
"extraData": "0x",
|
||||
"gasLimit": "0x222222"
|
||||
},
|
||||
"accounts": {
|
||||
"0000000000000000000000000000000000000001": { "balance": "1", "nonce": "1048576", "builtin": { "name": "ecrecover", "pricing": { "linear": { "base": 3000, "word": 0 } } } },
|
||||
"0000000000000000000000000000000000000002": { "balance": "1", "nonce": "1048576", "builtin": { "name": "sha256", "pricing": { "linear": { "base": 60, "word": 12 } } } },
|
||||
"0000000000000000000000000000000000000003": { "balance": "1", "nonce": "1048576", "builtin": { "name": "ripemd160", "pricing": { "linear": { "base": 600, "word": 120 } } } },
|
||||
"0000000000000000000000000000000000000004": { "balance": "1", "nonce": "1048576", "builtin": { "name": "identity", "pricing": { "linear": { "base": 15, "word": 3 } } } },
|
||||
"0000000000000000000000000000000000000005": { "balance": "1", "builtin": { "name": "modexp", "activate_at": 0, "pricing": { "modexp": { "divisor": 20 } } } },
|
||||
"0000000000000000000000000000000000000006": {
|
||||
"balance": "1",
|
||||
"builtin": {
|
||||
"name": "alt_bn128_add",
|
||||
"pricing": {
|
||||
"0": {
|
||||
"price": { "alt_bn128_const_operations": { "price": 500 }}
|
||||
},
|
||||
"0x7fffffffffffff": {
|
||||
"info": "EIP 1108 transition",
|
||||
"price": { "alt_bn128_const_operations": { "price": 150 }}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"0000000000000000000000000000000000000007": {
|
||||
"balance": "1",
|
||||
"builtin": {
|
||||
"name": "alt_bn128_mul",
|
||||
"pricing": {
|
||||
"0": {
|
||||
"price": { "alt_bn128_const_operations": { "price": 40000 }}
|
||||
},
|
||||
"0x7fffffffffffff": {
|
||||
"info": "EIP 1108 transition",
|
||||
"price": { "alt_bn128_const_operations": { "price": 6000 }}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"0000000000000000000000000000000000000008": {
|
||||
"balance": "1",
|
||||
"builtin": {
|
||||
"name": "alt_bn128_pairing",
|
||||
"pricing": {
|
||||
"0": {
|
||||
"price": { "alt_bn128_pairing": { "base": 100000, "pair": 80000 }}
|
||||
},
|
||||
"0x7fffffffffffff": {
|
||||
"info": "EIP 1108 transition",
|
||||
"price": { "alt_bn128_pairing": { "base": 45000, "pair": 34000 }}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"0x0000000000000000000000000000000000000009": {
|
||||
"builtin": {
|
||||
"name": "blake2_f",
|
||||
"activate_at": "0xd751a5",
|
||||
"pricing": {
|
||||
"blake2_f": {
|
||||
"gas_per_round": 1
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"0x0000000000000000000000000000000000000010": {
|
||||
"builtin": {
|
||||
"name": "parse_substrate_header",
|
||||
"pricing": {
|
||||
"linear": {
|
||||
"base": 3000,
|
||||
"word": 0
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"0x0000000000000000000000000000000000000011": {
|
||||
"builtin": {
|
||||
"name": "get_substrate_header_signal",
|
||||
"pricing": {
|
||||
"linear": {
|
||||
"base": 3000,
|
||||
"word": 0
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"0x0000000000000000000000000000000000000012": {
|
||||
"builtin": {
|
||||
"name": "verify_substrate_finality_proof",
|
||||
"pricing": {
|
||||
"linear": {
|
||||
"base": 3000,
|
||||
"word": 0
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"0x0000000000000000000000000000000000000013": {
|
||||
"builtin": {
|
||||
"name": "my_test",
|
||||
"pricing": {
|
||||
"linear": {
|
||||
"base": 3000,
|
||||
"word": 0
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"0x005e714f896a8b7cede9d38688c1a81de72a58e4": {
|
||||
"balance": "1606938044258990275541962092341162602522202993782792835301376",
|
||||
"nonce": "0x1"
|
||||
},
|
||||
"0x007594304039c2937a12220338aab821d819f5a4": {
|
||||
"balance": "1606938044258990275541962092341162602522202993782792835301376",
|
||||
"nonce": "0x1"
|
||||
},
|
||||
"0x004e7a39907f090e19b0b80a277e77b72b22e269": {
|
||||
"balance": "1606938044258990275541962092341162602522202993782792835301376",
|
||||
"nonce": "0x1"
|
||||
},
|
||||
"0x00eed42bf93b498f28acd21d207427a14074defe": {
|
||||
"balance": "1606938044258990275541962092341162602522202993782792835301376",
|
||||
"nonce": "0x1"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,3 +0,0 @@
|
||||
enode://543d0874df46dff238d62547160f9d11e3d21897d7041bbbe46a04d2ee56d9eaf108f2133c0403159624f7647198e224d0755d23ad0e1a50c0912973af6e8a8a@poa-node-arthur:30303
|
||||
enode://710de70733e88a24032e53054985f7239e37351f5f3335a468a1a78a3026e9f090356973b00262c346a6608403df2c7107fc4def2cfe4995ea18a41292b9384f@poa-node-bertha:30303
|
||||
enode://943525f415b9482f1c49bd39eb979e4e2b406f4137450b0553bffa5cba2928e25ff89ef70f7325aad8a75dbb5955eaecc1aee7ac55d66bcaaa07c8ea58adb23a@poa-node-carlos:30303
|
||||
-1429
File diff suppressed because it is too large
Load Diff
-1420
File diff suppressed because it is too large
Load Diff
-454
@@ -1,454 +0,0 @@
|
||||
{
|
||||
"annotations": {
|
||||
"list": [
|
||||
{
|
||||
"builtIn": 1,
|
||||
"datasource": "-- Grafana --",
|
||||
"enable": true,
|
||||
"hide": true,
|
||||
"iconColor": "rgba(0, 211, 255, 1)",
|
||||
"name": "Annotations & Alerts",
|
||||
"type": "dashboard"
|
||||
}
|
||||
]
|
||||
},
|
||||
"editable": true,
|
||||
"gnetId": null,
|
||||
"graphTooltip": 0,
|
||||
"id": 9,
|
||||
"links": [],
|
||||
"panels": [
|
||||
{
|
||||
"aliasColors": {},
|
||||
"bars": false,
|
||||
"dashLength": 10,
|
||||
"dashes": false,
|
||||
"datasource": "Prometheus",
|
||||
"fieldConfig": {
|
||||
"defaults": {},
|
||||
"overrides": []
|
||||
},
|
||||
"fill": 1,
|
||||
"fillGradient": 0,
|
||||
"gridPos": {
|
||||
"h": 8,
|
||||
"w": 12,
|
||||
"x": 0,
|
||||
"y": 0
|
||||
},
|
||||
"hiddenSeries": false,
|
||||
"id": 4,
|
||||
"legend": {
|
||||
"avg": false,
|
||||
"current": false,
|
||||
"max": false,
|
||||
"min": false,
|
||||
"show": true,
|
||||
"total": false,
|
||||
"values": false
|
||||
},
|
||||
"lines": true,
|
||||
"linewidth": 1,
|
||||
"nullPointMode": "null",
|
||||
"options": {
|
||||
"alertThreshold": true
|
||||
},
|
||||
"percentage": false,
|
||||
"pluginVersion": "7.5.3",
|
||||
"pointradius": 2,
|
||||
"points": false,
|
||||
"renderer": "flot",
|
||||
"seriesOverrides": [],
|
||||
"spaceLength": 10,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"exemplar": true,
|
||||
"expr": "Rialto_to_Millau_MessageLane_00000000_rialto_storage_proof_overhead",
|
||||
"interval": "",
|
||||
"legendFormat": "Actual overhead",
|
||||
"refId": "A"
|
||||
},
|
||||
{
|
||||
"exemplar": true,
|
||||
"expr": "1024",
|
||||
"hide": false,
|
||||
"interval": "",
|
||||
"legendFormat": "At runtime (hardcoded)",
|
||||
"refId": "B"
|
||||
}
|
||||
],
|
||||
"thresholds": [],
|
||||
"timeFrom": null,
|
||||
"timeRegions": [],
|
||||
"timeShift": null,
|
||||
"title": "Rialto: storage proof overhead",
|
||||
"tooltip": {
|
||||
"shared": true,
|
||||
"sort": 0,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"buckets": null,
|
||||
"mode": "time",
|
||||
"name": null,
|
||||
"show": true,
|
||||
"values": []
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"$$hashKey": "object:111",
|
||||
"format": "short",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"$$hashKey": "object:112",
|
||||
"format": "short",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
}
|
||||
],
|
||||
"yaxis": {
|
||||
"align": false,
|
||||
"alignLevel": null
|
||||
}
|
||||
},
|
||||
{
|
||||
"aliasColors": {},
|
||||
"bars": false,
|
||||
"dashLength": 10,
|
||||
"dashes": false,
|
||||
"datasource": "Prometheus",
|
||||
"fieldConfig": {
|
||||
"defaults": {},
|
||||
"overrides": []
|
||||
},
|
||||
"fill": 1,
|
||||
"fillGradient": 0,
|
||||
"gridPos": {
|
||||
"h": 8,
|
||||
"w": 12,
|
||||
"x": 12,
|
||||
"y": 0
|
||||
},
|
||||
"hiddenSeries": false,
|
||||
"id": 2,
|
||||
"legend": {
|
||||
"avg": false,
|
||||
"current": false,
|
||||
"max": false,
|
||||
"min": false,
|
||||
"show": true,
|
||||
"total": false,
|
||||
"values": false
|
||||
},
|
||||
"lines": true,
|
||||
"linewidth": 1,
|
||||
"nullPointMode": "null",
|
||||
"options": {
|
||||
"alertThreshold": true
|
||||
},
|
||||
"percentage": false,
|
||||
"pluginVersion": "7.5.3",
|
||||
"pointradius": 2,
|
||||
"points": false,
|
||||
"renderer": "flot",
|
||||
"seriesOverrides": [],
|
||||
"spaceLength": 10,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"exemplar": true,
|
||||
"expr": "Westend_to_Millau_Sync_kusama_to_base_conversion_rate / Westend_to_Millau_Sync_polkadot_to_base_conversion_rate",
|
||||
"interval": "",
|
||||
"legendFormat": "Outside of runtime (actually Polkadot -> Kusama)",
|
||||
"refId": "A"
|
||||
},
|
||||
{
|
||||
"exemplar": true,
|
||||
"expr": "Rialto_to_Millau_MessageLane_00000000_rialto_millau_to_rialto_conversion_rate",
|
||||
"hide": false,
|
||||
"interval": "",
|
||||
"legendFormat": "At runtime",
|
||||
"refId": "B"
|
||||
}
|
||||
],
|
||||
"thresholds": [],
|
||||
"timeFrom": null,
|
||||
"timeRegions": [],
|
||||
"timeShift": null,
|
||||
"title": "Rialto: Millau -> Rialto conversion rate",
|
||||
"tooltip": {
|
||||
"shared": true,
|
||||
"sort": 0,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"buckets": null,
|
||||
"mode": "time",
|
||||
"name": null,
|
||||
"show": true,
|
||||
"values": []
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"$$hashKey": "object:49",
|
||||
"format": "short",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"$$hashKey": "object:50",
|
||||
"format": "short",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
}
|
||||
],
|
||||
"yaxis": {
|
||||
"align": false,
|
||||
"alignLevel": null
|
||||
}
|
||||
},
|
||||
{
|
||||
"aliasColors": {},
|
||||
"bars": false,
|
||||
"dashLength": 10,
|
||||
"dashes": false,
|
||||
"datasource": "Prometheus",
|
||||
"fieldConfig": {
|
||||
"defaults": {},
|
||||
"overrides": []
|
||||
},
|
||||
"fill": 1,
|
||||
"fillGradient": 0,
|
||||
"gridPos": {
|
||||
"h": 8,
|
||||
"w": 12,
|
||||
"x": 0,
|
||||
"y": 8
|
||||
},
|
||||
"hiddenSeries": false,
|
||||
"id": 5,
|
||||
"legend": {
|
||||
"avg": false,
|
||||
"current": false,
|
||||
"max": false,
|
||||
"min": false,
|
||||
"show": true,
|
||||
"total": false,
|
||||
"values": false
|
||||
},
|
||||
"lines": true,
|
||||
"linewidth": 1,
|
||||
"nullPointMode": "null",
|
||||
"options": {
|
||||
"alertThreshold": true
|
||||
},
|
||||
"percentage": false,
|
||||
"pluginVersion": "7.5.3",
|
||||
"pointradius": 2,
|
||||
"points": false,
|
||||
"renderer": "flot",
|
||||
"seriesOverrides": [],
|
||||
"spaceLength": 10,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"exemplar": true,
|
||||
"expr": "Millau_to_Rialto_MessageLane_00000000_millau_storage_proof_overhead",
|
||||
"interval": "",
|
||||
"legendFormat": "Actual overhead",
|
||||
"refId": "A"
|
||||
},
|
||||
{
|
||||
"exemplar": true,
|
||||
"expr": "1024",
|
||||
"hide": false,
|
||||
"interval": "",
|
||||
"legendFormat": "At runtime (hardcoded)",
|
||||
"refId": "B"
|
||||
}
|
||||
],
|
||||
"thresholds": [],
|
||||
"timeFrom": null,
|
||||
"timeRegions": [],
|
||||
"timeShift": null,
|
||||
"title": "Millau: storage proof overhead",
|
||||
"tooltip": {
|
||||
"shared": true,
|
||||
"sort": 0,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"buckets": null,
|
||||
"mode": "time",
|
||||
"name": null,
|
||||
"show": true,
|
||||
"values": []
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"$$hashKey": "object:111",
|
||||
"format": "short",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"$$hashKey": "object:112",
|
||||
"format": "short",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
}
|
||||
],
|
||||
"yaxis": {
|
||||
"align": false,
|
||||
"alignLevel": null
|
||||
}
|
||||
},
|
||||
{
|
||||
"aliasColors": {},
|
||||
"bars": false,
|
||||
"dashLength": 10,
|
||||
"dashes": false,
|
||||
"datasource": "Prometheus",
|
||||
"fieldConfig": {
|
||||
"defaults": {},
|
||||
"overrides": []
|
||||
},
|
||||
"fill": 1,
|
||||
"fillGradient": 0,
|
||||
"gridPos": {
|
||||
"h": 8,
|
||||
"w": 12,
|
||||
"x": 12,
|
||||
"y": 8
|
||||
},
|
||||
"hiddenSeries": false,
|
||||
"id": 6,
|
||||
"legend": {
|
||||
"avg": false,
|
||||
"current": false,
|
||||
"max": false,
|
||||
"min": false,
|
||||
"show": true,
|
||||
"total": false,
|
||||
"values": false
|
||||
},
|
||||
"lines": true,
|
||||
"linewidth": 1,
|
||||
"nullPointMode": "null",
|
||||
"options": {
|
||||
"alertThreshold": true
|
||||
},
|
||||
"percentage": false,
|
||||
"pluginVersion": "7.5.3",
|
||||
"pointradius": 2,
|
||||
"points": false,
|
||||
"renderer": "flot",
|
||||
"seriesOverrides": [],
|
||||
"spaceLength": 10,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"exemplar": true,
|
||||
"expr": "Westend_to_Millau_Sync_polkadot_to_base_conversion_rate / Westend_to_Millau_Sync_kusama_to_base_conversion_rate",
|
||||
"interval": "",
|
||||
"legendFormat": "Outside of runtime (actually Kusama -> Polkadot)",
|
||||
"refId": "A"
|
||||
},
|
||||
{
|
||||
"exemplar": true,
|
||||
"expr": "Millau_to_Rialto_MessageLane_00000000_millau_rialto_to_millau_conversion_rate",
|
||||
"hide": false,
|
||||
"interval": "",
|
||||
"legendFormat": "At runtime",
|
||||
"refId": "B"
|
||||
}
|
||||
],
|
||||
"thresholds": [],
|
||||
"timeFrom": null,
|
||||
"timeRegions": [],
|
||||
"timeShift": null,
|
||||
"title": "Millau: Rialto -> Millau conversion rate",
|
||||
"tooltip": {
|
||||
"shared": true,
|
||||
"sort": 0,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"buckets": null,
|
||||
"mode": "time",
|
||||
"name": null,
|
||||
"show": true,
|
||||
"values": []
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"$$hashKey": "object:49",
|
||||
"format": "short",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"$$hashKey": "object:50",
|
||||
"format": "short",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
}
|
||||
],
|
||||
"yaxis": {
|
||||
"align": false,
|
||||
"alignLevel": null
|
||||
}
|
||||
}
|
||||
],
|
||||
"refresh": "10s",
|
||||
"schemaVersion": 27,
|
||||
"style": "dark",
|
||||
"tags": [],
|
||||
"templating": {
|
||||
"list": []
|
||||
},
|
||||
"time": {
|
||||
"from": "now-1h",
|
||||
"to": "now"
|
||||
},
|
||||
"timepicker": {},
|
||||
"timezone": "",
|
||||
"title": "Rialto+Millau maintenance dashboard",
|
||||
"uid": "7AuyrjlMz",
|
||||
"version": 2
|
||||
}
|
||||
@@ -1,4 +0,0 @@
|
||||
- targets:
|
||||
- relay-millau-rialto:9616
|
||||
- relay-messages-millau-to-rialto-lane-00000001:9616
|
||||
- relay-messages-rialto-to-millau-lane-00000001:9616
|
||||
@@ -1,95 +0,0 @@
|
||||
# Exposed ports: 10016, 10116, 10216, 10316, 10416
|
||||
|
||||
version: '3.5'
|
||||
services:
|
||||
# We provide overrides for these particular nodes since they are public facing
|
||||
# nodes which we use to connect from things like Polkadot JS Apps.
|
||||
rialto-node-charlie:
|
||||
environment:
|
||||
VIRTUAL_HOST: wss.rialto.brucke.link
|
||||
VIRTUAL_PORT: 9944
|
||||
LETSENCRYPT_HOST: wss.rialto.brucke.link
|
||||
LETSENCRYPT_EMAIL: admin@parity.io
|
||||
|
||||
millau-node-charlie:
|
||||
environment:
|
||||
VIRTUAL_HOST: wss.millau.brucke.link
|
||||
VIRTUAL_PORT: 9944
|
||||
LETSENCRYPT_HOST: wss.millau.brucke.link
|
||||
LETSENCRYPT_EMAIL: admin@parity.io
|
||||
|
||||
relay-millau-rialto: &sub-bridge-relay
|
||||
image: paritytech/substrate-relay
|
||||
entrypoint: /entrypoints/relay-millau-rialto-entrypoint.sh
|
||||
volumes:
|
||||
- ./bridges/rialto-millau/entrypoints:/entrypoints
|
||||
environment:
|
||||
RUST_LOG: rpc=trace,bridge=trace
|
||||
ports:
|
||||
- "10016:9616"
|
||||
depends_on: &all-nodes
|
||||
- millau-node-alice
|
||||
- millau-node-bob
|
||||
- millau-node-charlie
|
||||
- millau-node-dave
|
||||
- millau-node-eve
|
||||
- rialto-node-alice
|
||||
- rialto-node-bob
|
||||
- rialto-node-charlie
|
||||
- rialto-node-dave
|
||||
- rialto-node-eve
|
||||
|
||||
relay-messages-millau-to-rialto-lane-00000001:
|
||||
<<: *sub-bridge-relay
|
||||
environment:
|
||||
MSG_EXCHANGE_GEN_LANE: "00000001"
|
||||
entrypoint: /entrypoints/relay-messages-millau-to-rialto-entrypoint.sh
|
||||
ports:
|
||||
- "10116:9616"
|
||||
depends_on:
|
||||
- relay-millau-rialto
|
||||
|
||||
relay-messages-millau-to-rialto-generator:
|
||||
<<: *sub-bridge-relay
|
||||
environment:
|
||||
MSG_EXCHANGE_GEN_SECONDARY_LANE: "00000001"
|
||||
entrypoint: /entrypoints/relay-messages-to-rialto-generator-entrypoint.sh
|
||||
ports:
|
||||
- "10216:9616"
|
||||
depends_on:
|
||||
- relay-millau-rialto
|
||||
|
||||
relay-messages-rialto-to-millau-lane-00000001:
|
||||
<<: *sub-bridge-relay
|
||||
environment:
|
||||
MSG_EXCHANGE_GEN_LANE: "00000001"
|
||||
entrypoint: /entrypoints/relay-messages-rialto-to-millau-entrypoint.sh
|
||||
ports:
|
||||
- "10316:9616"
|
||||
depends_on:
|
||||
- relay-millau-rialto
|
||||
|
||||
relay-messages-rialto-to-millau-generator:
|
||||
<<: *sub-bridge-relay
|
||||
environment:
|
||||
MSG_EXCHANGE_GEN_SECONDARY_LANE: "00000001"
|
||||
entrypoint: /entrypoints/relay-messages-to-millau-generator-entrypoint.sh
|
||||
ports:
|
||||
- "10416:9616"
|
||||
depends_on:
|
||||
- relay-millau-rialto
|
||||
|
||||
# Note: These are being overridden from the top level `monitoring` compose file.
|
||||
grafana-dashboard:
|
||||
environment:
|
||||
VIRTUAL_HOST: grafana.millau.brucke.link,grafana.rialto.brucke.link
|
||||
VIRTUAL_PORT: 3000
|
||||
LETSENCRYPT_HOST: grafana.millau.brucke.link,grafana.rialto.brucke.link
|
||||
LETSENCRYPT_EMAIL: admin@parity.io
|
||||
volumes:
|
||||
- ./bridges/rialto-millau/dashboard/grafana:/etc/grafana/dashboards/rialto-millau:ro
|
||||
|
||||
prometheus-metrics:
|
||||
volumes:
|
||||
- ./bridges/rialto-millau/dashboard/prometheus/targets.yml:/etc/prometheus/targets-rialto-millau.yml
|
||||
depends_on: *all-nodes
|
||||
-18
@@ -1,18 +0,0 @@
|
||||
#!/bin/bash
|
||||
set -xeu
|
||||
|
||||
sleep 20
|
||||
curl -v http://millau-node-bob:9933/health
|
||||
curl -v http://rialto-node-bob:9933/health
|
||||
|
||||
MESSAGE_LANE=${MSG_EXCHANGE_GEN_LANE:-00000000}
|
||||
|
||||
/home/user/substrate-relay relay-messages MillauToRialto \
|
||||
--lane $MESSAGE_LANE \
|
||||
--source-host millau-node-bob \
|
||||
--source-port 9944 \
|
||||
--source-signer //Eve \
|
||||
--target-host rialto-node-bob \
|
||||
--target-port 9944 \
|
||||
--target-signer //Eve \
|
||||
--prometheus-host=0.0.0.0
|
||||
-18
@@ -1,18 +0,0 @@
|
||||
#!/bin/bash
|
||||
set -xeu
|
||||
|
||||
sleep 20
|
||||
curl -v http://millau-node-bob:9933/health
|
||||
curl -v http://rialto-node-bob:9933/health
|
||||
|
||||
MESSAGE_LANE=${MSG_EXCHANGE_GEN_LANE:-00000000}
|
||||
|
||||
/home/user/substrate-relay relay-messages RialtoToMillau \
|
||||
--lane $MESSAGE_LANE \
|
||||
--source-host rialto-node-bob \
|
||||
--source-port 9944 \
|
||||
--source-signer //Ferdie \
|
||||
--target-host millau-node-bob \
|
||||
--target-port 9944 \
|
||||
--target-signer //Ferdie \
|
||||
--prometheus-host=0.0.0.0
|
||||
-121
@@ -1,121 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# THIS SCRIPT IS NOT INTENDED FOR USE IN PRODUCTION ENVIRONMENT
|
||||
#
|
||||
# This scripts periodically calls the Substrate relay binary to generate messages. These messages
|
||||
# are sent from the Rialto network to the Millau network.
|
||||
|
||||
set -eu
|
||||
|
||||
# Max delay before submitting transactions (s)
|
||||
MAX_SUBMIT_DELAY_S=${MSG_EXCHANGE_GEN_MAX_SUBMIT_DELAY_S:-30}
|
||||
MESSAGE_LANE=${MSG_EXCHANGE_GEN_LANE:-00000000}
|
||||
SECONDARY_MESSAGE_LANE=${MSG_EXCHANGE_GEN_SECONDARY_LANE}
|
||||
MAX_UNCONFIRMED_MESSAGES_AT_INBOUND_LANE=1024
|
||||
FERDIE_ADDR=5oSLwptwgySxh5vz1HdvznQJjbQVgwYSvHEpYYeTXu1Ei8j7
|
||||
|
||||
SHARED_CMD="/home/user/substrate-relay send-message RialtoToMillau"
|
||||
SHARED_HOST="--source-host rialto-node-bob --source-port 9944"
|
||||
DAVE_SIGNER="--source-signer //Dave --target-signer //Dave"
|
||||
|
||||
SEND_MESSAGE="$SHARED_CMD $SHARED_HOST $DAVE_SIGNER"
|
||||
|
||||
# Sleep a bit between messages
|
||||
rand_sleep() {
|
||||
SUBMIT_DELAY_S=`shuf -i 0-$MAX_SUBMIT_DELAY_S -n 1`
|
||||
echo "Sleeping $SUBMIT_DELAY_S seconds..."
|
||||
sleep $SUBMIT_DELAY_S
|
||||
}
|
||||
|
||||
# start sending large messages immediately
|
||||
LARGE_MESSAGES_TIME=0
|
||||
# start sending message packs in a hour
|
||||
BUNCH_OF_MESSAGES_TIME=3600
|
||||
|
||||
while true
|
||||
do
|
||||
rand_sleep
|
||||
echo "Sending Remark from Rialto to Millau using Target Origin"
|
||||
$SEND_MESSAGE \
|
||||
--lane $MESSAGE_LANE \
|
||||
--origin Target \
|
||||
remark
|
||||
|
||||
if [ ! -z $SECONDARY_MESSAGE_LANE ]; then
|
||||
echo "Sending Remark from Rialto to Millau using Target Origin using secondary lane: $SECONDARY_MESSAGE_LANE"
|
||||
$SEND_MESSAGE \
|
||||
--lane $SECONDARY_MESSAGE_LANE \
|
||||
--origin Target \
|
||||
remark
|
||||
fi
|
||||
|
||||
rand_sleep
|
||||
echo "Sending Transfer from Rialto to Millau using Target Origin"
|
||||
$SEND_MESSAGE \
|
||||
--lane $MESSAGE_LANE \
|
||||
--origin Target \
|
||||
transfer \
|
||||
--amount 1000000000 \
|
||||
--recipient $FERDIE_ADDR
|
||||
|
||||
rand_sleep
|
||||
echo "Sending Remark from Rialto to Millau using Source Origin"
|
||||
$SEND_MESSAGE \
|
||||
--lane $MESSAGE_LANE \
|
||||
--origin Source \
|
||||
remark
|
||||
|
||||
rand_sleep
|
||||
echo "Sending Transfer from Rialto to Millau using Source Origin"
|
||||
$SEND_MESSAGE \
|
||||
--lane $MESSAGE_LANE \
|
||||
--origin Source \
|
||||
transfer \
|
||||
--amount 1000000000 \
|
||||
--recipient $FERDIE_ADDR
|
||||
|
||||
# every other hour we're sending 3 large (size, weight, size+weight) messages
|
||||
if [ $SECONDS -ge $LARGE_MESSAGES_TIME ]; then
|
||||
LARGE_MESSAGES_TIME=$((SECONDS + 7200))
|
||||
|
||||
rand_sleep
|
||||
echo "Sending Maximal Size Remark from Rialto to Millau using Target Origin"
|
||||
$SEND_MESSAGE \
|
||||
--lane $MESSAGE_LANE \
|
||||
--origin Target \
|
||||
remark \
|
||||
--remark-size=max
|
||||
|
||||
rand_sleep
|
||||
echo "Sending Maximal Dispatch Weight Remark from Rialto to Millau using Target Origin"
|
||||
$SEND_MESSAGE \
|
||||
--lane $MESSAGE_LANE \
|
||||
--origin Target \
|
||||
--dispatch-weight=max \
|
||||
remark
|
||||
|
||||
rand_sleep
|
||||
echo "Sending Maximal Size and Dispatch Weight Remark from Rialto to Millau using Target Origin"
|
||||
$SEND_MESSAGE \
|
||||
--lane $MESSAGE_LANE \
|
||||
--origin Target \
|
||||
--dispatch-weight=max \
|
||||
remark \
|
||||
--remark-size=max
|
||||
|
||||
fi
|
||||
|
||||
# every other hour we're sending a bunch of small messages
|
||||
if [ $SECONDS -ge $BUNCH_OF_MESSAGES_TIME ]; then
|
||||
BUNCH_OF_MESSAGES_TIME=$((SECONDS + 7200))
|
||||
|
||||
for i in $(seq 1 $MAX_UNCONFIRMED_MESSAGES_AT_INBOUND_LANE);
|
||||
do
|
||||
$SEND_MESSAGE \
|
||||
--lane $MESSAGE_LANE \
|
||||
--origin Target \
|
||||
remark
|
||||
done
|
||||
|
||||
fi
|
||||
done
|
||||
-121
@@ -1,121 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# THIS SCRIPT IS NOT INTENDED FOR USE IN PRODUCTION ENVIRONMENT
|
||||
#
|
||||
# This scripts periodically calls the Substrate relay binary to generate messages. These messages
|
||||
# are sent from the Millau network to the Rialto network.
|
||||
|
||||
set -eu
|
||||
|
||||
# Max delay before submitting transactions (s)
|
||||
MAX_SUBMIT_DELAY_S=${MSG_EXCHANGE_GEN_MAX_SUBMIT_DELAY_S:-30}
|
||||
MESSAGE_LANE=${MSG_EXCHANGE_GEN_LANE:-00000000}
|
||||
SECONDARY_MESSAGE_LANE=${MSG_EXCHANGE_GEN_SECONDARY_LANE}
|
||||
MAX_UNCONFIRMED_MESSAGES_AT_INBOUND_LANE=128
|
||||
FERDIE_ADDR=6ztG3jPnJTwgZnnYsgCDXbbQVR82M96hBZtPvkN56A9668ZC
|
||||
|
||||
SHARED_CMD=" /home/user/substrate-relay send-message MillauToRialto"
|
||||
SHARED_HOST="--source-host millau-node-bob --source-port 9944"
|
||||
DAVE_SIGNER="--target-signer //Dave --source-signer //Dave"
|
||||
|
||||
SEND_MESSAGE="$SHARED_CMD $SHARED_HOST $DAVE_SIGNER"
|
||||
|
||||
# Sleep a bit between messages
|
||||
rand_sleep() {
|
||||
SUBMIT_DELAY_S=`shuf -i 0-$MAX_SUBMIT_DELAY_S -n 1`
|
||||
echo "Sleeping $SUBMIT_DELAY_S seconds..."
|
||||
sleep $SUBMIT_DELAY_S
|
||||
}
|
||||
|
||||
# start sending large messages immediately
|
||||
LARGE_MESSAGES_TIME=0
|
||||
# start sending message packs in a hour
|
||||
BUNCH_OF_MESSAGES_TIME=3600
|
||||
|
||||
while true
|
||||
do
|
||||
rand_sleep
|
||||
echo "Sending Remark from Millau to Rialto using Target Origin"
|
||||
$SEND_MESSAGE \
|
||||
--lane $MESSAGE_LANE \
|
||||
--origin Target \
|
||||
remark
|
||||
|
||||
if [ ! -z $SECONDARY_MESSAGE_LANE ]; then
|
||||
echo "Sending Remark from Millau to Rialto using Target Origin using secondary lane: $SECONDARY_MESSAGE_LANE"
|
||||
$SEND_MESSAGE \
|
||||
--lane $SECONDARY_MESSAGE_LANE \
|
||||
--origin Target \
|
||||
remark
|
||||
fi
|
||||
|
||||
rand_sleep
|
||||
echo "Sending Transfer from Millau to Rialto using Target Origin"
|
||||
$SEND_MESSAGE \
|
||||
--lane $MESSAGE_LANE \
|
||||
--origin Target \
|
||||
transfer \
|
||||
--amount 1000000000 \
|
||||
--recipient $FERDIE_ADDR
|
||||
|
||||
rand_sleep
|
||||
echo "Sending Remark from Millau to Rialto using Source Origin"
|
||||
$SEND_MESSAGE \
|
||||
--lane $MESSAGE_LANE \
|
||||
--origin Source \
|
||||
remark
|
||||
|
||||
rand_sleep
|
||||
echo "Sending Transfer from Millau to Rialto using Source Origin"
|
||||
$SEND_MESSAGE \
|
||||
--lane $MESSAGE_LANE \
|
||||
--origin Source \
|
||||
transfer \
|
||||
--amount 1000000000 \
|
||||
--recipient $FERDIE_ADDR
|
||||
|
||||
# every other hour we're sending 3 large (size, weight, size+weight) messages
|
||||
if [ $SECONDS -ge $LARGE_MESSAGES_TIME ]; then
|
||||
LARGE_MESSAGES_TIME=$((SECONDS + 7200))
|
||||
|
||||
rand_sleep
|
||||
echo "Sending Maximal Size Remark from Millau to Rialto using Target Origin"
|
||||
$SEND_MESSAGE \
|
||||
--lane $MESSAGE_LANE \
|
||||
--origin Target \
|
||||
remark \
|
||||
--remark-size=max
|
||||
|
||||
rand_sleep
|
||||
echo "Sending Maximal Dispatch Weight Remark from Millau to Rialto using Target Origin"
|
||||
$SEND_MESSAGE \
|
||||
--lane $MESSAGE_LANE \
|
||||
--origin Target \
|
||||
--dispatch-weight=max \
|
||||
remark
|
||||
|
||||
rand_sleep
|
||||
echo "Sending Maximal Size and Dispatch Weight Remark from Millau to Rialto using Target Origin"
|
||||
$SEND_MESSAGE \
|
||||
--lane $MESSAGE_LANE \
|
||||
--origin Target \
|
||||
--dispatch-weight=max \
|
||||
remark \
|
||||
--remark-size=max
|
||||
|
||||
fi
|
||||
|
||||
# every other hour we're sending a bunch of small messages
|
||||
if [ $SECONDS -ge $BUNCH_OF_MESSAGES_TIME ]; then
|
||||
BUNCH_OF_MESSAGES_TIME=$((SECONDS + 7200))
|
||||
|
||||
for i in $(seq 1 $MAX_UNCONFIRMED_MESSAGES_AT_INBOUND_LANE);
|
||||
do
|
||||
$SEND_MESSAGE \
|
||||
--lane $MESSAGE_LANE \
|
||||
--origin Target \
|
||||
remark
|
||||
done
|
||||
|
||||
fi
|
||||
done
|
||||
-33
@@ -1,33 +0,0 @@
|
||||
#!/bin/bash
|
||||
set -xeu
|
||||
|
||||
sleep 20
|
||||
curl -v http://millau-node-alice:9933/health
|
||||
curl -v http://rialto-node-alice:9933/health
|
||||
|
||||
/home/user/substrate-relay init-bridge MillauToRialto \
|
||||
--source-host millau-node-alice \
|
||||
--source-port 9944 \
|
||||
--target-host rialto-node-alice \
|
||||
--target-port 9944 \
|
||||
--target-signer //Alice
|
||||
|
||||
/home/user/substrate-relay init-bridge RialtoToMillau \
|
||||
--source-host rialto-node-alice \
|
||||
--source-port 9944 \
|
||||
--target-host millau-node-alice \
|
||||
--target-port 9944 \
|
||||
--target-signer //Alice
|
||||
|
||||
# Give chain a little bit of time to process initialization transaction
|
||||
sleep 6
|
||||
|
||||
/home/user/substrate-relay relay-headers-and-messages millau-rialto \
|
||||
--millau-host millau-node-alice \
|
||||
--millau-port 9944 \
|
||||
--millau-signer //Charlie \
|
||||
--rialto-host rialto-node-alice \
|
||||
--rialto-port 9944 \
|
||||
--rialto-signer //Charlie \
|
||||
--lane=00000000 \
|
||||
--prometheus-host=0.0.0.0
|
||||
-694
@@ -1,694 +0,0 @@
|
||||
{
|
||||
"annotations": {
|
||||
"list": [
|
||||
{
|
||||
"builtIn": 1,
|
||||
"datasource": "-- Grafana --",
|
||||
"enable": true,
|
||||
"hide": true,
|
||||
"iconColor": "rgba(0, 211, 255, 1)",
|
||||
"name": "Annotations & Alerts",
|
||||
"type": "dashboard"
|
||||
}
|
||||
]
|
||||
},
|
||||
"editable": true,
|
||||
"gnetId": null,
|
||||
"graphTooltip": 0,
|
||||
"links": [],
|
||||
"panels": [
|
||||
{
|
||||
"alert": {
|
||||
"alertRuleTags": {},
|
||||
"conditions": [
|
||||
{
|
||||
"evaluator": {
|
||||
"params": [
|
||||
5
|
||||
],
|
||||
"type": "gt"
|
||||
},
|
||||
"operator": {
|
||||
"type": "and"
|
||||
},
|
||||
"query": {
|
||||
"params": [
|
||||
"A",
|
||||
"5m",
|
||||
"now"
|
||||
]
|
||||
},
|
||||
"reducer": {
|
||||
"params": [],
|
||||
"type": "min"
|
||||
},
|
||||
"type": "query"
|
||||
}
|
||||
],
|
||||
"executionErrorState": "alerting",
|
||||
"for": "5m",
|
||||
"frequency": "5m",
|
||||
"handler": 1,
|
||||
"message": "",
|
||||
"name": "Synced Header Difference is Over 5 (Westend to Millau)",
|
||||
"noDataState": "no_data",
|
||||
"notifications": []
|
||||
},
|
||||
"aliasColors": {},
|
||||
"bars": false,
|
||||
"dashLength": 10,
|
||||
"dashes": false,
|
||||
"datasource": "Prometheus",
|
||||
"description": "Shows how many headers behind the target chain is from the source chain.",
|
||||
"fieldConfig": {
|
||||
"defaults": {
|
||||
"custom": {}
|
||||
},
|
||||
"overrides": []
|
||||
},
|
||||
"fill": 1,
|
||||
"fillGradient": 0,
|
||||
"gridPos": {
|
||||
"h": 8,
|
||||
"w": 12,
|
||||
"x": 0,
|
||||
"y": 0
|
||||
},
|
||||
"hiddenSeries": false,
|
||||
"id": 14,
|
||||
"legend": {
|
||||
"avg": false,
|
||||
"current": false,
|
||||
"max": false,
|
||||
"min": false,
|
||||
"show": true,
|
||||
"total": false,
|
||||
"values": false
|
||||
},
|
||||
"lines": true,
|
||||
"linewidth": 1,
|
||||
"nullPointMode": "null",
|
||||
"percentage": false,
|
||||
"pluginVersion": "7.1.3",
|
||||
"pointradius": 2,
|
||||
"points": false,
|
||||
"renderer": "flot",
|
||||
"seriesOverrides": [],
|
||||
"spaceLength": 10,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"expr": "max(Westend_to_Millau_Sync_best_block_numbers{node=\"source\"}) - max(Westend_to_Millau_Sync_best_block_numbers{node=\"target\"})",
|
||||
"format": "table",
|
||||
"instant": false,
|
||||
"interval": "",
|
||||
"legendFormat": "",
|
||||
"refId": "A"
|
||||
}
|
||||
],
|
||||
"thresholds": [
|
||||
{
|
||||
"colorMode": "critical",
|
||||
"fill": true,
|
||||
"line": true,
|
||||
"op": "gt",
|
||||
"value": 5
|
||||
}
|
||||
],
|
||||
"timeFrom": null,
|
||||
"timeRegions": [],
|
||||
"timeShift": null,
|
||||
"title": "Difference Between Source and Target Headers",
|
||||
"tooltip": {
|
||||
"shared": true,
|
||||
"sort": 0,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"buckets": null,
|
||||
"mode": "time",
|
||||
"name": null,
|
||||
"show": true,
|
||||
"values": []
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"format": "short",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"format": "short",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
}
|
||||
],
|
||||
"yaxis": {
|
||||
"align": false,
|
||||
"alignLevel": null
|
||||
}
|
||||
},
|
||||
{
|
||||
"alert": {
|
||||
"alertRuleTags": {},
|
||||
"conditions": [
|
||||
{
|
||||
"evaluator": {
|
||||
"params": [
|
||||
5
|
||||
],
|
||||
"type": "lt"
|
||||
},
|
||||
"operator": {
|
||||
"type": "and"
|
||||
},
|
||||
"query": {
|
||||
"params": [
|
||||
"A",
|
||||
"2m",
|
||||
"now"
|
||||
]
|
||||
},
|
||||
"reducer": {
|
||||
"params": [],
|
||||
"type": "min"
|
||||
},
|
||||
"type": "query"
|
||||
}
|
||||
],
|
||||
"executionErrorState": "alerting",
|
||||
"for": "3m",
|
||||
"frequency": "5m",
|
||||
"handler": 1,
|
||||
"name": "No New Headers (Westend to Millau)",
|
||||
"noDataState": "no_data",
|
||||
"notifications": []
|
||||
},
|
||||
"aliasColors": {},
|
||||
"bars": false,
|
||||
"dashLength": 10,
|
||||
"dashes": false,
|
||||
"datasource": "Prometheus",
|
||||
"description": "How many headers has the relay synced from the source node in the last 2 mins?",
|
||||
"fieldConfig": {
|
||||
"defaults": {
|
||||
"custom": {}
|
||||
},
|
||||
"overrides": []
|
||||
},
|
||||
"fill": 1,
|
||||
"fillGradient": 0,
|
||||
"gridPos": {
|
||||
"h": 8,
|
||||
"w": 12,
|
||||
"x": 12,
|
||||
"y": 0
|
||||
},
|
||||
"hiddenSeries": false,
|
||||
"id": 16,
|
||||
"legend": {
|
||||
"avg": false,
|
||||
"current": false,
|
||||
"max": false,
|
||||
"min": false,
|
||||
"show": true,
|
||||
"total": false,
|
||||
"values": false
|
||||
},
|
||||
"lines": true,
|
||||
"linewidth": 1,
|
||||
"nullPointMode": "null",
|
||||
"percentage": false,
|
||||
"pluginVersion": "7.1.3",
|
||||
"pointradius": 2,
|
||||
"points": false,
|
||||
"renderer": "flot",
|
||||
"seriesOverrides": [],
|
||||
"spaceLength": 10,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"expr": "max_over_time(Westend_to_Millau_Sync_best_block_numbers{node=\"source\"}[2m])-min_over_time(Westend_to_Millau_Sync_best_block_numbers{node=\"source\"}[2m])",
|
||||
"interval": "",
|
||||
"legendFormat": "Number of new Headers on Westend (Last 2 Mins)",
|
||||
"refId": "A"
|
||||
}
|
||||
],
|
||||
"thresholds": [
|
||||
{
|
||||
"colorMode": "critical",
|
||||
"fill": true,
|
||||
"line": true,
|
||||
"op": "lt",
|
||||
"value": 5
|
||||
}
|
||||
],
|
||||
"timeFrom": null,
|
||||
"timeRegions": [],
|
||||
"timeShift": null,
|
||||
"title": "Headers Synced on Millau (Last 2 Mins)",
|
||||
"tooltip": {
|
||||
"shared": true,
|
||||
"sort": 0,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"buckets": null,
|
||||
"mode": "time",
|
||||
"name": null,
|
||||
"show": true,
|
||||
"values": []
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"format": "short",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"format": "short",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
}
|
||||
],
|
||||
"yaxis": {
|
||||
"align": false,
|
||||
"alignLevel": null
|
||||
}
|
||||
},
|
||||
{
|
||||
"datasource": "Prometheus",
|
||||
"fieldConfig": {
|
||||
"defaults": {
|
||||
"custom": {
|
||||
"align": null
|
||||
},
|
||||
"mappings": [],
|
||||
"thresholds": {
|
||||
"mode": "absolute",
|
||||
"steps": [
|
||||
{
|
||||
"color": "green",
|
||||
"value": null
|
||||
},
|
||||
{
|
||||
"color": "red",
|
||||
"value": 80
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"overrides": []
|
||||
},
|
||||
"gridPos": {
|
||||
"h": 6,
|
||||
"w": 12,
|
||||
"x": 0,
|
||||
"y": 8
|
||||
},
|
||||
"id": 2,
|
||||
"interval": "5s",
|
||||
"options": {
|
||||
"colorMode": "value",
|
||||
"graphMode": "area",
|
||||
"justifyMode": "auto",
|
||||
"orientation": "auto",
|
||||
"reduceOptions": {
|
||||
"calcs": [
|
||||
"mean"
|
||||
],
|
||||
"fields": "",
|
||||
"values": false
|
||||
},
|
||||
"textMode": "auto"
|
||||
},
|
||||
"pluginVersion": "7.1.3",
|
||||
"targets": [
|
||||
{
|
||||
"expr": "Westend_to_Millau_Sync_best_block_numbers",
|
||||
"format": "time_series",
|
||||
"instant": true,
|
||||
"interval": "",
|
||||
"intervalFactor": 1,
|
||||
"legendFormat": "Best Known Header on {{node}} Node",
|
||||
"refId": "A"
|
||||
}
|
||||
],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "Best Blocks according to Relay",
|
||||
"type": "stat"
|
||||
},
|
||||
{
|
||||
"aliasColors": {},
|
||||
"bars": false,
|
||||
"dashLength": 10,
|
||||
"dashes": false,
|
||||
"datasource": "Prometheus",
|
||||
"description": "",
|
||||
"fieldConfig": {
|
||||
"defaults": {
|
||||
"custom": {}
|
||||
},
|
||||
"overrides": []
|
||||
},
|
||||
"fill": 1,
|
||||
"fillGradient": 0,
|
||||
"gridPos": {
|
||||
"h": 8,
|
||||
"w": 6,
|
||||
"x": 12,
|
||||
"y": 8
|
||||
},
|
||||
"hiddenSeries": false,
|
||||
"id": 6,
|
||||
"legend": {
|
||||
"avg": false,
|
||||
"current": false,
|
||||
"max": false,
|
||||
"min": false,
|
||||
"show": true,
|
||||
"total": false,
|
||||
"values": false
|
||||
},
|
||||
"lines": true,
|
||||
"linewidth": 1,
|
||||
"nullPointMode": "null",
|
||||
"percentage": false,
|
||||
"pluginVersion": "7.1.3",
|
||||
"pointradius": 2,
|
||||
"points": false,
|
||||
"renderer": "flot",
|
||||
"seriesOverrides": [],
|
||||
"spaceLength": 10,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"expr": "Westend_to_Millau_Sync_system_average_load",
|
||||
"interval": "",
|
||||
"legendFormat": "Average system load in last {{over}}",
|
||||
"refId": "A"
|
||||
}
|
||||
],
|
||||
"thresholds": [
|
||||
{
|
||||
"colorMode": "critical",
|
||||
"fill": true,
|
||||
"line": true,
|
||||
"op": "gt",
|
||||
"value": null
|
||||
}
|
||||
],
|
||||
"timeFrom": null,
|
||||
"timeRegions": [],
|
||||
"timeShift": null,
|
||||
"title": "Average System Load",
|
||||
"tooltip": {
|
||||
"shared": true,
|
||||
"sort": 0,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"buckets": null,
|
||||
"mode": "time",
|
||||
"name": null,
|
||||
"show": true,
|
||||
"values": []
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"format": "short",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"format": "short",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
}
|
||||
],
|
||||
"yaxis": {
|
||||
"align": false,
|
||||
"alignLevel": null
|
||||
}
|
||||
},
|
||||
{
|
||||
"datasource": "Prometheus",
|
||||
"fieldConfig": {
|
||||
"defaults": {
|
||||
"custom": {},
|
||||
"mappings": [],
|
||||
"thresholds": {
|
||||
"mode": "absolute",
|
||||
"steps": [
|
||||
{
|
||||
"color": "green",
|
||||
"value": null
|
||||
},
|
||||
{
|
||||
"color": "red",
|
||||
"value": 80
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"overrides": []
|
||||
},
|
||||
"gridPos": {
|
||||
"h": 8,
|
||||
"w": 6,
|
||||
"x": 18,
|
||||
"y": 8
|
||||
},
|
||||
"id": 12,
|
||||
"options": {
|
||||
"orientation": "auto",
|
||||
"reduceOptions": {
|
||||
"calcs": [
|
||||
"mean"
|
||||
],
|
||||
"fields": "",
|
||||
"values": false
|
||||
},
|
||||
"showThresholdLabels": false,
|
||||
"showThresholdMarkers": true
|
||||
},
|
||||
"pluginVersion": "7.1.3",
|
||||
"targets": [
|
||||
{
|
||||
"expr": "avg_over_time(Westend_to_Millau_Sync_process_cpu_usage_percentage[1m])",
|
||||
"instant": true,
|
||||
"interval": "",
|
||||
"legendFormat": "1 CPU = 100",
|
||||
"refId": "A"
|
||||
}
|
||||
],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "Relay Process CPU Usage ",
|
||||
"type": "gauge"
|
||||
},
|
||||
{
|
||||
"datasource": "Prometheus",
|
||||
"description": "",
|
||||
"fieldConfig": {
|
||||
"defaults": {
|
||||
"custom": {},
|
||||
"mappings": [],
|
||||
"thresholds": {
|
||||
"mode": "absolute",
|
||||
"steps": [
|
||||
{
|
||||
"color": "green",
|
||||
"value": null
|
||||
},
|
||||
{
|
||||
"color": "red",
|
||||
"value": 80
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"overrides": []
|
||||
},
|
||||
"gridPos": {
|
||||
"h": 10,
|
||||
"w": 12,
|
||||
"x": 0,
|
||||
"y": 14
|
||||
},
|
||||
"id": 4,
|
||||
"options": {
|
||||
"displayMode": "gradient",
|
||||
"orientation": "auto",
|
||||
"reduceOptions": {
|
||||
"calcs": [
|
||||
"mean"
|
||||
],
|
||||
"fields": "",
|
||||
"values": false
|
||||
},
|
||||
"showUnfilled": true
|
||||
},
|
||||
"pluginVersion": "7.1.3",
|
||||
"targets": [
|
||||
{
|
||||
"expr": "Westend_to_Millau_Sync_blocks_in_state",
|
||||
"instant": true,
|
||||
"interval": "",
|
||||
"legendFormat": "{{state}}",
|
||||
"refId": "A"
|
||||
}
|
||||
],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "Queued Headers in Relay",
|
||||
"type": "bargauge"
|
||||
},
|
||||
{
|
||||
"aliasColors": {},
|
||||
"bars": false,
|
||||
"dashLength": 10,
|
||||
"dashes": false,
|
||||
"datasource": "Prometheus",
|
||||
"description": "",
|
||||
"fieldConfig": {
|
||||
"defaults": {
|
||||
"custom": {}
|
||||
},
|
||||
"overrides": []
|
||||
},
|
||||
"fill": 1,
|
||||
"fillGradient": 0,
|
||||
"gridPos": {
|
||||
"h": 8,
|
||||
"w": 12,
|
||||
"x": 12,
|
||||
"y": 16
|
||||
},
|
||||
"hiddenSeries": false,
|
||||
"id": 10,
|
||||
"legend": {
|
||||
"avg": false,
|
||||
"current": false,
|
||||
"max": false,
|
||||
"min": false,
|
||||
"show": true,
|
||||
"total": false,
|
||||
"values": false
|
||||
},
|
||||
"lines": true,
|
||||
"linewidth": 1,
|
||||
"nullPointMode": "null",
|
||||
"percentage": false,
|
||||
"pluginVersion": "7.1.3",
|
||||
"pointradius": 2,
|
||||
"points": false,
|
||||
"renderer": "flot",
|
||||
"seriesOverrides": [],
|
||||
"spaceLength": 10,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"expr": "Westend_to_Millau_Sync_process_memory_usage_bytes / 1024 / 1024",
|
||||
"interval": "",
|
||||
"legendFormat": "Process memory, MB",
|
||||
"refId": "A"
|
||||
}
|
||||
],
|
||||
"thresholds": [],
|
||||
"timeFrom": null,
|
||||
"timeRegions": [],
|
||||
"timeShift": null,
|
||||
"title": "Memory Usage for Relay Process",
|
||||
"tooltip": {
|
||||
"shared": true,
|
||||
"sort": 0,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"buckets": null,
|
||||
"mode": "time",
|
||||
"name": null,
|
||||
"show": true,
|
||||
"values": []
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"format": "short",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"format": "short",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
}
|
||||
],
|
||||
"yaxis": {
|
||||
"align": false,
|
||||
"alignLevel": null
|
||||
}
|
||||
}
|
||||
],
|
||||
"refresh": "5s",
|
||||
"schemaVersion": 26,
|
||||
"style": "dark",
|
||||
"tags": [],
|
||||
"templating": {
|
||||
"list": []
|
||||
},
|
||||
"time": {
|
||||
"from": "now-5m",
|
||||
"to": "now"
|
||||
},
|
||||
"timepicker": {
|
||||
"refresh_intervals": [
|
||||
"10s",
|
||||
"30s",
|
||||
"1m",
|
||||
"5m",
|
||||
"15m",
|
||||
"30m",
|
||||
"1h",
|
||||
"2h",
|
||||
"1d"
|
||||
]
|
||||
},
|
||||
"timezone": "",
|
||||
"title": "Westend to Millau Header Sync Dashboard",
|
||||
"uid": "relay-westend-to-millau-headers",
|
||||
"version": 1
|
||||
}
|
||||
@@ -1,2 +0,0 @@
|
||||
- targets:
|
||||
- relay-headers-westend-to-millau:9616
|
||||
@@ -1,31 +0,0 @@
|
||||
# Exposed ports: 10616
|
||||
|
||||
version: '3.5'
|
||||
services:
|
||||
relay-headers-westend-to-millau:
|
||||
image: paritytech/substrate-relay
|
||||
entrypoint: /entrypoints/relay-headers-westend-to-millau-entrypoint.sh
|
||||
volumes:
|
||||
- ./bridges/westend-millau/entrypoints:/entrypoints
|
||||
environment:
|
||||
RUST_LOG: rpc=trace,bridge=trace
|
||||
ports:
|
||||
- "10616:9616"
|
||||
depends_on:
|
||||
- millau-node-alice
|
||||
|
||||
# Note: These are being overridden from the top level `monitoring` compose file.
|
||||
grafana-dashboard:
|
||||
environment:
|
||||
VIRTUAL_HOST: grafana.millau.brucke.link,grafana.rialto.brucke.link
|
||||
VIRTUAL_PORT: 3000
|
||||
LETSENCRYPT_HOST: grafana.millau.brucke.link,grafana.rialto.brucke.link
|
||||
LETSENCRYPT_EMAIL: admin@parity.io
|
||||
volumes:
|
||||
- ./bridges/westend-millau/dashboard/grafana:/etc/grafana/dashboards/westend-millau:ro
|
||||
|
||||
prometheus-metrics:
|
||||
volumes:
|
||||
- ./bridges/westend-millau/dashboard/prometheus/targets.yml:/etc/prometheus/targets-westend-millau.yml
|
||||
depends_on:
|
||||
- relay-headers-westend-to-millau
|
||||
-25
@@ -1,25 +0,0 @@
|
||||
#!/bin/bash
|
||||
set -xeu
|
||||
|
||||
sleep 20
|
||||
curl -v http://millau-node-alice:9933/health
|
||||
curl -v https://westend-rpc.polkadot.io:443/health
|
||||
|
||||
/home/user/substrate-relay init-bridge WestendToMillau \
|
||||
--source-host westend-rpc.polkadot.io \
|
||||
--source-port 443 \
|
||||
--source-secure \
|
||||
--target-host millau-node-alice \
|
||||
--target-port 9944 \
|
||||
--target-signer //George
|
||||
|
||||
# Give chain a little bit of time to process initialization transaction
|
||||
sleep 6
|
||||
/home/user/substrate-relay relay-headers WestendToMillau \
|
||||
--source-host westend-rpc.polkadot.io \
|
||||
--source-port 443 \
|
||||
--source-secure \
|
||||
--target-host millau-node-alice \
|
||||
--target-port 9944 \
|
||||
--target-signer //George \
|
||||
--prometheus-host=0.0.0.0
|
||||
@@ -1 +0,0 @@
|
||||
{}
|
||||
@@ -1 +0,0 @@
|
||||
{"id":"dd04f316-bc9d-2deb-4a34-51014cd5f34f","version":3,"crypto":{"cipher":"aes-128-ctr","cipherparams":{"iv":"aa91e6f0e6cf48208be4a1bcf15c6f30"},"ciphertext":"6e057599b13a87e8181bb39a40e14848fdc97958d493ddfa6bb1260350f69328","kdf":"pbkdf2","kdfparams":{"c":10240,"dklen":32,"prf":"hmac-sha256","salt":"79dd8c09c5c066b830179a2558a51efca6d97c0db2c4128090a01835786823c5"},"mac":"8f8b8e2c9de29ec8eefc54a60055e30ae7ff4dd4a367eaf38880edb887da771e"},"address":"005e714f896a8b7cede9d38688c1a81de72a58e4","name":"","meta":"{}"}
|
||||
@@ -1 +0,0 @@
|
||||
password
|
||||
@@ -1,17 +0,0 @@
|
||||
[parity]
|
||||
chain = "./deployments/dev/poa-config/poa.json"
|
||||
keys_path = "./deployments/dev/poa-config/keys"
|
||||
no_persistent_txqueue = true
|
||||
|
||||
[account]
|
||||
password = ["./deployments/dev/poa-config/pass"]
|
||||
|
||||
[rpc]
|
||||
apis = ["all"]
|
||||
cors = ["moz-extension://*", "chrome-extension://*"]
|
||||
|
||||
[mining]
|
||||
force_sealing = true
|
||||
|
||||
[misc]
|
||||
unsafe_expose = true
|
||||
@@ -1,178 +0,0 @@
|
||||
{
|
||||
"name": "BridgePoa",
|
||||
"engine": {
|
||||
"authorityRound": {
|
||||
"params": {
|
||||
"stepDuration": 10,
|
||||
"validators": {
|
||||
"list": [
|
||||
"0x005e714f896a8b7cede9d38688c1a81de72a58e4"
|
||||
]
|
||||
},
|
||||
"validateScoreTransition": 0,
|
||||
"validateStepTransition": 0,
|
||||
"maximumUncleCountTransition": 0,
|
||||
"maximumUncleCount": 0,
|
||||
"emptyStepsTransition": "0xfffffffff",
|
||||
"maximumEmptySteps": 1
|
||||
}
|
||||
}
|
||||
},
|
||||
"params": {
|
||||
"accountStartNonce": "0x0",
|
||||
"eip1014Transition": "0x0",
|
||||
"eip1052Transition": "0x0",
|
||||
"eip140Transition": "0x0",
|
||||
"eip145Transition": "0x0",
|
||||
"eip150Transition": "0x0",
|
||||
"eip155Transition": "0x0",
|
||||
"eip160Transition": "0x0",
|
||||
"eip161abcTransition": "0x0",
|
||||
"eip161dTransition": "0x0",
|
||||
"eip211Transition": "0x0",
|
||||
"eip214Transition": "0x0",
|
||||
"eip658Transition": "0x0",
|
||||
"eip98Transition": "0x7fffffffffffff",
|
||||
"gasLimitBoundDivisor": "0x0400",
|
||||
"maxCodeSize": 24576,
|
||||
"maxCodeSizeTransition": "0x0",
|
||||
"maximumExtraDataSize": "0x20",
|
||||
"minGasLimit": "0x1388",
|
||||
"networkID" : "0x69",
|
||||
"validateChainIdTransition": "0x0",
|
||||
"validateReceiptsTransition": "0x0"
|
||||
},
|
||||
"genesis": {
|
||||
"seal": {
|
||||
"authorityRound": {
|
||||
"step": "0x0",
|
||||
"signature": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
|
||||
}
|
||||
},
|
||||
"difficulty": "0x20000",
|
||||
"author": "0x0000000000000000000000000000000000000000",
|
||||
"timestamp": "0x00",
|
||||
"parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
|
||||
"extraData": "0x",
|
||||
"gasLimit": "0x222222"
|
||||
},
|
||||
"accounts": {
|
||||
"0000000000000000000000000000000000000001": { "balance": "1", "nonce": "1048576", "builtin": { "name": "ecrecover", "pricing": { "linear": { "base": 3000, "word": 0 } } } },
|
||||
"0000000000000000000000000000000000000002": { "balance": "1", "nonce": "1048576", "builtin": { "name": "sha256", "pricing": { "linear": { "base": 60, "word": 12 } } } },
|
||||
"0000000000000000000000000000000000000003": { "balance": "1", "nonce": "1048576", "builtin": { "name": "ripemd160", "pricing": { "linear": { "base": 600, "word": 120 } } } },
|
||||
"0000000000000000000000000000000000000004": { "balance": "1", "nonce": "1048576", "builtin": { "name": "identity", "pricing": { "linear": { "base": 15, "word": 3 } } } },
|
||||
"0000000000000000000000000000000000000005": { "balance": "1", "builtin": { "name": "modexp", "activate_at": 0, "pricing": { "modexp": { "divisor": 20 } } } },
|
||||
"0000000000000000000000000000000000000006": {
|
||||
"balance": "1",
|
||||
"builtin": {
|
||||
"name": "alt_bn128_add",
|
||||
"pricing": {
|
||||
"0": {
|
||||
"price": { "alt_bn128_const_operations": { "price": 500 }}
|
||||
},
|
||||
"0x7fffffffffffff": {
|
||||
"info": "EIP 1108 transition",
|
||||
"price": { "alt_bn128_const_operations": { "price": 150 }}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"0000000000000000000000000000000000000007": {
|
||||
"balance": "1",
|
||||
"builtin": {
|
||||
"name": "alt_bn128_mul",
|
||||
"pricing": {
|
||||
"0": {
|
||||
"price": { "alt_bn128_const_operations": { "price": 40000 }}
|
||||
},
|
||||
"0x7fffffffffffff": {
|
||||
"info": "EIP 1108 transition",
|
||||
"price": { "alt_bn128_const_operations": { "price": 6000 }}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"0000000000000000000000000000000000000008": {
|
||||
"balance": "1",
|
||||
"builtin": {
|
||||
"name": "alt_bn128_pairing",
|
||||
"pricing": {
|
||||
"0": {
|
||||
"price": { "alt_bn128_pairing": { "base": 100000, "pair": 80000 }}
|
||||
},
|
||||
"0x7fffffffffffff": {
|
||||
"info": "EIP 1108 transition",
|
||||
"price": { "alt_bn128_pairing": { "base": 45000, "pair": 34000 }}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"0x0000000000000000000000000000000000000009": {
|
||||
"builtin": {
|
||||
"name": "blake2_f",
|
||||
"activate_at": "0xd751a5",
|
||||
"pricing": {
|
||||
"blake2_f": {
|
||||
"gas_per_round": 1
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"0x0000000000000000000000000000000000000010": {
|
||||
"builtin": {
|
||||
"name": "parse_substrate_header",
|
||||
"pricing": {
|
||||
"linear": {
|
||||
"base": 3000,
|
||||
"word": 0
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"0x0000000000000000000000000000000000000011": {
|
||||
"builtin": {
|
||||
"name": "get_substrate_header_signal",
|
||||
"pricing": {
|
||||
"linear": {
|
||||
"base": 3000,
|
||||
"word": 0
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"0x0000000000000000000000000000000000000012": {
|
||||
"builtin": {
|
||||
"name": "verify_substrate_finality_proof",
|
||||
"pricing": {
|
||||
"linear": {
|
||||
"base": 3000,
|
||||
"word": 0
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"0x0000000000000000000000000000000000000013": {
|
||||
"builtin": {
|
||||
"name": "my_test",
|
||||
"pricing": {
|
||||
"linear": {
|
||||
"base": 3000,
|
||||
"word": 0
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"0x005e714f896a8b7cede9d38688c1a81de72a58e4": {
|
||||
"balance": "1606938044258990275541962092341162602522202993782792835301376",
|
||||
"nonce": "0x1"
|
||||
},
|
||||
"0x007594304039c2937a12220338aab821d819f5a4": {
|
||||
"balance": "1606938044258990275541962092341162602522202993782792835301376",
|
||||
"nonce": "0x1"
|
||||
},
|
||||
"0x004e7a39907f090e19b0b80a277e77b72b22e269": {
|
||||
"balance": "1606938044258990275541962092341162602522202993782792835301376",
|
||||
"nonce": "0x1"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
#!/bin/bash
|
||||
set -xeu
|
||||
|
||||
# This will allow us to run whichever binary the user wanted
|
||||
# with arguments passed through `docker run`
|
||||
# e.g `docker run -it rialto-bridge-node-dev --dev --tmp`
|
||||
/home/user/$PROJECT $@
|
||||
@@ -1,24 +0,0 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# Run an instance of the Rococo -> Wococo header sync.
|
||||
#
|
||||
# Right now this relies on local Wococo and Rococo networks
|
||||
# running (which include `pallet-bridge-grandpa` in their
|
||||
# runtimes), but in the future it could use use public RPC nodes.
|
||||
|
||||
set -xeu
|
||||
|
||||
RUST_LOG=rpc=trace,bridge=trace ./target/debug/substrate-relay init-bridge RococoToWococo \
|
||||
--source-host 127.0.0.1 \
|
||||
--source-port 9955 \
|
||||
--target-host 127.0.0.1 \
|
||||
--target-port 9944 \
|
||||
--target-signer //Alice
|
||||
|
||||
RUST_LOG=rpc=trace,bridge=trace ./target/debug/substrate-relay relay-headers RococoToWococo \
|
||||
--source-host 127.0.0.1 \
|
||||
--source-port 9955 \
|
||||
--target-host 127.0.0.1 \
|
||||
--target-port 9944 \
|
||||
--target-signer //Bob \
|
||||
--prometheus-host=0.0.0.0 \
|
||||
@@ -1,24 +0,0 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# Run an instance of the Wococo -> Rococo header sync.
|
||||
#
|
||||
# Right now this relies on local Wococo and Rococo networks
|
||||
# running (which include `pallet-bridge-grandpa` in their
|
||||
# runtimes), but in the future it could use use public RPC nodes.
|
||||
|
||||
set -xeu
|
||||
|
||||
RUST_LOG=rpc=trace,bridge=trace ./target/debug/substrate-relay init-bridge WococoToRococo \
|
||||
--source-host 127.0.0.1 \
|
||||
--source-port 9944 \
|
||||
--target-host 127.0.0.1 \
|
||||
--target-port 9955 \
|
||||
--target-signer //Alice
|
||||
|
||||
RUST_LOG=rpc=trace,bridge=trace ./target/debug/substrate-relay relay-headers WococoToRococo \
|
||||
--source-host 127.0.0.1 \
|
||||
--source-port 9944 \
|
||||
--target-host 127.0.0.1 \
|
||||
--target-port 9955 \
|
||||
--target-signer //Charlie \
|
||||
--prometheus-host=0.0.0.0 \
|
||||
@@ -1,20 +0,0 @@
|
||||
#!/bin/bash
|
||||
# A script for relaying Millau messages to the Rialto chain.
|
||||
#
|
||||
# Will not work unless both the Rialto and Millau are running (see `run-rialto-node.sh`
|
||||
# and `run-millau-node.sh).
|
||||
set -xeu
|
||||
|
||||
MILLAU_PORT="${MILLAU_PORT:-9945}"
|
||||
RIALTO_PORT="${RIALTO_PORT:-9944}"
|
||||
|
||||
RUST_LOG=bridge=debug \
|
||||
./target/debug/substrate-relay relay-messages MillauToRialto \
|
||||
--lane 00000000 \
|
||||
--source-host localhost \
|
||||
--source-port $MILLAU_PORT \
|
||||
--source-signer //Bob \
|
||||
--target-host localhost \
|
||||
--target-port $RIALTO_PORT \
|
||||
--target-signer //Bob \
|
||||
--prometheus-host=0.0.0.0
|
||||
@@ -1,20 +0,0 @@
|
||||
#!/bin/bash
|
||||
# A script for relaying Rialto messages to the Millau chain.
|
||||
#
|
||||
# Will not work unless both the Rialto and Millau are running (see `run-rialto-node.sh`
|
||||
# and `run-millau-node.sh).
|
||||
set -xeu
|
||||
|
||||
MILLAU_PORT="${MILLAU_PORT:-9945}"
|
||||
RIALTO_PORT="${RIALTO_PORT:-9944}"
|
||||
|
||||
RUST_LOG=bridge=debug \
|
||||
./target/debug/substrate-relay relay-messages RialtoToMillau \
|
||||
--lane 00000000 \
|
||||
--source-host localhost \
|
||||
--source-port $RIALTO_PORT \
|
||||
--source-signer //Bob \
|
||||
--target-host localhost \
|
||||
--target-port $MILLAU_PORT \
|
||||
--target-signer //Bob \
|
||||
--prometheus-host=0.0.0.0
|
||||
@@ -1,27 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# A script for relaying Millau headers to the Rialto chain.
|
||||
#
|
||||
# Will not work unless both the Rialto and Millau are running (see `run-rialto-node.sh`
|
||||
# and `run-millau-node.sh).
|
||||
|
||||
MILLAU_PORT="${MILLAU_PORT:-9945}"
|
||||
RIALTO_PORT="${RIALTO_PORT:-9944}"
|
||||
|
||||
RUST_LOG=bridge=debug \
|
||||
./target/debug/substrate-relay init-bridge MillauToRialto \
|
||||
--source-host localhost \
|
||||
--source-port $MILLAU_PORT \
|
||||
--target-host localhost \
|
||||
--target-port $RIALTO_PORT \
|
||||
--target-signer //Alice \
|
||||
|
||||
sleep 5
|
||||
RUST_LOG=bridge=debug \
|
||||
./target/debug/substrate-relay relay-headers MillauToRialto \
|
||||
--source-host localhost \
|
||||
--source-port $MILLAU_PORT \
|
||||
--target-host localhost \
|
||||
--target-port $RIALTO_PORT \
|
||||
--target-signer //Alice \
|
||||
--prometheus-host=0.0.0.0
|
||||
@@ -1,27 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# A script for relaying Rialto headers to the Millau chain.
|
||||
#
|
||||
# Will not work unless both the Rialto and Millau are running (see `run-rialto-node.sh`
|
||||
# and `run-millau-node.sh).
|
||||
|
||||
MILLAU_PORT="${MILLAU_PORT:-9945}"
|
||||
RIALTO_PORT="${RIALTO_PORT:-9944}"
|
||||
|
||||
RUST_LOG=bridge=debug \
|
||||
./target/debug/substrate-relay init-bridge RialtoToMillau \
|
||||
--target-host localhost \
|
||||
--target-port $MILLAU_PORT \
|
||||
--source-host localhost \
|
||||
--source-port $RIALTO_PORT \
|
||||
--target-signer //Alice \
|
||||
|
||||
sleep 5
|
||||
RUST_LOG=bridge=debug \
|
||||
./target/debug/substrate-relay relay-headers RialtoToMillau \
|
||||
--target-host localhost \
|
||||
--target-port $MILLAU_PORT \
|
||||
--source-host localhost \
|
||||
--source-port $RIALTO_PORT \
|
||||
--target-signer //Alice \
|
||||
--prometheus-host=0.0.0.0
|
||||
@@ -1,11 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Run a development instance of the Millau Substrate bridge node.
|
||||
# To override the default port just export MILLAU_PORT=9945
|
||||
|
||||
MILLAU_PORT="${MILLAU_PORT:-9945}"
|
||||
|
||||
RUST_LOG=runtime=trace \
|
||||
./target/debug/millau-bridge-node --dev --tmp \
|
||||
--rpc-cors=all --unsafe-rpc-external --unsafe-ws-external \
|
||||
--port 33044 --rpc-port 9934 --ws-port $MILLAU_PORT \
|
||||
@@ -1,11 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Run a development instance of the Rialto Substrate bridge node.
|
||||
# To override the default port just export RIALTO_PORT=9944
|
||||
|
||||
RIALTO_PORT="${RIALTO_PORT:-9944}"
|
||||
|
||||
RUST_LOG=runtime=trace \
|
||||
./target/debug/rialto-bridge-node --dev --tmp \
|
||||
--rpc-cors=all --unsafe-rpc-external --unsafe-ws-external \
|
||||
--port 33033 --rpc-port 9933 --ws-port $RIALTO_PORT \
|
||||
@@ -1,14 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Run a development instance of the Rococo Substrate bridge node.
|
||||
# To override the default port just export ROCOCO_PORT=9955
|
||||
#
|
||||
# Note: This script will not work out of the box with the bridges
|
||||
# repo since it relies on a Polkadot binary.
|
||||
|
||||
ROCOCO_PORT="${ROCOCO_PORT:-9955}"
|
||||
|
||||
RUST_LOG=runtime=trace,runtime::bridge=trace \
|
||||
./target/debug/polkadot --chain=rococo-dev --alice --tmp \
|
||||
--rpc-cors=all --unsafe-rpc-external --unsafe-ws-external \
|
||||
--port 33044 --rpc-port 9934 --ws-port $ROCOCO_PORT \
|
||||
@@ -1,14 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Run a development instance of the Westend Substrate bridge node.
|
||||
# To override the default port just export WESTEND_PORT=9945
|
||||
#
|
||||
# Note: This script will not work out of the box with the bridges
|
||||
# repo since it relies on a Polkadot binary.
|
||||
|
||||
WESTEND_PORT="${WESTEND_PORT:-9944}"
|
||||
|
||||
RUST_LOG=runtime=trace,runtime::bridge=trace \
|
||||
./target/debug/polkadot --chain=westend-dev --alice --tmp \
|
||||
--rpc-cors=all --unsafe-rpc-external --unsafe-ws-external \
|
||||
--port 33033 --rpc-port 9933 --ws-port $WESTEND_PORT \
|
||||
@@ -1,14 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Run a development instance of the Wococo Substrate bridge node.
|
||||
# To override the default port just export WOCOCO_PORT=9955
|
||||
#
|
||||
# Note: This script will not work out of the box with the bridges
|
||||
# repo since it relies on a Polkadot binary.
|
||||
|
||||
WOCOCO_PORT="${WOCOCO_PORT:-9944}"
|
||||
|
||||
RUST_LOG=runtime=trace,runtime::bridge=trace \
|
||||
./target/debug/polkadot --chain=wococo-dev --alice --tmp \
|
||||
--rpc-cors=all --unsafe-rpc-external --unsafe-ws-external \
|
||||
--port 33033 --rpc-port 9933 --ws-port $WOCOCO_PORT \
|
||||
@@ -1,18 +0,0 @@
|
||||
FROM ruby:alpine
|
||||
|
||||
RUN apk add --no-cache git
|
||||
|
||||
ENV APP_HOME /app
|
||||
ENV RACK_ENV production
|
||||
RUN mkdir $APP_HOME
|
||||
WORKDIR $APP_HOME
|
||||
|
||||
# The latest master has some changes in how the application is run. We don't
|
||||
# want to update just yet so we're pinning to an old commit.
|
||||
RUN git clone https://github.com/ananace/ruby-grafana-matrix.git $APP_HOME
|
||||
RUN git checkout 0d662b29633d16176291d11a2d85ba5107cf7de3
|
||||
RUN bundle install --without development
|
||||
|
||||
RUN mkdir /config && touch /config/config.yml && ln -s /config/config.yml ./config.yml
|
||||
|
||||
CMD ["bundle", "exec", "bin/server"]
|
||||
@@ -1,15 +0,0 @@
|
||||
# A disabled version of monitoring.
|
||||
#
|
||||
# We replace each service with a no-op container. We can't simply not include this file,
|
||||
# cause the bridge-specific compose files might have overrides.
|
||||
version: '3.5'
|
||||
services:
|
||||
prometheus-metrics:
|
||||
image: alpine
|
||||
|
||||
grafana-dashboard:
|
||||
image: alpine
|
||||
|
||||
grafana-matrix-notifier:
|
||||
image: alpine
|
||||
|
||||
@@ -1,32 +0,0 @@
|
||||
version: '3.5'
|
||||
services:
|
||||
prometheus-metrics:
|
||||
image: prom/prometheus:v2.20.1
|
||||
volumes:
|
||||
- ./monitoring/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml
|
||||
ports:
|
||||
- "9090:9090"
|
||||
|
||||
grafana-dashboard:
|
||||
image: grafana/grafana:7.1.3
|
||||
environment:
|
||||
GF_SECURITY_ADMIN_PASSWORD: ${GRAFANA_ADMIN_PASS:-admin}
|
||||
GF_SERVER_ROOT_URL: ${GRAFANA_SERVER_ROOT_URL}
|
||||
GF_SERVER_DOMAIN: ${GRAFANA_SERVER_DOMAIN}
|
||||
volumes:
|
||||
- ./monitoring/grafana/provisioning/:/etc/grafana/provisioning/:ro
|
||||
ports:
|
||||
- "3000:3000"
|
||||
depends_on:
|
||||
- prometheus-metrics
|
||||
|
||||
grafana-matrix-notifier:
|
||||
build:
|
||||
context: .
|
||||
dockerfile: ./monitoring/GrafanaMatrix.Dockerfile
|
||||
volumes:
|
||||
- ./monitoring/grafana-matrix:/config
|
||||
ports:
|
||||
- "4567:4567"
|
||||
depends_on:
|
||||
- grafana-dashboard
|
||||
@@ -1,49 +0,0 @@
|
||||
---
|
||||
# Webhook server configuration
|
||||
# Or use the launch options `-o '::' -p 4567`
|
||||
#bind: '::'
|
||||
#port: 4567
|
||||
|
||||
# Set up your HS connections
|
||||
matrix:
|
||||
- name: matrix-parity-io
|
||||
url: https://matrix.parity.io
|
||||
# Create a user - log that user in using a post request
|
||||
# curl -XPOST -d '{"type": "m.login.password",
|
||||
# "user":"grafana",
|
||||
# "password":"dummy-password"}'
|
||||
# "https://my-matrix-server/_matrix/client/r0/login"
|
||||
# Fill that access token in here
|
||||
access_token: "<access_token>"
|
||||
#device_id: <device> # Optional
|
||||
|
||||
# The default message type for messages, should be either m.text or m.notice,
|
||||
# defaults to m.text
|
||||
msgtype: m.text
|
||||
|
||||
# Set up notification ingress rules
|
||||
rules:
|
||||
- name: bridge # Name of the rule
|
||||
room: "#bridges-workers:matrix.parity.io" # Room or ID
|
||||
matrix: matrix-parity-io # The Matrix HS to use - defaults to first one
|
||||
msgtype: m.notice
|
||||
# The following values are optional:
|
||||
image: true # Attach image to the notification?
|
||||
embed_image: true # Upload and embed the image into the message?
|
||||
#templates:
|
||||
# Templates to use when rendering the notification, available placeholders:
|
||||
# %TEMPLATES% - lib/grafana_matrix/templates
|
||||
# $<env> - Environment variables
|
||||
#html: "%TEMPLATES%/html.erb" # Path to HTML template
|
||||
#plain: "%TEMPLATES%/plain.erb" # Path to plaintext template
|
||||
#auth:
|
||||
#user: example
|
||||
#pass: any HTTP encodable string
|
||||
#- name: other-hq
|
||||
# room: "#hq:private.matrix.org
|
||||
# matrix: matrix-priv
|
||||
|
||||
# To use the webhook, you need to configure it into Grafana as:
|
||||
#
|
||||
# Url: http://<server address>:<port>/hook?rule=<rule name>
|
||||
# Http Method: POST
|
||||
-6
@@ -1,6 +0,0 @@
|
||||
- name: 'default'
|
||||
orgId: 1
|
||||
folder: ''
|
||||
type: file
|
||||
options:
|
||||
path: '/etc/grafana/dashboards'
|
||||
-16
@@ -1,16 +0,0 @@
|
||||
# list of datasources to insert/update depending
|
||||
# whats available in the database
|
||||
datasources:
|
||||
# <string, required> name of the datasource. Required
|
||||
- name: Prometheus
|
||||
# <string, required> datasource type. Required
|
||||
type: prometheus
|
||||
# <string, required> access mode. direct or proxy. Required
|
||||
access: proxy
|
||||
# <int> org id. will default to orgId 1 if not specified
|
||||
orgId: 1
|
||||
# <string> url
|
||||
url: http://prometheus-metrics:9090
|
||||
# <bool> mark as default datasource. Max one per org
|
||||
isDefault: true
|
||||
version: 1
|
||||
-15
@@ -1,15 +0,0 @@
|
||||
notifiers:
|
||||
- name: Matrix
|
||||
type: webhook
|
||||
uid: notifier1
|
||||
is_default: true
|
||||
send_reminder: true
|
||||
frequency: 1h
|
||||
disable_resolve_message: false
|
||||
settings:
|
||||
url: http://grafana-matrix-notifier:4567/hook?rule=bridge
|
||||
http_method: POST
|
||||
|
||||
delete_notifiers:
|
||||
- name: Matrix
|
||||
uid: notifier1
|
||||
@@ -1,7 +0,0 @@
|
||||
global:
|
||||
scrape_interval: 15s
|
||||
scrape_configs:
|
||||
- job_name: dummy
|
||||
file_sd_configs:
|
||||
- files:
|
||||
- /etc/prometheus/targets-*.yml
|
||||
@@ -1,91 +0,0 @@
|
||||
FROM ubuntu:xenial AS builder
|
||||
|
||||
# show backtraces
|
||||
ENV RUST_BACKTRACE 1
|
||||
|
||||
ENV LAST_DEPS_UPDATE 2020-06-19
|
||||
|
||||
# install tools and dependencies
|
||||
RUN set -eux; \
|
||||
apt-get update && \
|
||||
apt-get install -y file curl jq ca-certificates && \
|
||||
apt-get install -y cmake pkg-config libssl-dev git clang libclang-dev
|
||||
|
||||
ENV LAST_CERTS_UPDATE 2020-06-19
|
||||
|
||||
RUN update-ca-certificates && \
|
||||
curl https://sh.rustup.rs -sSf | sh -s -- -y
|
||||
|
||||
ENV PATH="/root/.cargo/bin:${PATH}"
|
||||
ENV LAST_RUST_UPDATE="2020-09-09"
|
||||
RUN rustup update stable && \
|
||||
rustup install nightly && \
|
||||
rustup target add wasm32-unknown-unknown --toolchain nightly
|
||||
|
||||
RUN rustc -vV && \
|
||||
cargo -V && \
|
||||
gcc -v && \
|
||||
g++ -v && \
|
||||
cmake --version
|
||||
|
||||
WORKDIR /openethereum
|
||||
|
||||
### Build from the repo
|
||||
ARG ETHEREUM_REPO=https://github.com/paritytech/openethereum.git
|
||||
ARG ETHEREUM_HASH=344991dbba2bc8657b00916f0e4b029c66f159e8
|
||||
RUN git clone $ETHEREUM_REPO /openethereum && git checkout $ETHEREUM_HASH
|
||||
|
||||
### Build locally. Make sure to set the CONTEXT to main directory of the repo.
|
||||
# ADD openethereum /openethereum
|
||||
|
||||
WORKDIR /parity-bridges-common
|
||||
|
||||
### Build from the repo
|
||||
# Build using `master` initially.
|
||||
ARG BRIDGE_REPO=https://github.com/paritytech/parity-bridges-common
|
||||
RUN git clone $BRIDGE_REPO /parity-bridges-common && git checkout master
|
||||
|
||||
WORKDIR /openethereum
|
||||
RUN cargo build --release --verbose || true
|
||||
|
||||
# Then rebuild by switching to a different branch to only incrementally
|
||||
# build the changes.
|
||||
WORKDIR /parity-bridges-common
|
||||
ARG BRIDGE_HASH=master
|
||||
RUN git checkout . && git fetch && git checkout $BRIDGE_HASH
|
||||
### Build locally. Make sure to set the CONTEXT to main directory of the repo.
|
||||
# ADD . /parity-bridges-common
|
||||
|
||||
WORKDIR /openethereum
|
||||
RUN cargo build --release --verbose
|
||||
RUN strip ./target/release/openethereum
|
||||
|
||||
FROM ubuntu:xenial
|
||||
|
||||
# show backtraces
|
||||
ENV RUST_BACKTRACE 1
|
||||
|
||||
RUN set -eux; \
|
||||
apt-get update && \
|
||||
apt-get install -y curl
|
||||
|
||||
RUN groupadd -g 1000 openethereum \
|
||||
&& useradd -u 1000 -g openethereum -s /bin/sh -m openethereum
|
||||
|
||||
# switch to user openethereum here
|
||||
USER openethereum
|
||||
|
||||
WORKDIR /home/openethereum
|
||||
|
||||
COPY --chown=openethereum:openethereum --from=builder /openethereum/target/release/openethereum ./
|
||||
# Solve issues with custom --keys-path
|
||||
RUN mkdir -p ~/.local/share/io.parity.ethereum/keys/
|
||||
# check if executable works in this container
|
||||
RUN ./openethereum --version
|
||||
|
||||
EXPOSE 8545 8546 30303/tcp 30303/udp
|
||||
|
||||
HEALTHCHECK --interval=2m --timeout=5s \
|
||||
CMD curl -f http://localhost:8545/api/health || exit 1
|
||||
|
||||
ENTRYPOINT ["/home/openethereum/openethereum"]
|
||||
@@ -1,46 +0,0 @@
|
||||
# Compose file for quickly spinning up a local instance of an Ethereum PoA network.
|
||||
#
|
||||
# Note that this PoA network is only used for testing, so the configuration settings you see here
|
||||
# are *not* recommended for a production environment.
|
||||
#
|
||||
# For example, do *not* keep your account key in version control, and unless you're _really_ sure
|
||||
# you want to provide public access to your nodes do *not* publicly expose RPC methods.
|
||||
version: '3.5'
|
||||
services:
|
||||
poa-node-arthur: &poa-node
|
||||
image: hcastano/openethereum-bridge-builtins
|
||||
entrypoint:
|
||||
- /home/openethereum/openethereum
|
||||
- --config=/config/poa-node-config
|
||||
- --node-key=arthur
|
||||
- --engine-signer=0x005e714f896a8b7cede9d38688c1a81de72a58e4
|
||||
environment:
|
||||
RUST_LOG: rpc=trace,txqueue=trace,bridge-builtin=trace
|
||||
ports:
|
||||
- "8545:8545"
|
||||
- "8546:8546"
|
||||
- "30303:30303"
|
||||
|
||||
poa-node-bertha:
|
||||
<<: *poa-node
|
||||
entrypoint:
|
||||
- /home/openethereum/openethereum
|
||||
- --config=/config/poa-node-config
|
||||
- --node-key=bertha
|
||||
- --engine-signer=0x007594304039c2937a12220338aab821d819f5a4
|
||||
ports:
|
||||
- "8645:8545"
|
||||
- "8646:8546"
|
||||
- "31303:30303"
|
||||
|
||||
poa-node-carlos:
|
||||
<<: *poa-node
|
||||
entrypoint:
|
||||
- /home/openethereum/openethereum
|
||||
- --config=/config/poa-node-config
|
||||
- --node-key=carlos
|
||||
- --engine-signer=0x004e7a39907f090e19b0b80a277e77b72b22e269
|
||||
ports:
|
||||
- "8745:8545"
|
||||
- "8746:8546"
|
||||
- "32303:30303"
|
||||
@@ -1,87 +0,0 @@
|
||||
# Compose file for quickly spinning up a local instance of the Millau Substrate network.
|
||||
#
|
||||
# Note that the Millau network is only used for testing, so the configuration settings you see here
|
||||
# are *not* recommended for a production environment.
|
||||
#
|
||||
# For example, do *not* keep your `node-key` in version control, and unless you're _really_ sure you
|
||||
# want to provide public access to your nodes do *not* publicly expose RPC methods.
|
||||
version: '3.5'
|
||||
services:
|
||||
millau-node-alice: &millau-bridge-node
|
||||
image: paritytech/millau-bridge-node
|
||||
entrypoint:
|
||||
- /home/user/millau-bridge-node
|
||||
- --execution=Native
|
||||
- --chain=local
|
||||
- --bootnodes=/dns4/millau-node-bob/tcp/30333/p2p/12D3KooWM5LFR5ne4yTQ4sBSXJ75M4bDo2MAhAW2GhL3i8fe5aRb
|
||||
- --alice
|
||||
- --node-key=0f900c89f4e626f4a217302ab8c7d213737d00627115f318ad6fb169717ac8e0
|
||||
- --rpc-cors=all
|
||||
- --unsafe-rpc-external
|
||||
- --unsafe-ws-external
|
||||
environment:
|
||||
RUST_LOG: runtime=trace,rpc=debug,txpool=trace,runtime::bridge=trace
|
||||
ports:
|
||||
- "19933:9933"
|
||||
- "19944:9944"
|
||||
|
||||
millau-node-bob:
|
||||
<<: *millau-bridge-node
|
||||
entrypoint:
|
||||
- /home/user/millau-bridge-node
|
||||
- --execution=Native
|
||||
- --chain=local
|
||||
- --bootnodes=/dns4/millau-node-alice/tcp/30333/p2p/12D3KooWFqiV73ipQ1jpfVmCfLqBCp8G9PLH3zPkY9EhmdrSGA4H
|
||||
- --bob
|
||||
- --node-key=db383639ff2905d79f8e936fd5dc4416ef46b514b2f83823ec3c42753d7557bb
|
||||
- --rpc-cors=all
|
||||
- --unsafe-rpc-external
|
||||
- --unsafe-ws-external
|
||||
ports:
|
||||
- "20033:9933"
|
||||
- "20044:9944"
|
||||
|
||||
millau-node-charlie:
|
||||
<<: *millau-bridge-node
|
||||
entrypoint:
|
||||
- /home/user/millau-bridge-node
|
||||
- --execution=Native
|
||||
- --chain=local
|
||||
- --bootnodes=/dns4/millau-node-alice/tcp/30333/p2p/12D3KooWFqiV73ipQ1jpfVmCfLqBCp8G9PLH3zPkY9EhmdrSGA4H
|
||||
- --charlie
|
||||
- --rpc-cors=all
|
||||
- --unsafe-rpc-external
|
||||
- --unsafe-ws-external
|
||||
ports:
|
||||
- "20133:9933"
|
||||
- "20144:9944"
|
||||
|
||||
millau-node-dave:
|
||||
<<: *millau-bridge-node
|
||||
entrypoint:
|
||||
- /home/user/millau-bridge-node
|
||||
- --execution=Native
|
||||
- --chain=local
|
||||
- --bootnodes=/dns4/millau-node-alice/tcp/30333/p2p/12D3KooWFqiV73ipQ1jpfVmCfLqBCp8G9PLH3zPkY9EhmdrSGA4H
|
||||
- --dave
|
||||
- --rpc-cors=all
|
||||
- --unsafe-rpc-external
|
||||
- --unsafe-ws-external
|
||||
ports:
|
||||
- "20233:9933"
|
||||
- "20244:9944"
|
||||
|
||||
millau-node-eve:
|
||||
<<: *millau-bridge-node
|
||||
entrypoint:
|
||||
- /home/user/millau-bridge-node
|
||||
- --execution=Native
|
||||
- --chain=local
|
||||
- --bootnodes=/dns4/millau-node-alice/tcp/30333/p2p/12D3KooWFqiV73ipQ1jpfVmCfLqBCp8G9PLH3zPkY9EhmdrSGA4H
|
||||
- --eve
|
||||
- --rpc-cors=all
|
||||
- --unsafe-rpc-external
|
||||
- --unsafe-ws-external
|
||||
ports:
|
||||
- "20333:9933"
|
||||
- "20344:9944"
|
||||
@@ -1,87 +0,0 @@
|
||||
# Compose file for quickly spinning up a local instance of the Rialto Substrate network.
|
||||
#
|
||||
# Note that the Rialto network is only used for testing, so the configuration settings you see here
|
||||
# are *not* recommended for a production environment.
|
||||
#
|
||||
# For example, do *not* keep your `node-key` in version control, and unless you're _really_ sure you
|
||||
# want to provide public access to your nodes do *not* publicly expose RPC methods.
|
||||
version: '3.5'
|
||||
services:
|
||||
rialto-node-alice: &rialto-bridge-node
|
||||
image: paritytech/rialto-bridge-node
|
||||
entrypoint:
|
||||
- /home/user/rialto-bridge-node
|
||||
- --execution=Native
|
||||
- --chain=local
|
||||
- --bootnodes=/dns4/rialto-node-bob/tcp/30333/p2p/12D3KooWSEpHJj29HEzgPFcRYVc5X3sEuP3KgiUoqJNCet51NiMX
|
||||
- --alice
|
||||
- --node-key=79cf382988364291a7968ae7825c01f68c50d679796a8983237d07fe0ccf363b
|
||||
- --rpc-cors=all
|
||||
- --unsafe-rpc-external
|
||||
- --unsafe-ws-external
|
||||
environment:
|
||||
RUST_LOG: runtime=trace,rpc=debug,txpool=trace,runtime::bridge=trace
|
||||
ports:
|
||||
- "9933:9933"
|
||||
- "9944:9944"
|
||||
|
||||
rialto-node-bob:
|
||||
<<: *rialto-bridge-node
|
||||
entrypoint:
|
||||
- /home/user/rialto-bridge-node
|
||||
- --execution=Native
|
||||
- --chain=local
|
||||
- --bootnodes=/dns4/rialto-node-alice/tcp/30333/p2p/12D3KooWMF6JvV319a7kJn5pqkKbhR3fcM2cvK5vCbYZHeQhYzFE
|
||||
- --bob
|
||||
- --node-key=4f9d0146dd9b7b3bf5a8089e3880023d1df92057f89e96e07bb4d8c2ead75bbd
|
||||
- --rpc-cors=all
|
||||
- --unsafe-rpc-external
|
||||
- --unsafe-ws-external
|
||||
ports:
|
||||
- "10033:9933"
|
||||
- "10044:9944"
|
||||
|
||||
rialto-node-charlie:
|
||||
<<: *rialto-bridge-node
|
||||
entrypoint:
|
||||
- /home/user/rialto-bridge-node
|
||||
- --execution=Native
|
||||
- --chain=local
|
||||
- --bootnodes=/dns4/rialto-node-alice/tcp/30333/p2p/12D3KooWMF6JvV319a7kJn5pqkKbhR3fcM2cvK5vCbYZHeQhYzFE
|
||||
- --charlie
|
||||
- --rpc-cors=all
|
||||
- --unsafe-rpc-external
|
||||
- --unsafe-ws-external
|
||||
ports:
|
||||
- "10133:9933"
|
||||
- "10144:9944"
|
||||
|
||||
rialto-node-dave:
|
||||
<<: *rialto-bridge-node
|
||||
entrypoint:
|
||||
- /home/user/rialto-bridge-node
|
||||
- --execution=Native
|
||||
- --chain=local
|
||||
- --bootnodes=/dns4/rialto-node-alice/tcp/30333/p2p/12D3KooWMF6JvV319a7kJn5pqkKbhR3fcM2cvK5vCbYZHeQhYzFE
|
||||
- --dave
|
||||
- --rpc-cors=all
|
||||
- --unsafe-rpc-external
|
||||
- --unsafe-ws-external
|
||||
ports:
|
||||
- "10233:9933"
|
||||
- "10244:9944"
|
||||
|
||||
rialto-node-eve:
|
||||
<<: *rialto-bridge-node
|
||||
entrypoint:
|
||||
- /home/user/rialto-bridge-node
|
||||
- --execution=Native
|
||||
- --chain=local
|
||||
- --bootnodes=/dns4/rialto-node-alice/tcp/30333/p2p/12D3KooWMF6JvV319a7kJn5pqkKbhR3fcM2cvK5vCbYZHeQhYzFE
|
||||
- --eve
|
||||
- --rpc-cors=all
|
||||
- --unsafe-rpc-external
|
||||
- --unsafe-ws-external
|
||||
ports:
|
||||
- "10333:9933"
|
||||
- "10344:9944"
|
||||
@@ -1,15 +0,0 @@
|
||||
# nginx-proxy
|
||||
|
||||
This is a nginx reverse proxy configuration with Let's encrypt companion.
|
||||
Main purpose is to be able to use `https://polkadot.js.org/apps` to connect to
|
||||
a running network.
|
||||
|
||||
## How to?
|
||||
|
||||
In current directory:
|
||||
```bash
|
||||
docker-compose up -d
|
||||
```
|
||||
|
||||
Then start `rialto` network with the same command (one folder up). `nginx` should
|
||||
pick up new containers being created and automatically create a proxy setup for `Charlie`.
|
||||
@@ -1,42 +0,0 @@
|
||||
version: '2'
|
||||
services:
|
||||
nginx-proxy:
|
||||
image: jwilder/nginx-proxy
|
||||
container_name: nginx-proxy
|
||||
networks:
|
||||
- nginx-proxy
|
||||
- deployments_default
|
||||
ports:
|
||||
- "80:80"
|
||||
- "443:443"
|
||||
volumes:
|
||||
- conf:/etc/nginx/conf.d
|
||||
- vhost:/etc/nginx/vhost.d
|
||||
- html:/usr/share/nginx/html
|
||||
- dhparam:/etc/nginx/dhparam
|
||||
- certs:/etc/nginx/certs:ro
|
||||
- /var/run/docker.sock:/tmp/docker.sock:ro
|
||||
|
||||
letsencrypt:
|
||||
image: jrcs/letsencrypt-nginx-proxy-companion
|
||||
container_name: nginx-proxy-le
|
||||
networks:
|
||||
- nginx-proxy
|
||||
volumes_from:
|
||||
- nginx-proxy
|
||||
volumes:
|
||||
- certs:/etc/nginx/certs:rw
|
||||
- /var/run/docker.sock:/var/run/docker.sock:ro
|
||||
|
||||
volumes:
|
||||
conf:
|
||||
vhost:
|
||||
html:
|
||||
dhparam:
|
||||
certs:
|
||||
|
||||
networks:
|
||||
nginx-proxy:
|
||||
driver: bridge
|
||||
deployments_default:
|
||||
external: true
|
||||
@@ -1,162 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Script used for running and updating bridge deployments.
|
||||
#
|
||||
# To deploy a network you can run this script with the name of the bridge (or multiple bridges) you want to run.
|
||||
#
|
||||
# `./run.sh poa-rialto rialto-millau`
|
||||
#
|
||||
# To update a deployment to use the latest images available from the Docker Hub add the `update`
|
||||
# argument after the bridge name.
|
||||
#
|
||||
# `./run.sh rialto-millau update`
|
||||
#
|
||||
# Once you've stopped having fun with your deployment you can take it down with:
|
||||
#
|
||||
# `./run.sh rialto-millau stop`
|
||||
#
|
||||
# Stopping the bridge will also bring down all networks that it uses. So if you have started multiple bridges
|
||||
# that are using the same network (like Millau in rialto-millau and westend-millau bridges), then stopping one
|
||||
# of these bridges will cause the other bridge to break.
|
||||
|
||||
set -xeu
|
||||
|
||||
# Since the Compose commands are using relative paths we need to `cd` into the `deployments` folder.
|
||||
cd "$( dirname "${BASH_SOURCE[0]}" )"
|
||||
|
||||
function show_help () {
|
||||
set +x
|
||||
echo " "
|
||||
echo Error: $1
|
||||
echo " "
|
||||
echo "Usage:"
|
||||
echo " ./run.sh poa-rialto [stop|update] Run PoA <> Rialto Networks & Bridge"
|
||||
echo " ./run.sh rialto-millau [stop|update] Run Rialto <> Millau Networks & Bridge"
|
||||
echo " ./run.sh westend-millau [stop|update] Run Westend -> Millau Networks & Bridge"
|
||||
echo " "
|
||||
echo "Options:"
|
||||
echo " --no-monitoring Disable monitoring"
|
||||
echo " "
|
||||
echo "You can start multiple bridges at once by passing several bridge names:"
|
||||
echo " ./run.sh poa-rialto rialto-millau westend-millau [stop|update]"
|
||||
exit 1
|
||||
}
|
||||
|
||||
RIALTO=' -f ./networks/rialto.yml'
|
||||
MILLAU=' -f ./networks/millau.yml'
|
||||
ETH_POA=' -f ./networks/eth-poa.yml'
|
||||
MONITORING=' -f ./monitoring/docker-compose.yml'
|
||||
|
||||
BRIDGES=()
|
||||
NETWORKS=''
|
||||
SUB_COMMAND='start'
|
||||
for i in "$@"
|
||||
do
|
||||
case $i in
|
||||
--no-monitoring)
|
||||
MONITORING=" -f ./monitoring/disabled.yml"
|
||||
shift
|
||||
continue
|
||||
;;
|
||||
poa-rialto)
|
||||
BRIDGES+=($i)
|
||||
NETWORKS+=${RIALTO}
|
||||
RIALTO=''
|
||||
NETWORKS+=${ETH_POA}
|
||||
ETH_POA=''
|
||||
shift
|
||||
;;
|
||||
rialto-millau)
|
||||
BRIDGES+=($i)
|
||||
NETWORKS+=${RIALTO}
|
||||
RIALTO=''
|
||||
NETWORKS+=${MILLAU}
|
||||
MILLAU=''
|
||||
shift
|
||||
;;
|
||||
westend-millau)
|
||||
BRIDGES+=($i)
|
||||
NETWORKS+=${MILLAU}
|
||||
MILLAU=''
|
||||
shift
|
||||
;;
|
||||
start|stop|update)
|
||||
SUB_COMMAND=$i
|
||||
shift
|
||||
;;
|
||||
*)
|
||||
show_help "Unknown option: $i"
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
if [ ${#BRIDGES[@]} -eq 0 ]; then
|
||||
show_help "Missing bridge name."
|
||||
fi
|
||||
|
||||
COMPOSE_FILES=$NETWORKS$MONITORING
|
||||
|
||||
# Compose looks for .env files in the the current directory by default, we don't want that
|
||||
COMPOSE_ARGS="--project-directory ."
|
||||
# Path to env file that we want to use. Compose only accepts single `--env-file` argument,
|
||||
# so we'll be using the last .env file we'll found.
|
||||
COMPOSE_ENV_FILE=''
|
||||
|
||||
for BRIDGE in "${BRIDGES[@]}"
|
||||
do
|
||||
BRIDGE_PATH="./bridges/$BRIDGE"
|
||||
BRIDGE=" -f $BRIDGE_PATH/docker-compose.yml"
|
||||
COMPOSE_FILES=$BRIDGE$COMPOSE_FILES
|
||||
|
||||
# Remember .env file to use in docker-compose call
|
||||
if [[ -f "$BRIDGE_PATH/.env" ]]; then
|
||||
COMPOSE_ENV_FILE=" --env-file $BRIDGE_PATH/.env"
|
||||
fi
|
||||
|
||||
# Read and source variables from .env file so we can use them here
|
||||
grep -e MATRIX_ACCESS_TOKEN -e WITH_PROXY $BRIDGE_PATH/.env > .env2 && . ./.env2 && rm .env2
|
||||
if [ ! -z ${MATRIX_ACCESS_TOKEN+x} ]; then
|
||||
sed -i "s/access_token.*/access_token: \"$MATRIX_ACCESS_TOKEN\"/" ./monitoring/grafana-matrix/config.yml
|
||||
fi
|
||||
done
|
||||
|
||||
# Final COMPOSE_ARGS
|
||||
COMPOSE_ARGS="$COMPOSE_ARGS $COMPOSE_ENV_FILE"
|
||||
|
||||
# Check the sub-command, perhaps we just mean to stop the network instead of starting it.
|
||||
if [ "$SUB_COMMAND" == "stop" ]; then
|
||||
|
||||
if [ ! -z ${WITH_PROXY+x} ]; then
|
||||
cd ./reverse-proxy
|
||||
docker-compose down
|
||||
cd -
|
||||
fi
|
||||
|
||||
docker-compose $COMPOSE_ARGS $COMPOSE_FILES down
|
||||
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# See if we want to update the docker images before starting the network.
|
||||
if [ "$SUB_COMMAND" == "update" ]; then
|
||||
|
||||
# Stop the proxy cause otherwise the network can't be stopped
|
||||
if [ ! -z ${WITH_PROXY+x} ]; then
|
||||
cd ./reverse-proxy
|
||||
docker-compose down
|
||||
cd -
|
||||
fi
|
||||
|
||||
|
||||
docker-compose $COMPOSE_ARGS $COMPOSE_FILES pull
|
||||
docker-compose $COMPOSE_ARGS $COMPOSE_FILES down
|
||||
docker-compose $COMPOSE_ARGS $COMPOSE_FILES build
|
||||
fi
|
||||
|
||||
docker-compose $COMPOSE_ARGS $COMPOSE_FILES up -d
|
||||
|
||||
# Start the proxy if needed
|
||||
if [ ! -z ${WITH_PROXY+x} ]; then
|
||||
cd ./reverse-proxy
|
||||
docker-compose up -d
|
||||
fi
|
||||
@@ -1,188 +0,0 @@
|
||||
{
|
||||
"--1": "Millau Types",
|
||||
"MillauBalance": "u64",
|
||||
"MillauBlockHash": "H512",
|
||||
"MillauBlockNumber": "u64",
|
||||
"MillauHeader": {
|
||||
"parent_Hash": "MillauBlockHash",
|
||||
"number": "Compact<MillauBlockNumber>",
|
||||
"state_root": "MillauBlockHash",
|
||||
"extrinsics_root": "MillauBlockHash",
|
||||
"digest": "MillauDigest"
|
||||
},
|
||||
"MillauDigest": {
|
||||
"logs": "Vec<MillauDigestItem>"
|
||||
},
|
||||
"MillauDigestItem": {
|
||||
"_enum": {
|
||||
"Other": "Vec<u8>",
|
||||
"AuthoritiesChange": "Vec<AuthorityId>",
|
||||
"ChangesTrieRoot": "MillauBlockHash",
|
||||
"SealV0": "SealV0",
|
||||
"Consensus": "Consensus",
|
||||
"Seal": "Seal",
|
||||
"PreRuntime": "PreRuntime"
|
||||
}
|
||||
},
|
||||
"--2": "Rialto Types",
|
||||
"RialtoBalance": "u128",
|
||||
"RialtoBlockHash": "H256",
|
||||
"RialtoBlockNumber": "u32",
|
||||
"RialtoHeader": {
|
||||
"parent_Hash": "RialtoBlockHash",
|
||||
"number": "Compact<RialtoBlockNumber>",
|
||||
"state_root": "RialtoBlockHash",
|
||||
"extrinsics_root": "RialtoBlockHash",
|
||||
"digest": "RialtoDigest"
|
||||
},
|
||||
"RialtoDigest": {
|
||||
"logs": "Vec<RialtoDigestItem>"
|
||||
},
|
||||
"RialtoDigestItem": {
|
||||
"_enum": {
|
||||
"Other": "Vec<u8>",
|
||||
"AuthoritiesChange": "Vec<AuthorityId>",
|
||||
"ChangesTrieRoot": "RialtoBlockHash",
|
||||
"SealV0": "SealV0",
|
||||
"Consensus": "Consensus",
|
||||
"Seal": "Seal",
|
||||
"PreRuntime": "PreRuntime"
|
||||
}
|
||||
},
|
||||
"--3": "Common types",
|
||||
"Address": "AccountId",
|
||||
"LookupSource": "AccountId",
|
||||
"AccountSigner": "MultiSigner",
|
||||
"SpecVersion": "u32",
|
||||
"RelayerId": "AccountId",
|
||||
"SourceAccountId": "AccountId",
|
||||
"ImportedHeader": {
|
||||
"header": "BridgedHeader",
|
||||
"requires_justification": "bool",
|
||||
"is_finalized": "bool",
|
||||
"signal_hash": "Option<BridgedBlockHash>"
|
||||
},
|
||||
"AuthoritySet": {
|
||||
"authorities": "AuthorityList",
|
||||
"set_id": "SetId"
|
||||
},
|
||||
"Id": "[u8; 4]",
|
||||
"ChainId": "Id",
|
||||
"LaneId": "Id",
|
||||
"MessageNonce": "u64",
|
||||
"MessageId": "(Id, u64)",
|
||||
"MessageKey": {
|
||||
"lane_id": "LaneId",
|
||||
"nonce:": "MessageNonce"
|
||||
},
|
||||
"InboundRelayer": "AccountId",
|
||||
"InboundLaneData": {
|
||||
"relayers": "Vec<UnrewardedRelayer>",
|
||||
"last_confirmed_nonce": "MessageNonce"
|
||||
},
|
||||
"UnrewardedRelayer": {
|
||||
"relayer": "RelayerId",
|
||||
"messages": "DeliveredMessages"
|
||||
},
|
||||
"DeliveredMessages": {
|
||||
"begin": "MessageNonce",
|
||||
"end": "MessageNonce",
|
||||
"dispatch_results": "BitVec"
|
||||
},
|
||||
"OutboundLaneData": {
|
||||
"latest_generated_nonce": "MessageNonce",
|
||||
"latest_received_nonce": "MessageNonce",
|
||||
"oldest_unpruned_nonce": "MessageNonce"
|
||||
},
|
||||
"MessageData": {
|
||||
"payload": "MessagePayload",
|
||||
"fee": "Fee"
|
||||
},
|
||||
"MessagePayload": "Vec<u8>",
|
||||
"BridgedOpaqueCall": "Vec<u8>",
|
||||
"OutboundMessageFee": "Fee",
|
||||
"OutboundPayload": {
|
||||
"spec_version": "SpecVersion",
|
||||
"weight": "Weight",
|
||||
"origin": "CallOrigin",
|
||||
"dispatch_fee_payment": "DispatchFeePayment",
|
||||
"call": "BridgedOpaqueCall"
|
||||
},
|
||||
"CallOrigin": {
|
||||
"_enum": {
|
||||
"SourceRoot": "()",
|
||||
"TargetAccount": "(SourceAccountId, MultiSigner, MultiSignature)",
|
||||
"SourceAccount": "SourceAccountId"
|
||||
}
|
||||
},
|
||||
"DispatchFeePayment": {
|
||||
"_enum": {
|
||||
"AtSourceChain": "()",
|
||||
"AtTargetChain": "()"
|
||||
}
|
||||
},
|
||||
"MultiSigner": {
|
||||
"_enum": {
|
||||
"Ed25519": "H256",
|
||||
"Sr25519": "H256",
|
||||
"Ecdsa": "[u8;33]"
|
||||
}
|
||||
},
|
||||
"MessagesProofOf": {
|
||||
"bridged_header_hash": "BridgedBlockHash",
|
||||
"storage_proof": "Vec<StorageProofItem>",
|
||||
"lane": "LaneId",
|
||||
"nonces_start": "MessageNonce",
|
||||
"nonces_end": "MessageNonce"
|
||||
},
|
||||
"StorageProofItem": "Vec<u8>",
|
||||
"MessagesDeliveryProofOf": {
|
||||
"bridged_header_hash": "BridgedBlockHash",
|
||||
"storage_proof": "Vec<StorageProofItem>",
|
||||
"lane": "LaneId"
|
||||
},
|
||||
"UnrewardedRelayersState": {
|
||||
"unrewarded_relayer_entries": "MessageNonce",
|
||||
"messages_in_oldest_entry": "MessageNonce",
|
||||
"total_messages": "MessageNonce"
|
||||
},
|
||||
"AncestryProof": "()",
|
||||
"MessageFeeData": {
|
||||
"lane_id": "LaneId",
|
||||
"payload": "OutboundPayload"
|
||||
},
|
||||
"Precommit": {
|
||||
"target_hash": "BridgedBlockHash",
|
||||
"target_number": "BridgedBlockNumber"
|
||||
},
|
||||
"AuthoritySignature": "[u8;64]",
|
||||
"AuthorityId": "[u8;32]",
|
||||
"SignedPrecommit": {
|
||||
"precommit": "Precommit",
|
||||
"signature": "AuthoritySignature",
|
||||
"id": "AuthorityId"
|
||||
},
|
||||
"Commit": {
|
||||
"target_hash": "BridgedBlockHash",
|
||||
"target_number": "BridgedBlockNumber",
|
||||
"precommits": "Vec<SignedPrecommit>"
|
||||
},
|
||||
"GrandpaJustification": {
|
||||
"round": "u64",
|
||||
"commit": "Commit",
|
||||
"votes_ancestries": "Vec<BridgedHeader>"
|
||||
},
|
||||
"Fee": "MillauBalance",
|
||||
"Balance": "MillauBalance",
|
||||
"Hash": "MillauBlockHash",
|
||||
"BlockHash": "MillauBlockHash",
|
||||
"BlockNumber": "MillauBlockNumber",
|
||||
"BridgedBlockHash": "RialtoBlockHash",
|
||||
"BridgedBlockNumber": "RialtoBlockNumber",
|
||||
"BridgedHeader": "RialtoHeader",
|
||||
"Parameter": {
|
||||
"_enum": {
|
||||
"MillauToRialtoConversionRate": "u128"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,187 +0,0 @@
|
||||
{
|
||||
"--1": "Millau Types",
|
||||
"MillauBalance": "u64",
|
||||
"MillauBlockHash": "H512",
|
||||
"MillauBlockNumber": "u64",
|
||||
"MillauHeader": {
|
||||
"parent_Hash": "MillauBlockHash",
|
||||
"number": "Compact<MillauBlockNumber>",
|
||||
"state_root": "MillauBlockHash",
|
||||
"extrinsics_root": "MillauBlockHash",
|
||||
"digest": "MillauDigest"
|
||||
},
|
||||
"MillauDigest": {
|
||||
"logs": "Vec<MillauDigestItem>"
|
||||
},
|
||||
"MillauDigestItem": {
|
||||
"_enum": {
|
||||
"Other": "Vec<u8>",
|
||||
"AuthoritiesChange": "Vec<AuthorityId>",
|
||||
"ChangesTrieRoot": "MillauBlockHash",
|
||||
"SealV0": "SealV0",
|
||||
"Consensus": "Consensus",
|
||||
"Seal": "Seal",
|
||||
"PreRuntime": "PreRuntime"
|
||||
}
|
||||
},
|
||||
"--2": "Rialto Types",
|
||||
"RialtoBalance": "u128",
|
||||
"RialtoBlockHash": "H256",
|
||||
"RialtoBlockNumber": "u32",
|
||||
"RialtoHeader": {
|
||||
"parent_Hash": "RialtoBlockHash",
|
||||
"number": "Compact<RialtoBlockNumber>",
|
||||
"state_root": "RialtoBlockHash",
|
||||
"extrinsics_root": "RialtoBlockHash",
|
||||
"digest": "RialtoDigest"
|
||||
},
|
||||
"RialtoDigest": {
|
||||
"logs": "Vec<RialtoDigestItem>"
|
||||
},
|
||||
"RialtoDigestItem": {
|
||||
"_enum": {
|
||||
"Other": "Vec<u8>",
|
||||
"AuthoritiesChange": "Vec<AuthorityId>",
|
||||
"ChangesTrieRoot": "RialtoBlockHash",
|
||||
"SealV0": "SealV0",
|
||||
"Consensus": "Consensus",
|
||||
"Seal": "Seal",
|
||||
"PreRuntime": "PreRuntime"
|
||||
}
|
||||
},
|
||||
"--3": "Common types",
|
||||
"Address": "AccountId",
|
||||
"LookupSource": "AccountId",
|
||||
"AccountSigner": "MultiSigner",
|
||||
"SpecVersion": "u32",
|
||||
"RelayerId": "AccountId",
|
||||
"SourceAccountId": "AccountId",
|
||||
"ImportedHeader": {
|
||||
"header": "BridgedHeader",
|
||||
"requires_justification": "bool",
|
||||
"is_finalized": "bool",
|
||||
"signal_hash": "Option<BridgedBlockHash>"
|
||||
},
|
||||
"AuthoritySet": {
|
||||
"authorities": "AuthorityList",
|
||||
"set_id": "SetId"
|
||||
},
|
||||
"Id": "[u8; 4]",
|
||||
"ChainId": "Id",
|
||||
"LaneId": "Id",
|
||||
"MessageNonce": "u64",
|
||||
"MessageId": "(Id, u64)",
|
||||
"MessageKey": {
|
||||
"lane_id": "LaneId",
|
||||
"nonce:": "MessageNonce"
|
||||
},
|
||||
"InboundRelayer": "AccountId",
|
||||
"InboundLaneData": {
|
||||
"relayers": "Vec<UnrewardedRelayer>",
|
||||
"last_confirmed_nonce": "MessageNonce"
|
||||
},
|
||||
"UnrewardedRelayer": {
|
||||
"relayer": "RelayerId",
|
||||
"messages": "DeliveredMessages"
|
||||
},
|
||||
"DeliveredMessages": {
|
||||
"begin": "MessageNonce",
|
||||
"end": "MessageNonce",
|
||||
"dispatch_results": "BitVec"
|
||||
},
|
||||
"OutboundLaneData": {
|
||||
"latest_generated_nonce": "MessageNonce",
|
||||
"latest_received_nonce": "MessageNonce",
|
||||
"oldest_unpruned_nonce": "MessageNonce"
|
||||
},
|
||||
"MessageData": {
|
||||
"payload": "MessagePayload",
|
||||
"fee": "Fee"
|
||||
},
|
||||
"MessagePayload": "Vec<u8>",
|
||||
"BridgedOpaqueCall": "Vec<u8>",
|
||||
"OutboundMessageFee": "Fee",
|
||||
"OutboundPayload": {
|
||||
"spec_version": "SpecVersion",
|
||||
"weight": "Weight",
|
||||
"origin": "CallOrigin",
|
||||
"dispatch_fee_payment": "DispatchFeePayment",
|
||||
"call": "BridgedOpaqueCall"
|
||||
},
|
||||
"CallOrigin": {
|
||||
"_enum": {
|
||||
"SourceRoot": "()",
|
||||
"TargetAccount": "(SourceAccountId, MultiSigner, MultiSignature)",
|
||||
"SourceAccount": "SourceAccountId"
|
||||
}
|
||||
},
|
||||
"DispatchFeePayment": {
|
||||
"_enum": {
|
||||
"AtSourceChain": "()",
|
||||
"AtTargetChain": "()"
|
||||
}
|
||||
},
|
||||
"MultiSigner": {
|
||||
"_enum": {
|
||||
"Ed25519": "H256",
|
||||
"Sr25519": "H256",
|
||||
"Ecdsa": "[u8;33]"
|
||||
}
|
||||
},
|
||||
"MessagesProofOf": {
|
||||
"bridged_header_hash": "BridgedBlockHash",
|
||||
"storage_proof": "Vec<StorageProofItem>",
|
||||
"lane": "LaneId",
|
||||
"nonces_start": "MessageNonce",
|
||||
"nonces_end": "MessageNonce"
|
||||
},
|
||||
"StorageProofItem": "Vec<u8>",
|
||||
"MessagesDeliveryProofOf": {
|
||||
"bridged_header_hash": "BridgedBlockHash",
|
||||
"storage_proof": "Vec<StorageProofItem>",
|
||||
"lane": "LaneId"
|
||||
},
|
||||
"UnrewardedRelayersState": {
|
||||
"unrewarded_relayer_entries": "MessageNonce",
|
||||
"messages_in_oldest_entry": "MessageNonce",
|
||||
"total_messages": "MessageNonce"
|
||||
},
|
||||
"AncestryProof": "()",
|
||||
"MessageFeeData": {
|
||||
"lane_id": "LaneId",
|
||||
"payload": "OutboundPayload"
|
||||
},
|
||||
"Precommit": {
|
||||
"target_hash": "BridgedBlockHash",
|
||||
"target_number": "BridgedBlockNumber"
|
||||
},
|
||||
"AuthoritySignature": "[u8;64]",
|
||||
"AuthorityId": "[u8;32]",
|
||||
"SignedPrecommit": {
|
||||
"precommit": "Precommit",
|
||||
"signature": "AuthoritySignature",
|
||||
"id": "AuthorityId"
|
||||
},
|
||||
"Commit": {
|
||||
"target_hash": "BridgedBlockHash",
|
||||
"target_number": "BridgedBlockNumber",
|
||||
"precommits": "Vec<SignedPrecommit>"
|
||||
},
|
||||
"GrandpaJustification": {
|
||||
"round": "u64",
|
||||
"commit": "Commit",
|
||||
"votes_ancestries": "Vec<BridgedHeader>"
|
||||
},
|
||||
"Fee": "RialtoBalance",
|
||||
"Balance": "RialtoBalance",
|
||||
"BlockHash": "RialtoBlockHash",
|
||||
"BlockNumber": "RialtoBlockNumber",
|
||||
"BridgedBlockHash": "MillauBlockHash",
|
||||
"BridgedBlockNumber": "MillauBlockNumber",
|
||||
"BridgedHeader": "MillauHeader",
|
||||
"Parameter": {
|
||||
"_enum": {
|
||||
"RialtoToMillauConversionRate": "u128"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,147 +0,0 @@
|
||||
{
|
||||
"--1": "Rococo Types",
|
||||
"RococoBalance": "u128",
|
||||
"RococoBlockHash": "H256",
|
||||
"RococoBlockNumber": "u32",
|
||||
"RococoHeader": "Header",
|
||||
"--2": "Wococo Types",
|
||||
"WococoBalance": "RococoBalance",
|
||||
"WococoBlockHash": "RococoBlockHash",
|
||||
"WococoBlockNumber": "RococoBlockNumber",
|
||||
"WococoHeader": "RococoHeader",
|
||||
"--3": "Common types",
|
||||
"Address": "AccountId",
|
||||
"LookupSource": "AccountId",
|
||||
"AccountSigner": "MultiSigner",
|
||||
"SpecVersion": "u32",
|
||||
"RelayerId": "AccountId",
|
||||
"SourceAccountId": "AccountId",
|
||||
"ImportedHeader": {
|
||||
"header": "BridgedHeader",
|
||||
"requires_justification": "bool",
|
||||
"is_finalized": "bool",
|
||||
"signal_hash": "Option<BridgedBlockHash>"
|
||||
},
|
||||
"AuthoritySet": {
|
||||
"authorities": "AuthorityList",
|
||||
"set_id": "SetId"
|
||||
},
|
||||
"Id": "[u8; 4]",
|
||||
"ChainId": "Id",
|
||||
"LaneId": "Id",
|
||||
"MessageNonce": "u64",
|
||||
"MessageId": "(Id, u64)",
|
||||
"MessageKey": {
|
||||
"lane_id": "LaneId",
|
||||
"nonce:": "MessageNonce"
|
||||
},
|
||||
"InboundRelayer": "AccountId",
|
||||
"InboundLaneData": {
|
||||
"relayers": "Vec<UnrewardedRelayer>",
|
||||
"last_confirmed_nonce": "MessageNonce"
|
||||
},
|
||||
"UnrewardedRelayer": {
|
||||
"relayer": "RelayerId",
|
||||
"messages": "DeliveredMessages"
|
||||
},
|
||||
"DeliveredMessages": {
|
||||
"begin": "MessageNonce",
|
||||
"end": "MessageNonce",
|
||||
"dispatch_results": "BitVec"
|
||||
},
|
||||
"OutboundLaneData": {
|
||||
"latest_generated_nonce": "MessageNonce",
|
||||
"latest_received_nonce": "MessageNonce",
|
||||
"oldest_unpruned_nonce": "MessageNonce"
|
||||
},
|
||||
"MessageData": {
|
||||
"payload": "MessagePayload",
|
||||
"fee": "Fee"
|
||||
},
|
||||
"MessagePayload": "Vec<u8>",
|
||||
"BridgedOpaqueCall": "Vec<u8>",
|
||||
"OutboundMessageFee": "Fee",
|
||||
"OutboundPayload": {
|
||||
"spec_version": "SpecVersion",
|
||||
"weight": "Weight",
|
||||
"origin": "CallOrigin",
|
||||
"dispatch_fee_payment": "DispatchFeePayment",
|
||||
"call": "BridgedOpaqueCall"
|
||||
},
|
||||
"CallOrigin": {
|
||||
"_enum": {
|
||||
"SourceRoot": "()",
|
||||
"TargetAccount": "(SourceAccountId, MultiSigner, MultiSignature)",
|
||||
"SourceAccount": "SourceAccountId"
|
||||
}
|
||||
},
|
||||
"DispatchFeePayment": {
|
||||
"_enum": {
|
||||
"AtSourceChain": "()",
|
||||
"AtTargetChain": "()"
|
||||
}
|
||||
},
|
||||
"MultiSigner": {
|
||||
"_enum": {
|
||||
"Ed25519": "H256",
|
||||
"Sr25519": "H256",
|
||||
"Ecdsa": "[u8;33]"
|
||||
}
|
||||
},
|
||||
"MessagesProofOf": {
|
||||
"bridged_header_hash": "BridgedBlockHash",
|
||||
"storage_proof": "Vec<StorageProofItem>",
|
||||
"lane": "LaneId",
|
||||
"nonces_start": "MessageNonce",
|
||||
"nonces_end": "MessageNonce"
|
||||
},
|
||||
"StorageProofItem": "Vec<u8>",
|
||||
"MessagesDeliveryProofOf": {
|
||||
"bridged_header_hash": "BridgedBlockHash",
|
||||
"storage_proof": "Vec<StorageProofItem>",
|
||||
"lane": "LaneId"
|
||||
},
|
||||
"UnrewardedRelayersState": {
|
||||
"unrewarded_relayer_entries": "MessageNonce",
|
||||
"messages_in_oldest_entry": "MessageNonce",
|
||||
"total_messages": "MessageNonce"
|
||||
},
|
||||
"AncestryProof": "()",
|
||||
"MessageFeeData": {
|
||||
"lane_id": "LaneId",
|
||||
"payload": "OutboundPayload"
|
||||
},
|
||||
"Precommit": {
|
||||
"target_hash": "BridgedBlockHash",
|
||||
"target_number": "BridgedBlockNumber"
|
||||
},
|
||||
"AuthoritySignature": "[u8;64]",
|
||||
"AuthorityId": "[u8;32]",
|
||||
"SignedPrecommit": {
|
||||
"precommit": "Precommit",
|
||||
"signature": "AuthoritySignature",
|
||||
"id": "AuthorityId"
|
||||
},
|
||||
"Commit": {
|
||||
"target_hash": "BridgedBlockHash",
|
||||
"target_number": "BridgedBlockNumber",
|
||||
"precommits": "Vec<SignedPrecommit>"
|
||||
},
|
||||
"GrandpaJustification": {
|
||||
"round": "u64",
|
||||
"commit": "Commit",
|
||||
"votes_ancestries": "Vec<BridgedHeader>"
|
||||
},
|
||||
"Fee": "RococoBalance",
|
||||
"Balance": "RococoBalance",
|
||||
"BlockHash": "RococoBlockHash",
|
||||
"BlockNumber": "RococoBlockNumber",
|
||||
"BridgedBlockHash": "WococoBlockHash",
|
||||
"BridgedBlockNumber": "WococoBlockNumber",
|
||||
"BridgedHeader": "WococoHeader",
|
||||
"Parameter": {
|
||||
"_enum": {
|
||||
"RococoToWococoConversionRate": "u128"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,148 +0,0 @@
|
||||
{
|
||||
"--1": "Rococo Types",
|
||||
"RococoBalance": "u128",
|
||||
"RococoBlockHash": "H256",
|
||||
"RococoBlockNumber": "u32",
|
||||
"RococoHeader": "Header",
|
||||
"--2": "Wococo Types",
|
||||
"WococoBalance": "RococoBalance",
|
||||
"WococoBlockHash": "RococoBlockHash",
|
||||
"WococoBlockNumber": "RococoBlockNumber",
|
||||
"WococoHeader": "RococoHeader",
|
||||
"--3": "Common types",
|
||||
"Address": "AccountId",
|
||||
"LookupSource": "AccountId",
|
||||
"AccountSigner": "MultiSigner",
|
||||
"SpecVersion": "u32",
|
||||
"RelayerId": "AccountId",
|
||||
"SourceAccountId": "AccountId",
|
||||
"ImportedHeader": {
|
||||
"header": "BridgedHeader",
|
||||
"requires_justification": "bool",
|
||||
"is_finalized": "bool",
|
||||
"signal_hash": "Option<BridgedBlockHash>"
|
||||
},
|
||||
"AuthoritySet": {
|
||||
"authorities": "AuthorityList",
|
||||
"set_id": "SetId"
|
||||
},
|
||||
"Id": "[u8; 4]",
|
||||
"ChainId": "Id",
|
||||
"LaneId": "Id",
|
||||
"MessageNonce": "u64",
|
||||
"MessageId": "(Id, u64)",
|
||||
"MessageKey": {
|
||||
"lane_id": "LaneId",
|
||||
"nonce:": "MessageNonce"
|
||||
},
|
||||
"InboundRelayer": "AccountId",
|
||||
"InboundLaneData": {
|
||||
"relayers": "Vec<UnrewardedRelayer>",
|
||||
"last_confirmed_nonce": "MessageNonce"
|
||||
},
|
||||
"UnrewardedRelayer": {
|
||||
"relayer": "RelayerId",
|
||||
"messages": "DeliveredMessages"
|
||||
},
|
||||
"DeliveredMessages": {
|
||||
"begin": "MessageNonce",
|
||||
"end": "MessageNonce",
|
||||
"dispatch_results": "BitVec"
|
||||
},
|
||||
"OutboundLaneData": {
|
||||
"latest_generated_nonce": "MessageNonce",
|
||||
"latest_received_nonce": "MessageNonce",
|
||||
"oldest_unpruned_nonce": "MessageNonce"
|
||||
},
|
||||
"MessageData": {
|
||||
"payload": "MessagePayload",
|
||||
"fee": "Fee"
|
||||
},
|
||||
"MessagePayload": "Vec<u8>",
|
||||
"BridgedOpaqueCall": "Vec<u8>",
|
||||
"OutboundMessageFee": "Fee",
|
||||
"OutboundPayload": {
|
||||
"spec_version": "SpecVersion",
|
||||
"weight": "Weight",
|
||||
"origin": "CallOrigin",
|
||||
"dispatch_fee_payment": "DispatchFeePayment",
|
||||
"call": "BridgedOpaqueCall"
|
||||
},
|
||||
"CallOrigin": {
|
||||
"_enum": {
|
||||
"SourceRoot": "()",
|
||||
"TargetAccount": "(SourceAccountId, MultiSigner, MultiSignature)",
|
||||
"SourceAccount": "SourceAccountId"
|
||||
}
|
||||
},
|
||||
"DispatchFeePayment": {
|
||||
"_enum": {
|
||||
"AtSourceChain": "()",
|
||||
"AtTargetChain": "()"
|
||||
}
|
||||
},
|
||||
"MultiSigner": {
|
||||
"_enum": {
|
||||
"Ed25519": "H256",
|
||||
"Sr25519": "H256",
|
||||
"Ecdsa": "[u8;33]"
|
||||
}
|
||||
},
|
||||
"MessagesProofOf": {
|
||||
"bridged_header_hash": "BridgedBlockHash",
|
||||
"storage_proof": "Vec<StorageProofItem>",
|
||||
"lane": "LaneId",
|
||||
"nonces_start": "MessageNonce",
|
||||
"nonces_end": "MessageNonce"
|
||||
},
|
||||
"StorageProofItem": "Vec<u8>",
|
||||
"MessagesDeliveryProofOf": {
|
||||
"bridged_header_hash": "BridgedBlockHash",
|
||||
"storage_proof": "Vec<StorageProofItem>",
|
||||
"lane": "LaneId"
|
||||
},
|
||||
"UnrewardedRelayersState": {
|
||||
"unrewarded_relayer_entries": "MessageNonce",
|
||||
"messages_in_oldest_entry": "MessageNonce",
|
||||
"total_messages": "MessageNonce"
|
||||
},
|
||||
"AncestryProof": "()",
|
||||
"MessageFeeData": {
|
||||
"lane_id": "LaneId",
|
||||
"payload": "OutboundPayload"
|
||||
},
|
||||
"Precommit": {
|
||||
"target_hash": "BridgedBlockHash",
|
||||
"target_number": "BridgedBlockNumber"
|
||||
},
|
||||
"AuthoritySignature": "[u8;64]",
|
||||
"AuthorityId": "[u8;32]",
|
||||
"SignedPrecommit": {
|
||||
"precommit": "Precommit",
|
||||
"signature": "AuthoritySignature",
|
||||
"id": "AuthorityId"
|
||||
},
|
||||
"Commit": {
|
||||
"target_hash": "BridgedBlockHash",
|
||||
"target_number": "BridgedBlockNumber",
|
||||
"precommits": "Vec<SignedPrecommit>"
|
||||
},
|
||||
"GrandpaJustification": {
|
||||
"round": "u64",
|
||||
"commit": "Commit",
|
||||
"votes_ancestries": "Vec<BridgedHeader>"
|
||||
},
|
||||
"Fee": "WococoBalance",
|
||||
"Balance": "WococoBalance",
|
||||
"Hash": "WococoBlockHash",
|
||||
"BlockHash": "WococoBlockHash",
|
||||
"BlockNumber": "WococoBlockNumber",
|
||||
"BridgedBlockHash": "RococoBlockHash",
|
||||
"BridgedBlockNumber": "RococoBlockNumber",
|
||||
"BridgedHeader": "RococoHeader",
|
||||
"Parameter": {
|
||||
"_enum": {
|
||||
"WococoToRococoConversionRate": "u128"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,22 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
# The script generates JSON type definition files in `./deployment` directory to be used for
|
||||
# JS clients.
|
||||
#
|
||||
# It works by creating definitions for each side of the different bridge pairs we support
|
||||
# (Rialto<>Millau and Rococo<>Wococo at the moment).
|
||||
#
|
||||
# To avoid duplication each bridge pair has a JSON file with common definitions, as well as a
|
||||
# general JSON file with common definitions regardless of the bridge pair. These files are then
|
||||
# merged with chain-specific type definitions.
|
||||
|
||||
set -eux
|
||||
|
||||
# Make sure we are in the right dir.
|
||||
cd $(dirname $(realpath $0))
|
||||
|
||||
# Create types for our supported bridge pairs (Rialto<>Millau, Rococo<>Wococo)
|
||||
jq -s '.[0] * .[1] * .[2]' rialto-millau.json common.json rialto.json > ../types-rialto.json
|
||||
jq -s '.[0] * .[1] * .[2]' rialto-millau.json common.json millau.json > ../types-millau.json
|
||||
jq -s '.[0] * .[1] * .[2]' rococo-wococo.json common.json rococo.json > ../types-rococo.json
|
||||
jq -s '.[0] * .[1] * .[2]' rococo-wococo.json common.json wococo.json > ../types-wococo.json
|
||||
@@ -1,125 +0,0 @@
|
||||
{
|
||||
"--3": "Common types",
|
||||
"Address": "AccountId",
|
||||
"LookupSource": "AccountId",
|
||||
"AccountSigner": "MultiSigner",
|
||||
"SpecVersion": "u32",
|
||||
"RelayerId": "AccountId",
|
||||
"SourceAccountId": "AccountId",
|
||||
"ImportedHeader": {
|
||||
"header": "BridgedHeader",
|
||||
"requires_justification": "bool",
|
||||
"is_finalized": "bool",
|
||||
"signal_hash": "Option<BridgedBlockHash>"
|
||||
},
|
||||
"AuthoritySet": {
|
||||
"authorities": "AuthorityList",
|
||||
"set_id": "SetId"
|
||||
},
|
||||
"Id": "[u8; 4]",
|
||||
"ChainId": "Id",
|
||||
"LaneId": "Id",
|
||||
"MessageNonce": "u64",
|
||||
"MessageId": "(Id, u64)",
|
||||
"MessageKey": {
|
||||
"lane_id": "LaneId",
|
||||
"nonce:": "MessageNonce"
|
||||
},
|
||||
"InboundRelayer": "AccountId",
|
||||
"InboundLaneData": {
|
||||
"relayers": "Vec<UnrewardedRelayer>",
|
||||
"last_confirmed_nonce": "MessageNonce"
|
||||
},
|
||||
"UnrewardedRelayer": {
|
||||
"relayer": "RelayerId",
|
||||
"messages": "DeliveredMessages"
|
||||
},
|
||||
"DeliveredMessages": {
|
||||
"begin": "MessageNonce",
|
||||
"end": "MessageNonce",
|
||||
"dispatch_results": "BitVec"
|
||||
},
|
||||
"OutboundLaneData": {
|
||||
"latest_generated_nonce": "MessageNonce",
|
||||
"latest_received_nonce": "MessageNonce",
|
||||
"oldest_unpruned_nonce": "MessageNonce"
|
||||
},
|
||||
"MessageData": {
|
||||
"payload": "MessagePayload",
|
||||
"fee": "Fee"
|
||||
},
|
||||
"MessagePayload": "Vec<u8>",
|
||||
"BridgedOpaqueCall": "Vec<u8>",
|
||||
"OutboundMessageFee": "Fee",
|
||||
"OutboundPayload": {
|
||||
"spec_version": "SpecVersion",
|
||||
"weight": "Weight",
|
||||
"origin": "CallOrigin",
|
||||
"dispatch_fee_payment": "DispatchFeePayment",
|
||||
"call": "BridgedOpaqueCall"
|
||||
},
|
||||
"CallOrigin": {
|
||||
"_enum": {
|
||||
"SourceRoot": "()",
|
||||
"TargetAccount": "(SourceAccountId, MultiSigner, MultiSignature)",
|
||||
"SourceAccount": "SourceAccountId"
|
||||
}
|
||||
},
|
||||
"DispatchFeePayment": {
|
||||
"_enum": {
|
||||
"AtSourceChain": "()",
|
||||
"AtTargetChain": "()"
|
||||
}
|
||||
},
|
||||
"MultiSigner": {
|
||||
"_enum": {
|
||||
"Ed25519": "H256",
|
||||
"Sr25519": "H256",
|
||||
"Ecdsa": "[u8;33]"
|
||||
}
|
||||
},
|
||||
"MessagesProofOf": {
|
||||
"bridged_header_hash": "BridgedBlockHash",
|
||||
"storage_proof": "Vec<StorageProofItem>",
|
||||
"lane": "LaneId",
|
||||
"nonces_start": "MessageNonce",
|
||||
"nonces_end": "MessageNonce"
|
||||
},
|
||||
"StorageProofItem": "Vec<u8>",
|
||||
"MessagesDeliveryProofOf": {
|
||||
"bridged_header_hash": "BridgedBlockHash",
|
||||
"storage_proof": "Vec<StorageProofItem>",
|
||||
"lane": "LaneId"
|
||||
},
|
||||
"UnrewardedRelayersState": {
|
||||
"unrewarded_relayer_entries": "MessageNonce",
|
||||
"messages_in_oldest_entry": "MessageNonce",
|
||||
"total_messages": "MessageNonce"
|
||||
},
|
||||
"AncestryProof": "()",
|
||||
"MessageFeeData": {
|
||||
"lane_id": "LaneId",
|
||||
"payload": "OutboundPayload"
|
||||
},
|
||||
"Precommit": {
|
||||
"target_hash": "BridgedBlockHash",
|
||||
"target_number": "BridgedBlockNumber"
|
||||
},
|
||||
"AuthoritySignature": "[u8;64]",
|
||||
"AuthorityId": "[u8;32]",
|
||||
"SignedPrecommit": {
|
||||
"precommit": "Precommit",
|
||||
"signature": "AuthoritySignature",
|
||||
"id": "AuthorityId"
|
||||
},
|
||||
"Commit": {
|
||||
"target_hash": "BridgedBlockHash",
|
||||
"target_number": "BridgedBlockNumber",
|
||||
"precommits": "Vec<SignedPrecommit>"
|
||||
},
|
||||
"GrandpaJustification": {
|
||||
"round": "u64",
|
||||
"commit": "Commit",
|
||||
"votes_ancestries": "Vec<BridgedHeader>"
|
||||
}
|
||||
}
|
||||
@@ -1,15 +0,0 @@
|
||||
{
|
||||
"Fee": "MillauBalance",
|
||||
"Balance": "MillauBalance",
|
||||
"Hash": "MillauBlockHash",
|
||||
"BlockHash": "MillauBlockHash",
|
||||
"BlockNumber": "MillauBlockNumber",
|
||||
"BridgedBlockHash": "RialtoBlockHash",
|
||||
"BridgedBlockNumber": "RialtoBlockNumber",
|
||||
"BridgedHeader": "RialtoHeader",
|
||||
"Parameter": {
|
||||
"_enum": {
|
||||
"MillauToRialtoConversionRate": "u128"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,52 +0,0 @@
|
||||
{
|
||||
"--1": "Millau Types",
|
||||
"MillauBalance": "u64",
|
||||
"MillauBlockHash": "H512",
|
||||
"MillauBlockNumber": "u64",
|
||||
"MillauHeader": {
|
||||
"parent_Hash": "MillauBlockHash",
|
||||
"number": "Compact<MillauBlockNumber>",
|
||||
"state_root": "MillauBlockHash",
|
||||
"extrinsics_root": "MillauBlockHash",
|
||||
"digest": "MillauDigest"
|
||||
},
|
||||
"MillauDigest": {
|
||||
"logs": "Vec<MillauDigestItem>"
|
||||
},
|
||||
"MillauDigestItem": {
|
||||
"_enum": {
|
||||
"Other": "Vec<u8>",
|
||||
"AuthoritiesChange": "Vec<AuthorityId>",
|
||||
"ChangesTrieRoot": "MillauBlockHash",
|
||||
"SealV0": "SealV0",
|
||||
"Consensus": "Consensus",
|
||||
"Seal": "Seal",
|
||||
"PreRuntime": "PreRuntime"
|
||||
}
|
||||
},
|
||||
"--2": "Rialto Types",
|
||||
"RialtoBalance": "u128",
|
||||
"RialtoBlockHash": "H256",
|
||||
"RialtoBlockNumber": "u32",
|
||||
"RialtoHeader": {
|
||||
"parent_Hash": "RialtoBlockHash",
|
||||
"number": "Compact<RialtoBlockNumber>",
|
||||
"state_root": "RialtoBlockHash",
|
||||
"extrinsics_root": "RialtoBlockHash",
|
||||
"digest": "RialtoDigest"
|
||||
},
|
||||
"RialtoDigest": {
|
||||
"logs": "Vec<RialtoDigestItem>"
|
||||
},
|
||||
"RialtoDigestItem": {
|
||||
"_enum": {
|
||||
"Other": "Vec<u8>",
|
||||
"AuthoritiesChange": "Vec<AuthorityId>",
|
||||
"ChangesTrieRoot": "RialtoBlockHash",
|
||||
"SealV0": "SealV0",
|
||||
"Consensus": "Consensus",
|
||||
"Seal": "Seal",
|
||||
"PreRuntime": "PreRuntime"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,14 +0,0 @@
|
||||
{
|
||||
"Fee": "RialtoBalance",
|
||||
"Balance": "RialtoBalance",
|
||||
"BlockHash": "RialtoBlockHash",
|
||||
"BlockNumber": "RialtoBlockNumber",
|
||||
"BridgedBlockHash": "MillauBlockHash",
|
||||
"BridgedBlockNumber": "MillauBlockNumber",
|
||||
"BridgedHeader": "MillauHeader",
|
||||
"Parameter": {
|
||||
"_enum": {
|
||||
"RialtoToMillauConversionRate": "u128"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,12 +0,0 @@
|
||||
{
|
||||
"--1": "Rococo Types",
|
||||
"RococoBalance": "u128",
|
||||
"RococoBlockHash": "H256",
|
||||
"RococoBlockNumber": "u32",
|
||||
"RococoHeader": "Header",
|
||||
"--2": "Wococo Types",
|
||||
"WococoBalance": "RococoBalance",
|
||||
"WococoBlockHash": "RococoBlockHash",
|
||||
"WococoBlockNumber": "RococoBlockNumber",
|
||||
"WococoHeader": "RococoHeader"
|
||||
}
|
||||
@@ -1,14 +0,0 @@
|
||||
{
|
||||
"Fee": "RococoBalance",
|
||||
"Balance": "RococoBalance",
|
||||
"BlockHash": "RococoBlockHash",
|
||||
"BlockNumber": "RococoBlockNumber",
|
||||
"BridgedBlockHash": "WococoBlockHash",
|
||||
"BridgedBlockNumber": "WococoBlockNumber",
|
||||
"BridgedHeader": "WococoHeader",
|
||||
"Parameter": {
|
||||
"_enum": {
|
||||
"RococoToWococoConversionRate": "u128"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,15 +0,0 @@
|
||||
{
|
||||
"Fee": "WococoBalance",
|
||||
"Balance": "WococoBalance",
|
||||
"Hash": "WococoBlockHash",
|
||||
"BlockHash": "WococoBlockHash",
|
||||
"BlockNumber": "WococoBlockNumber",
|
||||
"BridgedBlockHash": "RococoBlockHash",
|
||||
"BridgedBlockNumber": "RococoBlockNumber",
|
||||
"BridgedHeader": "RococoHeader",
|
||||
"Parameter": {
|
||||
"_enum": {
|
||||
"WococoToRococoConversionRate": "u128"
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user