이더리움 솔리디티 geth 사설서버 가동하기 .json파일
geth에서는 공용 이더리움 블록체인 서버는 물론이고, 개발자들을 위한 이더(요금, 가스)가 들지 않는 환경인 사설 이더리움 네트워크를 가동할 수 있도록 제공하고 있습니다.
원래는 DApp배포시 일정 현금을 내야하지만, 올리기 이전에 사설 네트워크에서 여러가지 테스팅을 진행해본 뒤에 올릴 수 있습니다. 그래서 이번 글에서는 사설 네트워크를 어떻게 구축하는지 알아보겠습니다.
사설 네트워크를 만들어 주기위해서는 genesis block 즉 가장 상위 블록을 먼저 만들어 주어야합니다. 최초블록이라고도 하는데 당연히 최초블록이 있어야 다음 블록들이 연결되면서 이어지게될 수 있겠죠. 그리고 최초이기 때문에 prev(이전)블록은 존재하지 않습니다. 이러한 특징으로 .json파일을 작성해주시면됩니다.
위에 보이시는 사진 처럼 작성을 해주시면되고, 옵션에 대해서 조금 알아보도록 하겠습니다.
config : 사설 네트워크시 위와 동일하게 입력하면됩니다. (이더리움 문제로인해 하드포크되며 생겼습니다.)
nonce : 작업 증명에 사용되는 녀석입니다. (클 수록 연산을위해 많은 시간을 들였다고 생각해도됩니다.)
timestamp : 간단히 블록이 생성된 시점이라고 기억하세요.
parentHash : 부모 블록의 해시입니다. (해시 생성의 자세한 과정은 블록체인 기초개념을 공부하세요.)
extraData : 임시 저장공간으로 아직 사용되지 않습니다.
gasLimit : 하나의 블록이 보관할 수 있는 gas의 제한량입니다. 커질 수록 거래 속도가 빨라집니다.
difficulty : 난이도이며 값이 크게 될 수록 난이도는 어려워집니다.
mixhash : nonce와 마찬가지로 연산을 얼마나 많이했는가 가늠할 수 있습니다.
coinbase : 이 블록에 대해서 채굴이 성공하면 주어지는 보상입니다.
alloc : 계좌를 미리 할당할 수 있는 옵션입니다.
.json파일을 저장했다면 cmd창에서 위와 같은 명령을 통해서 초기화(init)를 진행해주고, 위에서 밑에 부분 코드를 cmd에 입력하여 서버를 가동시킬 수 있습니다.
[네트워크 환경 설정 옵션]
--identity : 다른 이더리움 네트워크와 구분하기 위한 식별자입니다.
--nodeiscovery : 이더 네트워크의 노드는 다른 노드를 지속적으로 찾으려하는데 그 옵션을 꺼준다.
--maxpeers 0 : 0으로설정시 어떠한 노드도 접속불가.
--rpc : 해당 이더리움 노드에 접근할 수 있는 RPC 인터페이스 활성화합니다.
--rpcapi "db,eth,web3,miner" : RPC인터페이스를 통해서 어떤 API를 쓸지 정의.
--rpcaddr : RPC인터페이스를 통해 접근을 허용할 IP주소를 설정. 0.0.0.0인경우 모든 내부 네트워크 IP가 접근가능합니다.
--rpcport "8765" : RPC인터페이스에 접근하기 위한 포트를 정의합니다.
--rpccorsdomain "*" : 특정 주소를 가진 RPC클라이언트만 접근가능하게 한다. 우리는 DApp을 시험개발 해보는 것이기 때문에 와일드 카드를 사용한다.
--datadir "[path]" : 사설 네트워크의 블록데이터들이 저장될 폴더를 지정한다.
--port "10101" : 이더리움 네트워크의 노드들이 수동으로 사설 네트워크에 접속하기 위한 포트 정의 합니다.
--mine : 이더리움 채굴을 활성화합니다.
이렇게해서 간단하게 이더리움 geth를 통한 사설 네트워크 개설(json 파일작성법)에 대해 알아보았습니다.
솔리디티(solidity) - overflow,underflow 방지 SafeMath Library
'Ethereum Solidity' 카테고리의 다른 글
비쥬얼스튜디오(visual studio)로 이더리움 솔리디티(sol) 코드 개발하기 (0) | 2018.07.02 |
---|---|
솔리디티(solidity) - overflow,underflow 방지 SafeMath Library (0) | 2018.06.22 |
이더리움(Ethereum) - ERC20 토큰, ERC721 표준 (다중상속) (0) | 2018.06.21 |
솔리디티(solidity) - 난수 랜덤 생성(keccak256, random) (0) | 2018.06.20 |
솔리디티(solidity) - payable (0) | 2018.06.19 |