그레비티 브릿지(Gravity Bridge)를 사용하려면 검증인은 umeed 프로세스 외에 오케스트레이터(Orchestrator)를 추가적으로 실행해야 합니다. 오케스트레이터의 운용 필요 조건은 geth 노드의 RPC 인스턴스입니다. geth 라이트 클라이언트로 사용할 수 있으나 풀노드가 선호됩니다.
자체 geth 노드를 실행하거나 공개적으로 사용 가능한 노드를 이용할 수 있습니다. 그러나 프로덕션 환경에서는 자체적으로 여러분의 geth 노드를 설치하는 것이 좋습니다. 우미 검증인을 실행하는 네트워크 환경에 따라 적절한 이더리움 네트워크의 geth 노드를 설치해야 될 것입니다. 서로 다른 이더리움 네트워크에 연결하기 위한 자세한 정보는 geth CLI 문서를 참조해주십시오.
geth 노드를 설치하기 위해서는 go-ethereum의 다운로드 페이지로 가셔서 바이너리를 가장 먼저 설치해주십시오. 그런 다음 systemd를 생성하십시오.
검증인은 오케스트레이터(gorc)로 알려진 그레비티 브릿지의 중요 컴포넌트를 필수적으로 운영해야 합니다. 오케스트레이터는 다양한 용도로 사용되지만 주로 우미 네트워크와 이더리움 간의 오프체인 중계자 및 오라클 역할을 합니다.
오케스트레이터를 성공적으로 실행하려면 몇 가지 구성 요소가 필요합니다.
우미 gRPC 인스턴
이더리 RPC 인스턴스
Umee에 트랜잭션을 릴레이 하기 위한 자금이 담긴 우미 체인의 서명 키
이더리움에 트랜잭션을 릴레이 하기 위한 자금이 담긴 이더리움 체인의 서명 키
우미 네트워크는 그래비티 브릿지의 PeggyJV 버전을 사용합니다. 릴리스 페이지를 방문하여 해당 버전의 gorc를 다운로드 하십시오. gorc는 현재 Linux용으로만 빌드되어 있으므로, 다른 OS 또는 지원되지 않는 아키텍처를 사용하는 경우 소스에서 gorc를 빌드해야 할 수 있습니다.
이미 umeed 및 geth 인스턴스가 실행 중이라고 가정하고 다음으로 그래비티 브릿지 오케스트레이터를 구성합시다.
# Create the configuration directory for the orchestrator$mkdir $HOME/gorc&&cd $HOME/gorc$vimconfig.toml
$HOME/gorc/config.toml
keystore="<$HOME>/gorc/keystore/"[gravity]contract="<gravity-contract-address>"fees_denom="uumee"[ethereum]key_derivation_path="m/44'/60'/0'/0/0"rpc="http://localhost:8545"gas_price_multiplier=1.0[cosmos]key_derivation_path="m/44'/118'/0'/0/0"grpc="http://localhost:9090"prefix="umee"# For networks with a large validator set size, you might# have to adjust the following configurations:## gas_limit = 500000# msg_batch_size = 5[cosmos.gas_price]amount=0.00001denom="uumee"[metrics]listen_addr="127.0.0.1:3000"
인스턴스가 로컬에서 실행되지 않는 경우 우 gRPC 및 이더리움 RPC 엔드포인트 올바른 값으로 바꿉니다.
The Gravity Bridge contract must be deployed prior to configuring and starting the orchestrator process. Please see the Umee repository for more information.
오케스트레이터 프로세스를 구성하고 시작하기 전에 그래비티 브릿지 컨트랙트를 배포해야 합니다. 자세한 내용은 Umee 레포지토를 참조하십시오.
다음으로 두 개의 서명 키를 gorc 키 스토어에 임포트 해야 합니다.
# Import the Umee signing key via the mnemonic# Note, this is the mnumonic from an Umee account, e.g. umee1...$gorc--config $HOME/gorc/config.tomlkeyscosmosrecover<orch-umee-key-name>"<mnemonic>"# Import the Ethereum signing key via the mnemonic$gorc--config $HOME/gorc/config.tomlkeysethrecover<orch-eth-key-name>"<mnemonic>"# Or, import the Ethereum signing key via the private key$gorc--config $HOME/gorc/config.tomlkeysethimport<orch-eth-key-name>"0x..."
umeed와 geth가 실행되면 MsgCreateValidator 트랜잭션을 통해 Umee 네트워크에서 최종적으로 검증인을 생성할 수 있습니다.
# Validator's consensus public key# e.g. {"@type":"/cosmos.crypto.ed25519.PubKey","key":"..."}$UMEE_VAL_CONS_KEY=$(umeedtendermintshow-validator)$umeedtxstakingcreate-validator \--amount=<amount> \--pubkey=$UMEE_VAL_CONS_KEY \--moniker="<moniker>" \--chain-id="<chain-id>" \--commission-rate="<commission>" \--commission-max-rate="<max-commission>" \--commission-max-change-rate="<max-commission-rate-change>" \--min-self-delegation="<min-self-delegation>" \--fees=<fees> \--from=<val-oper-key-name>
접속하는 네트워크와 동일한 chain-id를 반드시 사용해야 합니다. keyval-oper-key-name 키는 사전에 생성된 검증인 오퍼레이터 키에 해당됩니다.
마지막으로, MsgDelegateKeys 트랜잭션을 통해 그래비티 블릿지 내에서 검증인의 "위임자 키(delegate keys)"를 반드시 등록해야 합니다. 이 작업을 통해 검증인은 오케스트레이터의 우미 및 이더리움 주소를 검증인의 오퍼레이터 주소와 관련 짓거나 "연결"할 수 있습니다.
# Validator's operator address$VAL_ADDR=$(umeedkeysshow<val-oper-key-name>--bechval-a)# Orchestrator's Umee key$GORC_UMEE_KEY=$(umeedkeysshow<orch-umee-key-name>-a)# Orchestrator's Ethereum key$GORC_ETH_KEY=$(gorc--config $HOME/gorc/config.tomlkeysethshow<orch-eth-key-name>)# Generate an Ethereum signature over the delegate keys message$GORC_ETH_SIG=$(gorc--config $HOME/gorc/config.tomlsign-delegate-keys-a<orch-eth-key-name> $VAL_ADDR)$umeedtxgravityset-delegate-keys $VAL_ADDR $GORC_UMEE_KEY $GORC_ETH_KEY $GORC_ETH_SIG \--chain-id="<chain-id>" \--from=<val-oper-key-name> \--fees=<fees>
현재 set-delegate-keys 명령어 렛저 하드웨어 서명을 지원하지 않습니다.
MsgCreateValidator 및 MsgDelegateKeys 트랜잭션이 모두 우미 네트워크에 커밋되었음을 확인했으면 마침내 gorc 오케스트레이터를 시작할 수 있습니다.