injectived를 통해 수행할 수 있는 작업을 설명합니다. injectived를 사용하여 스마트 컨트랙트 업로드, 데이터 쿼리, 스테이킹 활동 관리, 거버넌스 제안 작업 등을 통해 Injective 블록체인과 상호작용할 수 있습니다.
사전 요구 사항
injectived 설치 확인
자세한 정보는 injectived 설치를 참조하세요.injectived를 성공적으로 설치했다면 다음 명령을 실행할 수 있어야 합니다:
Docker화된 CLI 사용
Docker에서 실행할 때는 home dir를 컨테이너에 마운트해야 합니다.- 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:SIGN_MODE_LEGACY_AMINO_JSON으로 트랜잭션에 서명하려면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는 즉시 반환합니다 (트랜잭션이 실패할 수 있음) - 사용하지 마세요.
