win10, 64비트 시스템 완성go-ethereum1.8.22 개인 체인 구성 및 관련 내용
14214 단어 블록체인이태방go-ethereum
도입부
선생님께서 주신 py 스크립트가 실행되지 않습니다. 검색을 통해 리퀘스트에 문제가 생겼습니다.디버깅을 통해 go-ethereum을 성공적으로 설치하여 스크립트가 순조롭게 실행되었습니다.
go-ethereum 설치 및 실행 요점
./genesis
(아무 폴더에) genesis.json
(아무 이름에) 파일을 만들고 창세 블록을 생성하는 설정을 채웁니다.{
"config": {
"chainId": 15,
"homesteadBlock": 0,
"eip155Block": 0,
"eip158Block": 0
},
"coinbase" : "0x0000000000000000000000000000000000000000",
"difficulty" : "0x1000",
"extraData" : "",
"gasLimit" : "0xffffffff",
"nonce" : "0x0000000000002242",
"mixhash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
"parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
"timestamp" : "0x00",
"alloc": {
"0x0000000000000000000000000000000000000001": {"balance": "111111111"},
"0x0000000000000000000000000000000000000002": {"balance": "222222222"},
"0x0000000000000000000000000000000000000003": {"balance": "111111111"},
"0x0000000000000000000000000000000000000004": {"balance": "222222222"},
"0x0000000000000000000000000000000000000005": {"balance": "111111111"},
"0x0000000000000000000000000000000000000006": {"balance": "222222222"}
}
}
PS1: 부분 숫자는 문자열이므로 형식에 유의하십시오.PS2: 16진수는 반드시 짝수 비트가어야 한다. 예를 들어
0x00
가 아니라 0x0
이다.PS3: chainId
는 0 0 0 0보다 큰 정수여야 합니다.그런 다음 루트 디렉토리에서 수행합니다.
.\geth --datadir "./data" init ./genesis/genesis.json
관건: 1.데이터dir 뒤에 있는 폴더 주소는 데이터를 저장하는 곳입니다.앞으로 모든 블록 정보는 여기에 저장될 것입니다. 초기화할 때 내용 폴더에 이전에 블록을 생성한 잔여 파일이 없어야 합니다.2. json의 주소는 현재 콘솔 위치에 상대적입니다.가능한 오류:
Failed to write genesis block: database already contains an incompatible
대상 폴더에 이미 다른 창세 블록이 있습니다.안의 정보를 삭제하면 된다.
.\geth --rpc --rpcport 8545 --datadir "./data" --port 30399 --verbosity 1 --dev.period 1 --rpcapi "dev, eth, web3, personal, net, tx_pool, admin, miner" console 2>>eth_output.log
관건: 1.rpc: rpc 프로토콜을 사용합니다.2. rpcport: rpc 감청 포트를 8545로 설정하면 이 포트는 점용할 수 없습니다.다른 프로그램은http://127.0.0.1:8545geth. 액세스3. 데이터dir: 뒤에 폴더 주소가 바짝 붙어 있습니다.안에 반드시 생성된 창세 블록이 있어야 한다.4.port: 뒤에 있는 숫자, 네트워크 감청 포트.5.verbosity: 뒤에 숫자가 뒤따르면 숫자가 1일 때 모든 오류가 금지됩니다.6.dev.period: 뒤에 숫자가 뒤따르고 1이면 엽니다.7.rpcapi: 뒤에 있는 문자열은 우리가 호출할 수 있는api입니다.8.console: 자바스크립트 console 모드를 사용합니다.자세한 내용은 go-ethereum Command Line Options 참조.
가능한 오류:
miner.start()
광산을 파기 시작하다.수익은coinbase 계좌에 드립니다.주의miner.start ()가true로 되돌아갈 때 채굴을 시작합니다.null로 되돌아갈 수도 있고, 실제로는 채굴을 시작합니다.광물을 파는 과정의 수량을 제어할 수 있는 숫자를 입력할 수 있습니다.
miner.stop()
채굴을 멈추다.
miner.setEtherbase(youraccount)
주 계정을 설정하고, 설정하지 않으면 광물을 채굴할 수 없습니다.
miner.setGasPrice
miner.hashrate
현재 채굴한 광물을 되돌려hash속도를 계산합니다.단위는 H/s H/s H/s입니다.
miner.start()
를 실행할 때 다음 예외가 발생할 수 있습니다.Failed to generate mapped ethash dataset epoch=0 err=“MapViewOfFile: Not enough storage is available to process this command.” runtime: out of memory: cannot allocate 2147483648-byte block (2262933504 in use) fatal error: out of memory
이것은 설치된 go-ethereum이 32비트 버전이기 때문이다.32비트의 go-ethereum을 마운트 해제하고 64비트 버전으로 바꾸면 됩니다.2. eth 명령
eth.accounts
현재 개인 체인의 계정을 보십시오.이것은 목록입니다.문자열 형식의 계정 주소를 인용할 수도 있습니다.
eth.getBalance(youraccount)
eth.accounts[0]
계좌의 잔액을 얻다.eth.coinbase
주 계정을 조회하다.
eth.blockNumber
현재 개인 체인의 블록 수량을 조회합니다.
eth.getBlock(str)
청크 정보 조회.str는'latest'조회 최신 블록일 수도 있고'earliest'조회 초기 블록일 수도 있고'pending'조회 중인 블록일 수도 있고 블록 번호일 수도 있습니다.
eth.sendTransaction({from:fr,to:to,value:val})
거래를 개시하다.하나
youraccont
로 전송됩니다.송금계좌json
, 송금계좌fr
, 금액to
, 단위는wei.송금 계좌는 반드시 잠금 해제 상태에 있어야 한다.3. 웹3 명령web3.fromWei(eth.getBalance(youraccount),"ether")
4. personal 명령
personal.newAccount("password")
새 계정을 만듭니다.매개 변수는 암호의 문자열입니다.안 채워도 돼요. 이때도 비밀번호를 입력하라고 할 거예요.하지만 내용은 숨겨져 있다.이런 방식이 더 안전하다.
personal.unlockAccount(youraccount,youraccount_passoword,duration)
계정을 잠금 해제하고 두 번째 파라미터는 계정 비밀번호입니다. 채우지 않아도 됩니다. 이럴 때도 비밀번호를 입력하라고 합니다.하지만 내용은 숨겨져 있다.이런 방식이 더 안전하다.세 번째 파라미터는 지속 시간입니다. 이 시간(초 단위)을 초과하면 계정이 자동으로 잠깁니다.다음 오류가 발생할 수 있습니다.
could not decrypt key with given passphrase
이것은 암호가 틀렸다는 것을 가리키며, 정확한 암호를 입력하면 된다.
personal.lockAccount(youraccount)
계좌를 잠그다.
web3.toWei(val,"qwq")
수량이 val인 qwq 단위를 wei 단위로 변환합니다.3. admin 명령
admin.datadir
현재 저장된 데이터의 디렉토리 보기
admin.nodeInfo.enode
노드 정보 보기
admin.peers
노드 목록을 봅니다.
admin.addPeer("enode://.........@ip:port")
노드를 추가합니다.
admin.startRPC("host", port)
RPC 켜기
admin.stopRPC()
RPC 종료4.net 명령
net.peerCount
노드 수를 확인합니다.
어떤 사람은
val
가 0일 때 이런 상황을 초래할 수 있다고 말한다. 나는 chainId
가 0이 되지 않는 전제에서 모든 계좌에 충분한 돈이 있다는 것을 보증한다.이렇게 하면 이 문제는 해결된다.Intrinsic gas too low
네가 준 돈이 없어졌다.너에게 충분한 돈이 있다는 것을 설명한다.하지만 충분하지 않으니 가스값을 높이면 된다.
Intrinsic gas exceeds block limit
한편으로는 네가 준 돈이 너무 많을 수도 있어.이때 가스를 줄이면 됩니다.다른 한편으로는 최소한의 돈을 줘도 안 돼.이때 수정
chainId
중의gaslimit을 충분하게 늘리면 됩니다.reference: 블록체인 - 창세 블록(windows 개인 체인 이더리움 네트워크 구축) 이더리움 win7-64에서 개인 체인 채굴 붕괴 문제 geth 설정 중,genesis.json의 몇 가지 문제는 이더리움 수수료 부족 이상(insufficient funds) 블록체인 입문(2): 이더리움 개인 체인을 구축하고 발굴을 집행한다.go-ethereum 학습노트(一) Intrinsic gas too low and exceeds block limit 이더리움 이태방의 흔한 문제와 오류 Web3j error: Intrinsic gas too low go-ethereum 배치 사유 체인 이더리움 채굴 조작 지침 이더리움 go-ethereum 클라이언트(셋) 두 가지 전절점 가동 모드 go-ethereum이 거래를 발기하고 실행하는 절차 이더리움 실행miner.start 엔드 솔루션 go-ethereum Command Line Options Management APIs 반환
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Azure Blockchain Service를 사용해보십시오.2(컨트랙트 배포)에서는 Azure Blockchain Service를 사용하여 블록체인을 구축할 때까지 했습니다. 이번 기사에서는 구축한 블록체인에 대해 계약(이번에는 ERC20의 토큰 계약)을 배포합니다. Azure Blockch...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.