mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-04-27 05:47:58 +00:00
132 lines
5.6 KiB
Markdown
132 lines
5.6 KiB
Markdown
# How to send messages
|
|
|
|
The Substrate-to-Substrate relay comes with a command line interface (CLI) which is implemented
|
|
by the `substrate-relay` binary.
|
|
|
|
```
|
|
Substrate-to-Substrate relay
|
|
|
|
USAGE:
|
|
substrate-relay <SUBCOMMAND>
|
|
|
|
FLAGS:
|
|
-h, --help
|
|
Prints help information
|
|
|
|
-V, --version
|
|
Prints version information
|
|
|
|
|
|
SUBCOMMANDS:
|
|
help Prints this message or the help of the given subcommand(s)
|
|
init-bridge Initialize on-chain bridge pallet with current header data
|
|
relay-headers Start headers relay between two chains
|
|
relay-messages Start messages relay between two chains
|
|
send-message Send custom message over the bridge
|
|
```
|
|
The relay related commands `relay-headers` and `relay-messages` are basically continously running a
|
|
sync loop between the `Millau` and `Rialto` chains. The `init-bridge` command submitts initialization
|
|
transactions. An initialization transaction brings an initial header and authorities set from a source
|
|
chain to a target chain. The header synchronization then starts from that header.
|
|
|
|
For sending custom messages over an avialable bridge, the `send-message` command is used.
|
|
|
|
```
|
|
Send custom message over the bridge.
|
|
|
|
Allows interacting with the bridge by sending messages over `Messages` component. The message is being sent to the
|
|
source chain, delivered to the target chain and dispatched there.
|
|
|
|
USAGE:
|
|
substrate-relay send-message <SUBCOMMAND>
|
|
|
|
FLAGS:
|
|
-h, --help Prints help information
|
|
-V, --version Prints version information
|
|
|
|
SUBCOMMANDS:
|
|
help Prints this message or the help of the given subcommand(s)
|
|
millau-to-rialto Submit message to given Millau -> Rialto lane
|
|
rialto-to-millau Submit message to given Rialto -> Millau lane
|
|
|
|
```
|
|
Messages are send from a source chain to a target chain using a so called `message lane`. Message lanes handle
|
|
both, message transport and message dispatch. There is one command for submitting a message to each of the two
|
|
available bridges, namely `millau-to-rialto` and `rialto-to-millau`.
|
|
|
|
Submitting a message requires a number of arguments to be provided. Those arguments are essentially the same
|
|
for both submit message commands, hence only the output for `millau-to-rialto` is shown below.
|
|
|
|
```
|
|
Submit message to given Millau -> Rialto lane
|
|
|
|
USAGE:
|
|
substrate-relay send-message millau-to-rialto [OPTIONS] --lane <lane> --source-host <source-host> --source-port <source-port> --source-signer <source-signer> --origin <origin> --target-signer <target-signer> <SUBCOMMAND>
|
|
|
|
FLAGS:
|
|
-h, --help Prints help information
|
|
-V, --version Prints version information
|
|
|
|
OPTIONS:
|
|
--fee <fee>
|
|
Delivery and dispatch fee. If not passed, determined automatically
|
|
|
|
--lane <lane> Hex-encoded lane id
|
|
--source-host <source-host> Connect to Source node at given host
|
|
--source-port <source-port> Connect to Source node websocket server at given port
|
|
--source-signer <source-signer>
|
|
The SURI of secret key to use when transactions are submitted to the Source node
|
|
|
|
--source-signer-password <source-signer-password>
|
|
The password for the SURI of secret key to use when transactions are submitted to the Source node
|
|
|
|
--origin <origin>
|
|
The origin to use when dispatching the message on the target chain [possible values: Target, Source]
|
|
|
|
--target-signer <target-signer>
|
|
The SURI of secret key to use when transactions are submitted to the Target node
|
|
|
|
--target-signer-password <target-signer-password>
|
|
The password for the SURI of secret key to use when transactions are submitted to the Target node
|
|
|
|
|
|
SUBCOMMANDS:
|
|
help Prints this message or the help of the given subcommand(s)
|
|
remark Make an on-chain remark (comment)
|
|
transfer Transfer the specified `amount` of native tokens to a particular `recipient`
|
|
|
|
```
|
|
As can be seen from the output, there are two types of messages available: `remark` and `transfer`.
|
|
A remark is some opaque message which will be placed on-chain. For basic testing, a remark is
|
|
the easiest to go with.
|
|
|
|
Usage of the arguments is best explained with an example. Below you can see, how a remark
|
|
would look like:
|
|
|
|
```
|
|
substrate-relay send-message millau-to-rialto \
|
|
--source-host=127.0.0.1 \
|
|
--source-port=10946 \
|
|
--source-signer=//Dave \
|
|
--target-signer=//Dave \
|
|
--lane=00000000 \
|
|
--origin Target \
|
|
remark
|
|
```
|
|
Messages are basically regular transactions. That means, they have to be signed. In order
|
|
to send a message, you have to control an account private key on both, the source and
|
|
the target chain. Those accounts are specified using the `--source-signer` and `--target-signer`
|
|
arguments in the example above.
|
|
|
|
Message delivery and dispatch requires a fee to be paid. In the example above, we have not
|
|
specified the `--fee` argument. Hence, the fee will be estimated automatically. Note that
|
|
in order to pay the fee, the message sender account has to have sufficient funds available.
|
|
|
|
The `--origin` argument allows to denote under which authority the message will be dispatched
|
|
on the target chain. Accepted values are `Target` and `Source`.
|
|
|
|
Although not strictly necessary, it is recommended, to use one of the well-known development
|
|
accounts (`Alice`, `Bob`, `Charlie`, `Dave`, `Eve`) for message sending. Those accounts are
|
|
endowed with funds for fee payment. In addtion, the development `Seed URI` syntax
|
|
(like `//Dave`) for the signer can be used, which will remove the need for a password.
|