반응형

로컬 테스트넷에서 Geth기동을 위해 다음 두가지를 준비한다.

  • 데이터 디렉터리
  • Genesis 파일

데이터 디렉터리에 송수신한 블록 데이터와 계정 정보를 저장한다.
지정하지 않으면 '~/.ethereum'이 데이터 디렉터리가 된다.
디렉터리가 실행에는 무방하다.

다음과 같이 'test_data' 폴더를 만든다.
cmd(명령 프롬프트)를 이용하여 실행해본다.
cmd는 관리자의 권한으로 실행한다.

help를 입력하면 간단하게 명령어를 볼 수 있습니다.

그냥 윈도우 상에서 폴더를 만들어봐도 되지만 cmd 창에서 명령어로 만들어 보겠습니다.
바탕화면으로 이동 후
보시는 바와 같이 'mkdir'명령어로 폴더를 생성 후 만든 폴더로 이동한다.

'copy con' 명령어를 이용해 genesis.json 파일을 만든다.
genesis 블록(0번째)의 정보가 저장된 json형식의 파일이다.
메모장에 미리 만들어 놓은 내용을 복사 후 컨트롤+Z 키 누르고 엔터를 누른다.
(참고로 붙혀넣기는 마우스 오른쪽 버튼)

{
“nonce”: “0x0000000000000042”,
“mixhash”: “0x0000000000000000000000000000000000000000000000000000000000000000”,
“difficulty”: “0x400”,
“alloc”: {},
“coinbase”: “0x0000000000000000000000000000000000000000”,
“timestamp”: “0x0”,
“parentHash”: “0x0000000000000000000000000000000000000000000000000000000000000000”,
“extraData”: “0x”,
“gasLimit”: “0xffffffff”,
“config”: {
“chainId”: 4224,
“homesteadBlock”: 0,
“eip155Block”: 0,
“eip158Block”: 0
}
}

'type genesis.json' 명령어를 통해 내용이 잘 들어간 것을 확인할 수 있다.
테스트넷을 구축할 경우 0부터 블록체인을 만들어 가므로 Genesis파일이 필요하다.

위와 같이 다 준비되었다면 이제 초기화를 해보자!

생성한 디렉토리 내에서 초기화를 아래와 같이 해준다.

geth --datadir C:\Users\Ian\Desktop\test_data init C:\Users\Ian\Desktop\test_data\genesis.json
경로는 컴퓨터마다 환경에 맞게 하시길

tree 명령어를 통해 geth 폴더 내에 chaindata, lightchaindata 와 keystore가 생성된 것을 확인할 수 있다.

초기화가 완료되면 Geth를 실행해보도록 한다.

geth --networkid 5959 --nodiscover --maxpeers 0 --datadir C:\Users\Ian\Desktop\test_data console 2>> C:\Users\Ian\Desktop\test_data\geth.log

  • networkid 5959
    0~3은 예약된 숫자라 그 밖의 정수 5959를 입력해 보았습니다.
    0 = Olympic(disused), 1 = Frontier, 2 = Morden(disused), 3 = Ropsten) (default : 1)

  • nodiscover
    생성자의 노드를 다른 노드에서 검색할 수 없게하는 옵션입니다.
    노드추가는 수동으로 해주고요, 지정하지 않으면 동일한 블록체인 네트워크 생성자와 연결될 가능성이 있습니다.

  • maxpeers 0
    생성자의 노드에 연결할 수 있는 노드의 수를 지정합니다.

  • datadir 주소
    데이터 디렉터리 지정입니다. 지정하지 않으면 기본 디렉터리를 사용해요.
    환경에 맞게 지정하시면 됩니다.

  • console
    콘솔을 가동합니다.

C:\Users\Ian\Desktop\test_data\geth.log
로그 파일 만들 때 사용하는 옵션입니다. 에러를 해당 경로 파일에 저장합니다.

Geth 콘솔에 다음 명령어를 실행하여 EOA를 만듭니다.

personal.newAccount("hiyo0")
명령어를 입력하여 계정을 생성합니다.
"hiyo0"은 암호입니다. 실제 환경에서는 보안을 고려해 적절하게 설정합니다.

이더리움에는 EOA(Externally Owned Account)와 Contract
두 종류의 계정이 있습니다.

EOA는 일반 사용자 계정으로 비밀키로 관리 되고
Ether를 송급하거나 계약을 실행할 수 있습니다.

Contract 계정은 계약용 계정으로 블록체인에 배포할 때
만들어지는 계정으로 블록체인에 존재합니다.

오늘은 테스트 네트워크에서 Geth를 실행하고 계정을 간단하게 만들어 봤습니다.
감사합니다~

반응형

'IT > Block Chain' 카테고리의 다른 글

[Ethereum] Windows10 환경에서 Geth 설치  (0) 2018.06.04
반응형

https://geth.ethereum.org/downloads/
해당 주소에서 Geth Windows 버전을 다운로드 받습니다.


다운로드가 완료되면 설치를 진행합니다.

설치가 완료되면 시작 메뉴에 추가된 것을 볼 수가 있습니다.

이더리움 테스트 네트워크 Geth 실행 및 계좌 생성해보기

반응형
반응형

변수에는 두 가지 종류가 있다.


자동변수

정적변수


자동변수는 필요할 때 만들었다가 필요가 없으면 다시 사라집니다.

정적변수는 프로그램을 실행해서 끝날 때까지 계속해서 메모리상에 존재합니다.


자동변수를 오토(Auto) 변수, 정적변수를 스태틱(Static) 변수라고도 해요.


정적변수는 메모리 값이 0으로 초기화 되어 있지만,

자동변수는 메모리 값이 정해져있지 않고 초기화 되어 있지 않습니다.

그래서 사용하기 전에 초기화를 해줘야 해요.


왜 그럴까요?


그 이유는 메모리 영역(세그먼트)가 다르기 때문이에요.


자동변수는 스택 세그먼트에 생성이 됩니다.

스택은 선형구조로 되어 있고 LIFO(Last In First Out)로 되어 있어요.

그렇기 때문에 가장 최근에 입력한 자료부터 출력하죠.

프로그램이 실행되는 동안에 생성되거나 삭제되기 때문에 명시적으로 초기화 하지

않는 이상 초기화 되지 않습니다. 초기화 여부는 개발자에게 달려있고,

초기화를 하지 않을 때는 속도면에서 좋습니다.


정적변수는 데이터 세그먼트에 생성이 돼요. 프로그램을 실행하기 전부터 

생성되어 있고, C소스를 컴파일 및 어셉블한 후에 만들어진 오브젝트 프로그램 안에

존재하죠. 그리고 프로그램이 실행되어 끝날 때까지 계속해서 메모리상에 존재합니다.

개발자가 지정한 값이 아닌 경우는 0으로 초기화 되어 있습니다.


상황에 맞게 쓰면 되겠습니다~


[참고] 도서, C를 배우기 전에 반드시 알아야 할 것들 (루비페이퍼 저 무라야마 유키오 옮김 이해란)

반응형

'IT > C' 카테고리의 다른 글

[C] 프로세스와 스레드(Process&Thread)  (0) 2018.06.19

+ Recent posts