geth : 이더리움 CLI 클라이언트 프로그램. 이 프로그램을 이용해서 이더리움의 주요 네트워크(main-, test-, private-네트워크)에 접속 할 수 있다.
abigen : 이더리움의 contract 정의를 (사용하고 이해하기 쉬운) Go 패키지로 변환하는 소스코드 생성기다. 이더리움 contract ABIs에서도 작동을 하지만 그냥 Solidity 코드를 사용하는 추세다.
bootnode : 가벼운 부트스트랩 노드로 사설 네트워크에서 피어를 찾는데 사용한다.
evm : EVM(Ethereum Virtual Machine)의 개발자 유틸리티다. 코드의 실행 및 디버깅을 할 수 있다.
swarm : 스웜네트워크에 진입 할 수 있다.
puppeth : 이더리움 네트워크를 만들기 위한 CLI 툴
geth
이더리움 네트워크에 진입하기 위한 핵심 애플리케이션이다. JSON-RPC 서버와 대화형 콘솔(interactive console) 인터페이스를 사용 할 수 있다. geth console 명령을 이용해서 콘솔모드로 진입한다. geth가 시작되면 ">" 프롬프트가 뜬다. 프롬프트에서 exit를 입력하고 엔터키를 누르면 콘솔을 빠져나갈 수 있다.
$ geth console
그런데, 이렇게 실행을 하면 온갖 에러 메시지(디버깅 메시지에 가깝다) 때문에 작업이 불가능 하다. 표준에러를 따로 파일로 보내버리자.
chaindata : 블럭체인 데이터가 쌓인다. 만약 아무 옵션 없이 콘솔모드에 진입했다면 모든 블럭체인 데이터를 저장하려 할 것이다. (2017년 8월 현재) 100G 이상의 데이터가 쌓인다고 한다. --fast명령으로 크게 줄일 수 있다.
ethash : Ethash 는 DAG(Dagger Hashimoto)라고 하는 노력증명(PoW)시스템에서 사용한다. 약 1GB 정도의 데이터가 필요하다.
keystore : 어카운트 정보는 keystore디렉토리에 저장된다.
네트워크 연결
geth 콘솔을 실행하면 네트워크에 연결이 된다. 몇 가지 명령들을 이용해서 네트워크 상태를 검사할 수 있다.
> net.listening
true
> net.peerCount
20
>
P2P 네트워크에 연결됐으며, 20개의 peer node를 확인했다. admin 어브젝트가 제공하는 peers() 함수를 이용하면, 각 피어에 대한 상세 정보를 얻을 수 있다.
go-ethereum
설치
- go1.8.1
- 우분투리눅스 17.04
리눅스에서 설치는 간단하다.geth
네트워크 연결
> admin.peers [{ caps: ["eth/62", "eth/63", "par/1", "par/2"], id: "1c2667c69e95fe28c05cd781f30890fe844f45d21925f1288fb4f2c426cbee3f8349309dd6656e4d68e2e9ee9023ef407ad0673df24ab1442432b5a3a03e8ded", name: "Parity/v1.6.8-beta-c396229-20170608/x86_64-linux-gnu/rustc1.17.0", network: { localAddress: "192.168.35.215:30303", remoteAddress: "40.71.26.108:53642" }, protocols: { eth: { difficulty: 710532293327912000000, head: "0x12a57d58b878e5a44469c11e8d46659a07f6375e703d6b83682a1fddc784c6da", version: 63 } } }, { caps: ["eth/62", "eth/63", "par/1", "par/2"], id: "1f1c1bf6a600f72296043d87f7211053cd4e0fab9add232c5ad02917bdf4991588010ccf75c0792c8477663b6e5e235089272a03926febd63acd8962b47b1ab4", name: "Parity/v1.6.6-beta-8c6e3f3-20170411/x86_64-linux-gnu/rustc1.16.0", network: { localAddress: "192.168.35.215:30303", remoteAddress: "103.73.206.19:27254" }, protocols: { eth: { difficulty: 710553530446838400000, head: "0x8234c7f6c3f6082ccfed7e5b7717280aa3ce71637e18452509df18a72623d15e", version: 63 } } }, {Recent Posts
Archive Posts
Tags