don't stop believing

Geth 기동 시 계정 잠금 해제 본문

Ethereum

Geth 기동 시 계정 잠금 해제

Tongchun 2018. 8. 25. 20:59

geth 실행 시 옵션을 이용해 계정 unlock을 바로 해줄 수 있습니다.


rpc 서버 실행 옵션과 함께 unlock 옵션을 주겠습니다. console 옵션도 추가해 바로 실행하도록 합니다.


geth --networkid 45 --nodiscover --maxpeers 0 --datadir /Users/tongchunkim/Documents/Test_Ethereum/data_testnet/ --mine --minerthreads 1 --rpc --rpcaddr "0.0.0.0" --rpcport 8545 --rpccorsdomain "*" --rpcapi "admin, db, eth, debug, miner, net, shh, txpool, personal, web3" --unlock 0 --verbosity 6 console 2>> /Users/tongchunkim/Documents/Test_Ethereum/data_testnet/geth.log


--unlock 0 옵션을 주면 accounts 배열의 0번째 계정(eth.accounts[0])을 unlock하겠다는 것입니다.

--verbosity 옵션은 로그 출력 수준을 지정할 수 있습니다.

(0=silent, 1=error, 2=warn, 3=info, 4=core, 5=debug, 6=detail)

$ geth --networkid 45 --nodiscover --maxpeers 0 --datadir /Users/tongchunkim/Documents/Test_Ethereum/data_testnet/ --mine --minerthreads 1 --rpc --rpcaddr "0.0.0.0" --rpcport 8545 --rpccorsdomain "*" --rpcapi "admin, db, eth, debug, miner, net, shh, txpool, personal, web3" --unlock 0 --verbosity 6 console 2>> /Users/tongchunkim/Documents/Test_Ethereum/data_testnet/geth.log
Unlocking account 0 | Attempt 1/3
Passphrase: 
Welcome to the Geth JavaScript console!

instance: Geth/v1.8.14-stable/darwin-amd64/go1.10.3
coinbase: 0x78ce083531ff41d26c7002efcf4eec1fd11deaa0
at block: 4003 (Sat, 25 Aug 2018 20:42:44 KST)
 datadir: /Users/tongchunkim/Documents/Test_Ethereum/data_testnet
 modules: admin:1.0 debug:1.0 eth:1.0 ethash:1.0 miner:1.0 net:1.0 personal:1.0 rpc:1.0 txpool:1.0 web3:1.0

>

--unlock 옵션을 추가해 실행하면 Passphrase를 묻습니다. 비밀번호를 입력하면 정상적으로 실행이 됩니다.


비밀번호를 파일로 저장해 놓고 비밀번호를 바로 확인하도록 할 수 있습니다.

$ echo ngle1234 > /Users/tongchunkim/Documents/Test_Ethereum/data_testnet/password
$ cat /Users/tongchunkim/Documents/Test_Ethereum/data_testnet/password
ngle1234

--password /Users/tongchunkim/Documents/Test_Ethereum/data_testnet/password 옵션을 추가해 패스워드를 지정할 수 있습니다.


geth --networkid 45 --nodiscover --maxpeers 0 --datadir /Users/tongchunkim/Documents/Test_Ethereum/data_testnet/ --mine --minerthreads 1 --rpc --rpcaddr "0.0.0.0" --rpcport 8545 --rpccorsdomain "*" --rpcapi "admin, db, eth, debug, miner, net, shh, txpool, personal, web3" --unlock 0 --password /Users/tongchunkim/Documents/Test_Ethereum/data_testnet/password --verbosity 6 console 2>> /Users/tongchunkim/Documents/Test_Ethereum/data_testnet/geth.log

$ geth --networkid 45 --nodiscover --maxpeers 0 --datadir /Users/tongchunkim/Documents/Test_Ethereum/data_testnet/ --mine --minerthreads 1 --rpc --rpcaddr "0.0.0.0" --rpcport 8545 --rpccorsdomain "*" --rpcapi "admin, db, eth, debug, miner, net, shh, txpool, personal, web3" --unlock 0 --password /Users/tongchunkim/Documents/Test_Ethereum/data_testnet/password --verbosity 6 console 2>> /Users/tongchunkim/Documents/Test_Ethereum/data_testnet/geth.log
Welcome to the Geth JavaScript console!

instance: Geth/v1.8.14-stable/darwin-amd64/go1.10.3
coinbase: 0x78ce083531ff41d26c7002efcf4eec1fd11deaa0
at block: 4021 (Sat, 25 Aug 2018 20:46:08 KST)
 datadir: /Users/tongchunkim/Documents/Test_Ethereum/data_testnet
 modules: admin:1.0 debug:1.0 eth:1.0 ethash:1.0 miner:1.0 net:1.0 personal:1.0 rpc:1.0 txpool:1.0 web3:1.0

>

비밀번호 입력 없이 바로 실행했습니다.

--unlock 옵션에 쉼표로 여러개의 계정을 unlock할 수 있습니다.

0번과 1번을 unlock과 함께 geth를 실행해 보겠습니다.

먼저 password 파일에 1번의 비밀번호도 추가합니다.

$ echo tongchun1234 >> /Users/tongchunkim/Documents/Test_Ethereum/data_testnet/password
$ cat /Users/tongchunkim/Documents/Test_Ethereum/data_testnet/password
ngle1234
tongchun1234

echo를 이용해 파일을 기록할때 ">" 이게 하나면 첫번째라인부터 기록하는 것이고 ">>" 두 개면 마지막 라인에 추가하는 것입니다.

이제 --unlock 0,1 옵션을 추가합니다.


geth --networkid 45 --nodiscover --maxpeers 0 --datadir /Users/tongchunkim/Documents/Test_Ethereum/data_testnet/ --mine --minerthreads 1 --rpc --rpcaddr "0.0.0.0" --rpcport 8545 --rpccorsdomain "*" --rpcapi "admin, db, eth, debug, miner, net, shh, txpool, personal, web3" --unlock 0,1 --password /Users/tongchunkim/Documents/Test_Ethereum/data_testnet/password --verbosity 6 console 2>> /Users/tongchunkim/Documents/Test_Ethereum/data_testnet/geth.log

$ geth --networkid 45 --nodiscover --maxpeers 0 --datadir /Users/tongchunkim/Documents/Test_Ethereum/data_testnet/ --mine --minerthreads 1 --rpc --rpcaddr "0.0.0.0" --rpcport 8545 --rpccorsdomain "*" --rpcapi "admin, db, eth, debug, miner, net, shh, txpool, personal, web3" --unlock 0,1 --password /Users/tongchunkim/Documents/Test_Ethereum/data_testnet/password --verbosity 6 console 2>> /Users/tongchunkim/Documents/Test_Ethereum/data_testnet/geth.log
Welcome to the Geth JavaScript console!

instance: Geth/v1.8.14-stable/darwin-amd64/go1.10.3
coinbase: 0x78ce083531ff41d26c7002efcf4eec1fd11deaa0
at block: 4067 (Sat, 25 Aug 2018 20:53:17 KST)
 datadir: /Users/tongchunkim/Documents/Test_Ethereum/data_testnet
 modules: admin:1.0 debug:1.0 eth:1.0 ethash:1.0 miner:1.0 net:1.0 personal:1.0 rpc:1.0 txpool:1.0 web3:1.0

>

보안상 이슈는 있겠지만 개발 환경에서는 좋을 것 같습니다.



Comments