injectived를 통해 수행할 수 있는 작업을 설명합니다. injectived를 사용하여 스마트 컨트랙트 업로드, 데이터 쿼리, 스테이킹 활동 관리, 거버넌스 제안 작업 등을 통해 Injective 블록체인과 상호 작용할 수 있습니다.
사전 요구 사항
injectived가 설치되었는지 확인
자세한 내용은 injectived 설치를 참조하세요.injectived를 성공적으로 설치했다면 다음 명령을 실행할 수 있어야 합니다:
Docker화된 CLI 사용
Docker에서 실행하는 경우 홈 디렉토리를 컨테이너에 마운트해야 합니다.- docker는
injectivelabs/injective-core:v1.14.1이미지를 실행합니다 injectived는 컨테이너 내에서 CLI를 실행하는 명령입니다keys add는 키를 추가하는 명령입니다my_key는 키의 이름입니다--home /root/.injective는 컨테이너 내부의 CLI 홈 디렉토리입니다-v ~/.injective:/root/.injective는 호스트의~/.injective디렉토리를 컨테이너의/root/.injective디렉토리에 마운트합니다.
/root/.injective/keyring-file 디렉토리에 저장되며, 이는 호스트의 ~/.injective/keyring-file 디렉토리와 동일합니다.
다음을 실행하여 모든 키를 나열할 수 있습니다:
RPC endpoint 사용
Injective 블록체인에 액세스하려면 먼저 노드가 실행 중이어야 합니다. 자체 전체 노드를 실행하거나 다른 사람의 노드에 연결할 수 있습니다. 상태를 쿼리하고 트랜잭션을 보내려면 전체 피어 연결 네트워크에 대한 액세스 포인트인 노드에 연결해야 합니다. 자체 전체 노드를 실행하거나 다른 사람의 노드에 연결할 수 있습니다. 자체 노드 실행은 고급 사용자만을 위한 것입니다. 대부분의 사용자에게는 공개 노드에 연결하는 것이 권장됩니다. RPC endpoint를 설정하려면 다음 명령을 사용할 수 있습니다:테스트넷의 경우에만
https://k8s.testnet.tm.injective.network:443 (chain-id injective-888)을 사용할 수 있습니다일반 도움말
injectived에 대한 더 많은 일반 정보를 보려면 다음을 실행하세요:
injectived 명령에 대한 더 많은 정보를 보려면 명령 뒤에 -h 또는 --help 플래그를 추가하세요. 예:
injectived 클라이언트 구성
injectived의 더 많은 옵션을 구성하려면 ~/.injective/config/ 디렉토리의 config.toml 파일을 편집하세요. keyring-backend가 file로 설정된 경우 Keyring 파일은 ~/.injective/keyring-file 디렉토리에 있습니다. keyring-backend를 test 또는 os로 설정할 수도 있습니다. test의 경우 ~/.injective/keyring-test에 파일로 저장되지만 비밀번호로 보호되지 않습니다.
파일의 모든 옵션은 CLI를 사용하여 설정할 수 있습니다: injectived config set client <option> <value>.
트랜잭션 생성, 서명 및 브로드캐스트
다음 명령을 실행하면 발신자 계정에서 수신자 계정으로 INJ 토큰을 보냅니다.1000inj는 보낼 INJ 토큰의 양이며, 1 INJ = 10^18 inj이므로 1000inj는 매우 작은 양입니다.
- 하나의
Msg(x/bank의MsgSend)가 포함된 트랜잭션을 생성하고 생성된 트랜잭션을 콘솔에 출력합니다. $MY_WALLET계정에서 트랜잭션을 보낼지 사용자에게 확인을 요청합니다.- keyring에서
$MY_WALLET을 가져옵니다. 이전 단계에서 CLI의 keyring을 설정했기 때문에 가능합니다. - keyring의 계정으로 생성된 트랜잭션에 서명합니다.
- 서명된 트랜잭션을 네트워크에 브로드캐스트합니다. CLI가 공개 Injective 노드의 RPC endpoint에 연결하기 때문에 가능합니다.
트랜잭션 (만) 생성하기
트랜잭션을 생성하는 것은tx 명령에 --generate-only 플래그를 추가하여 간단히 수행할 수 있습니다. 예:
> unsigned_tx.json을 추가하여 서명되지 않은 트랜잭션을 파일에 저장할 수도 있습니다(서명자 간에 더 쉽게 전달하기 위해).
사전 생성된 트랜잭션에 서명하기
CLI를 사용하여 트랜잭션에 서명하려면 서명되지 않은 트랜잭션이 파일에 저장되어 있어야 합니다. 서명되지 않은 트랜잭션이 현재 디렉토리의unsigned_tx.json이라는 파일에 있다고 가정합니다(이렇게 하는 방법은 이전 단락 참조). 그런 다음 다음 명령을 실행하기만 하면 됩니다:
MY_WALLET의 키로 SIGN_MODE_DIRECT로 서명합니다. 서명된 트랜잭션이 콘솔에 JSON으로 출력되며, 위와 같이 명령줄에 > signed_tx.json을 추가하여 파일에 저장할 수 있습니다.
tx sign 명령에서 고려해야 할 유용한 플래그:
--sign-mode:amino-json을 사용하여SIGN_MODE_LEGACY_AMINO_JSON으로 트랜잭션에 서명할 수 있습니다.--offline: 오프라인 모드로 서명합니다. 이는tx sign명령이 노드에 연결하여 서명에 필요한 서명자의 계정 번호와 시퀀스를 검색하지 않음을 의미합니다. 이 경우--account-number및--sequence플래그를 수동으로 제공해야 합니다. 이것은 인터넷에 액세스할 수 없는 보안 환경에서 서명하는 오프라인 서명에 유용합니다.
여러 서명자로 서명하기 (Multi Sig)
여러 서명자로 서명하는 것은tx multi-sign 명령으로 수행됩니다. 이 명령은 모든 서명자가 SIGN_MODE_LEGACY_AMINO_JSON을 사용한다고 가정합니다. 흐름은 tx sign 명령 흐름과 유사하지만, 서명되지 않은 트랜잭션 파일에 서명하는 대신 각 서명자가 이전 서명자가 서명한 파일에 서명합니다. tx multi-sign 명령은 기존 트랜잭션에 서명을 추가합니다. 서명자가 GetSigners() 메서드를 사용하여 검색할 수 있는 트랜잭션에 주어진 것과 동일한 순서로 트랜잭션에 서명하는 것이 중요합니다.
예를 들어, unsigned_tx.json으로 시작하고 트랜잭션에 4명의 서명자가 있다고 가정하면 다음을 실행합니다:
트랜잭션 브로드캐스트
트랜잭션 브로드캐스트는 다음 명령을 사용하여 수행됩니다:--broadcast-mode 플래그를 전달하여 노드에서 받을 응답을 지정할 수 있습니다:
block: CLI는 tx가 블록에 포함될 때까지 기다립니다.sync: CLI는 CheckTx 실행 응답만 기다리고, 포함되었는지 확인하려면 수동으로 트랜잭션 결과를 쿼리합니다.async: CLI가 즉시 반환합니다 (트랜잭션이 실패할 수 있음) - 사용하지 마세요.
