Skip to content

Latest commit

 

History

History
92 lines (53 loc) · 1.87 KB

게스로 컴파일하고 통신하기.md

File metadata and controls

92 lines (53 loc) · 1.87 KB

게스로 컴파일 하고 통신하기

레퍼지토리 만들고 나서

sudo apt-get update
sudo apt-get install solc

solc --version
which solc

게스 1.5를 실행함

admin.setSolc('which solc 나온 경로 여기에')
eth.getCompilers()

코드 개행 없애기

HelloWorld.sol의 개행을 없애보자

cat HelloWorld.sol | tr -d '\n' > HelloWorldExcept.sol

컴파일하기

sourceCompiled = eth.compile.solidity("source 개행을 없앤 코드를 복붙")

/// ABI만들기
contractAbiDefinition = sourceCompiled['<stdin>:HelloWorld'].info.abiDefinition
helloContract = eth.contract(contractAbiDefinition)
--> 컨트랙트에 대한 정보가 만들어짐

/// 계정 언락하기, 마이닝 시작

/// 생성자에 인자 넣고 배포하기
contract = helloContract.new("hi!!", {from : eth.accounts[0], data:sourceCompiled['<stdin>:HelloWorld'].code, gas:30000000})

/// 팬딩확인
eth.pendingTransactions

/// 배포확인
contract.say.call() // result : "hi!!"

게스에서 함수 호출하기

contract.컨트랙트내부함수이름.sendTransaction('부를함수의 Parameter', {from:eth.accounts[실행계정], gas:30000000})

게스 소유 계정 unlock 하기

geth15 --networkid (기입) --각종 옵션 --unlock 0,1,2 --password 경로/password console 2>> 경로/geth.log

/// unlock 확인하기
personal.listWallets

게스에서 통신하기

2개 이상의 게스 콘솔을 띄우고 한쪽에서 admin.nodeInfo 로 enode "안에있는 정보 복사"

다른 게스 콘솔에서 admin.addPeer("안에있는 정보 복사한거 붙여넣기") -> true값 반환

/// 몇개의 피어가 붙엇는지 확인하기
net.peerCount

/// 피어의 정보 확인하기 - 여기서 id에 붙은 이노드의 정보가 나온다.
admin.peers

이후 블록넘버도 동일하다.