重眀殿
Geth script 사용 방법 본문
geth를 사용하다보면 여러가지 상황상 명령어를 직접 만들 필요가 있다.
특히 geth 에서 제공해주는 eth. 문장은 여러가지 정보를 제공해 주긴 하지만 내가 필요한 정보를 제공해 주진 않는다.
다음은 내가 필요한 스택오브 플로어를 뒤져가면서 찾은 script 정보를 올리고자 한다. (필요할 때마다. 업데이트 할 예정)
몇몇개는 입맞에 맞게 고치기도 했다.
통용되는 버전은 geth 1.8.x 기준이다.
Geth 스크립트를 사용하는 방법 :
loadScript(
상황 : geth 내에서 들어있는 주소값 정보와 그 주소값의 밸런스 정보 찾는 스크립트
GeTh에서 현재 지원되는 명령어로는 모든 어카운트의 주소값을 전부 찾을 수는 없다. 그렇다면 실직적으로 단 한번이라도 트랜잭션 (코인을
주고받았거나 , 채굴로 코인을 얻었거나 , 또는 스마트 컨트랙트를 실행시킨 주소값에 해당하는 EAO 어카운트를 트랜잭션 내에서 조회해야
한다. ) 다음은 그러한 어카운트를 찾고 그에따른 주소가 가진 코인량을 서칭하는 스크립트다 .
Map 을 사용할 수 없어 중복값 체크가 안되기때문에 결과값은 엑셀을 사용하여 중복값을 제거해야만 한다.
function find(startBlockNumber, endBlockNumber) {
if (endBlockNumber == null) {
endBlockNumber = eth.blockNumber;
console.log("Using endBlockNumber: " + endBlockNumber);
}
if (startBlockNumber == null) {
startBlockNumber = endBlockNumber - 1000;
console.log("Using startBlockNumber: " + startBlockNumber);
}
console.log("Searching for accounts within blocks " + startBlockNumber + " and " + endBlockNumber + "\"");
for (var i = startBlockNumber; i <= endBlockNumber; i++) {
if (i % 1000 == 0) {
console.log("Searching block " + i);
}
var block = eth.getBlock(i,true);
console.log(" miner: " + block.miner +"value"+web3.fromWei(eth.getBalance(block.miner)));
if (block != null && block.transactions != null) {
block.transactions.forEach( function(e) {
console.log("Block: " + e.blockNumber + "\n"
+ " Tx#: " + e.transactionIndex + "\n"
+ " From: " + e.from +"value"+web3.fromWei(eth.getBalance(e.from))+"\n"
+ " To: " + e.to+"value"+web3.fromWei(eth.getBalance(e.from)));
if (e.to == null) {
var txReceipt = eth.getTransactionReceipt(e.hash);
if (txReceipt != null && txReceipt.contractAddress != null) {
console.log(" Contract created: " + txReceipt.contractAddress);
}
}
})
}
}
}
'大圖書館 > 実験室' 카테고리의 다른 글
스마트 컨트랙트 geth 에 집어넣기 (1) | 2018.12.03 |
---|---|
와이어 샤크 사용법 (0) | 2018.04.17 |
자동 전등 기구를 제작해보자 (0) | 2017.03.17 |