겉바속촉

[Ethereum] ethereum 시작하기 본문

IT일기(하반기)/ETHEREUM

[Ethereum] ethereum 시작하기

겉바속촉 2020. 7. 29. 16:22
728x90
반응형

geth 를 먼저 설치해주세요:)

 

https://geth.ethereum.org/downloads/

 

Downloads | Go Ethereum

Retrieving packages from release server...

geth.ethereum.org

 

 

파일 탐색기

 

 

클릭하고 나면 다음과 같이 뜹니다

그러면 이제 따로 선택하는 것 없이

디폴트 값 그대로 계속 설치 진행해주세요:)

 

 

 

 

 

 


 

다음은 블록 헤더 항목 몇 가지를 가지고 왔어요

각각 무슨 뜻을 설명하는 지 알아주세요:)

 

블록 헤더 항목 설명
config 제네시스 블록의 설정값
chainId 블록체인 식별하는 정수값 (반드시 설정해주어야)
homesteadBlock 홈스테드를 적용하는 하드 포크 블록 번호 의미
(제네시스 블록 = 0이라고 설정)

 

메모장에다가 다음 코드를 넣어 주신 후에 하고 이름을 genesis.json 으로 설정

 

{
  "config": {
        "chainId": 4777,
        "homesteadBlock": 0,
        "eip150Block": 0,
        "eip155Block": 0,
        "eip158Block": 0
    },
  "alloc"      : {},
  "difficulty" : "0x400",
  "extraData"  : "",
  "gasLimit"   : "0x7A1200",
  "parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
  "timestamp"  : "0x00"
}

 

 

 

C드라이브 -> temp -> geth -> private_net -> genesis.json 저장 !!!

 

 

 

 

cmd창을 열어주세요

다음과 같이 경로를 넣어주세요:)

 

cd c:\temp\geth\private_net

 

 

그리고 다음 코드 입력!

 

geth --datadir C:\TEMP\geth\private_net init C:\TEMP\geth\private_net\genesis.json

 

 

 

다음 코드 입력

 

geth --networkid "10" --nodiscover --datadir C:\TEMP\geth\private_net --rpc --rpcaddr "localhost" --rpcport "8545" --rpccorsdomain "*" --rpcapi "eth,net,web3,personal" --targetgaslimit "20000000" console 2>> C:\TEMP\geth\private_net\error.log 

 

 

 

 

그리고 계정 3개 생성

 

personal.newAcooun("1234")

 

 

 

 

 

그리고 파일탐색기에서 keystore 폴더로 가면 생성되어 있는 것이 보입니다

 

 

 


 

 

이제 1234 를 메모장에 입력해주세요

아까 3개의 계정을 생성했기 때문에 다음과 같이 해주시면 되겠쥬

그리고 pw라고 저장해주세요:)

다음 표시한 경로에다가요

 

 

 

 

 

자 이제 다음 코드를 넣어 주시는 데요

다음 코드는 예시이기 때문에 우리가 나온 계정을 복붙해주셔야 합니다:)

 

geth --networkid "10" --nodiscover --datadir C:\TEMP\geth\private_net --rpc --rpcaddr 
"localhost" --rpcport "8545" --rpccorsdomain "*" --rpcapi "eth,net,web3,personal" 
--targetgaslimit "20000000" console 2>> C:\TEMP\geth\private_net\error.log 
--allow-insecure-unlock "0xb3762c4cd92afeb839dbcc10c1f0a66b6bfcec40", 
"0x9dde7902c33621e8bb5c47b849d825ef5c65adb7",
"0xcc9508ecfe27def4f0effc7be935b82a84acdfaa" 
--password C:\TEMP\geth\private_net\pw.txt 

 

 

 

 

 

그리고 계정 복붙해서 넣은 메모장 내용을

그대로 복사해서 cmd 창에 이어서 붙여넣기

 

 

 

이제 생성된 계정을 모두 보여달라고 해볼게요:)

그러면 배열 형태로 보입니다

[0,1,2] ---> 요런 형식이쥬

 

eth.accounts

 

 

 

 

 

이제 코인베이스를 보고 나서

 

eth.coinbase

 

 

 

 

miner.start(1)

 

 

 

 

eth.mining

 

 

 

 

 

채굴을 진행 중이기 때문에 계속 생기는 중입니다:)

 

eth.getBalance(eth.accounts[0])

 

 

 

 

 

이제 wei -> ether로 단위를 변환

 

web3.fromWei(eth.getBalance(eth.accounts[0]."ether")

 

 

 

 

 

첫번째 계정 unlock

 

web3.personal.unlockAccount(eth.accounts[0],'1234',60*60*24)

 

 

 

 

 

세번째 계정 unlock

 

web3.personal.unlockAccount(eth.accounts[2],'1234',60*60*24)

 

 

 

 

 

첫번째 계정에서 세번째 계정으로 5wei만큼 transaction을 보냄 

 

eth.sendTransaction({from:eth.accounts[0], to:eth.accounts[2], value:web3.toWei(5,"ether")})

 

(==> 이렇게 하고 나면 거래번호가 나옵니다. 즉 거래번호의 해쉬값이쥬)

 

 

 

 

세번째 계정 잔액을 확인해봅시다

 

web3.fromWei(eth.getBalance(eth.accounts[2]),"ether")

그러면 5ether를 보냈기 때문에 5ether가 확인됩니다

 

(==> 5이더가 확인됨)



 

 

이제 영수증을 확인해볼게요

아까 나온 해쉬값을 넣어서 출력해주면 됩니다:)

 

eth.getTransactionReceipt( "0x95ed5f734d645b70c235c466a1b86f54fa402d9e5ebe8e9f767792953ccf463c")

 

(==>영수증 출력)

 

 

728x90
반응형