The Arbiter Signer is used to provide signing services for the bel2 loan arbiter.
Go 1.20 or newer.
use main branch to build:
$ git clone [email protected]:BeL2Labs/Arbiter_Signer.git
$ cd Arbiter_Signer
$ go mod tidy
$ make-
listener: listen to esc arbiter contract event
-
signer: sign request_arbitration_btc_tx and submit to esc arbiter contract
-
network: use mainnet or testnet for btc address generation
-
escStartHeight: listen from this height to get esc arbiter contract event
-
escTransactionManagerContractAddress: esc transaction manager contract address
-
escArbiterManagerContractAddress: esc arbiter manager contract address
-
escConfigManagerContractAddress: esc config manager contract address
-
escArbiterAddress: arbiter wallet address, not operator address
-
dataPath: defines the path to record event file
-
keyFilePath: defines the path of arbiter BTC keystore and ESC keystore
config.yaml example:
# Chain api
chain:
esc: "https://api.elastos.io/esc"
# Arbiter
arbiter:
listener: true,
signer: true,
network: "mainnet"
escStartHeight: 21205821
escTransactionManagerContractAddress: "0xD206be45b53Fa5C2065049c7a70B1aa1755a9475"
escArbiterManagerContractAddress: "0x54eE4fc8951A936b6AA02079B76c497c0471c52A"
escConfigManagerContractAddress: "0x4421c63241A262C423277FFA82C376953072d25f"
escArbiterAddress: "0x0262aB0ED65373cC855C34529fDdeAa0e686D913"
dataPath: "~/loan_arbiter/data"
keyFilePath: "~/loan_arbiter/keys"-
create btcKey escKey and put it into keyFilePath btcKey is used to sign request_arbitration_btc_tx escKey is used to submit arbitration signature to esc arbiter contract, gas fee(esc ELA) is needed
-
Use keystore-generator tool to create keystore files:
Generate BTC keystore:
keystore-generator -c btc -s YOUR_PRIVATE_KEY -p YOUR_PASSWORD -o btcKey
Generate ESC keystore:
keystore-generator -c eth -s YOUR_PRIVATE_KEY -p YOUR_PASSWORD -o escKey
run arbiter
./arbiterrun arbiter with go file
go run app/arbiter/main.goThe automated deployment process can be referenced in the documentation: deploy_loan_arbiter.md
arbiter signer is licensed under the copyfree MIT License.