erigon-pulse/cmd/sentry
racytech 42e8db3958
eip-4844: modified DecodeTransaction version 1 (#7442)
Blob transactions are SSZ encoded, so it had to be added to decoding.
There are 2 encoding forms: `network` and `minimal` (usual). Network
encoded blob transactions include "wrapper data" which are `kzgs`,
`blobs` and `proofs`, and decoded by `DecodeWrappedTransaction`. For
previous types of transactions the network encoding is no different.
Execution-payloads / blocks use the minimal encoding of transactions. In
the transaction-pool and local transaction-journal the network encoding
is used.

Concerns: 
1. Possible performance reduction caused by these changes, not sure if
streams are better then slices. Go slices in this modifications are
read-only, so they should be referred to the same underlying array and
passed by a reference.
2. If `DecodeWrappedTransaction` and `DecodeTransaction` will create
confusion and should be merged into one function.
2023-05-09 18:44:53 +01:00
..
sentry eip-4844: modified DecodeTransaction version 1 (#7442) 2023-05-09 18:44:53 +01:00
main.go [Devnet tool] Side-quest to improve logging - part 1 (#7445) 2023-05-07 07:28:15 +01:00
README.md Sentry doc (#5040) 2022-08-13 21:37:51 +07:00

Sentry - component to

In the root of Erigon project, use this command to build the sentry:

make sentry

There are two modes in which the program can be run - with external p2p sentry, or with internal p2p sentry (also called combined). Ethereum mainnet configuration is currently hard-coded.

Running with an external p2p sentry

./buid/bin/sentry
./buid/bin/sentry --datadir=<sentry_datadir>

The command above specifies --datadir option - directory where the database files will be written (it doesn't need access to Erion's datadir). These two options will need to be specified regardless of the mode the program is run. This specific command above assumes and external p2p sentry running on the same computer listening to the port 9091. In order to use a p2p sentry on a different computer, or a different port (or both), the option --sentry.api.addr can be used. For example:

./buid/bin/sentry --datadir=<sentry1_datadir> --sentry.api.addr=localhost:9091
./buid/bin/sentry --datadir=<sentry2_datadir> --sentry.api.addr=localhost:9191
./build/bin/erigon --sentry.api.addr="localhost:9091,localhost:9191"

The command above will expect the p2p sentry running on the same computer, but on the port 9091

Options --nat, --port, --staticpeers, --netrestrict, --discovery are also available.

We are currently testing against two implementations of the p2p sentry - one internal to Erigon, and another - written in Rust as a part of rust-ethereum: https://github.com/rust-ethereum/sentry In order to run the internal sentry, use the following command: