This server is using Gnosis Chain Configuration and Shutter Network Mempool encryption to protect your transactions against MEV.
To deploy and use for requests other than eth_sendRawTransaction
- Ganache >= 7.0.0
- Foundry >= 0.2.0
To start and build the server:
- Docker
- First you need to use below command to get submodules:
git submodule update --init
- Start a ganache server by:
ganache -b 5 -t 2021-12-08T20:55:40 --wallet.mnemonic brownie
- Deploy contracts in /src folder by using:
make compile-contracts && make deploy
- Build the container image:
docker build . -t encrypting-rpc-server
- Run the server:
docker run -p 8546:8546 encrypting-rpc-server --signing-key bbfbee4961061d506ffbb11dfea64eba16355cbf1d9c29613126ba7fec0aed5d --key-broadcast-contract-address {KEY_BROADCAST_CONTRACT_ADDRESS} --sequencer-address {SEQUENCER_CONTRACT_ADDRESS} --keyper-set-manager-address {KEYPER_SET_MANAGER_CONTRACT_ADDRESS} --rpc-url http://host.docker.internal:8545
Contract addresses can be obtained from gnosh-contracts/broadcast/deploy.s.sol/1337/run-latest.json
. There are CREATE
transactionType
and select contractName
as what you need then you have the contractAddress
.
There are other options you can use like:
rpc-url
: RPC URL from alchemy/infura or other providers. Default: http://localhost:8545http-listen-address
: Which address this server runs. Default: :8546keyper-set-change-look-ahead
: How much ahead your transactions should be revealed.- For running the server with prometheus metrics enabled, use
metrics-port
,metrics-host
andmetrics-port
wait-mined-interval
can be used to update the time delay for inclusion checks.dbUrl
it is the url of postgres database, to record transactions and encrypted transactions.