Transactions 具有2个节点的私有以太坊区块链sendTransaction()返回;无效发送者“;

Transactions 具有2个节点的私有以太坊区块链sendTransaction()返回;无效发送者“;,transactions,blockchain,ethereum,Transactions,Blockchain,Ethereum,我已经在ubuntu虚拟机上建立了一个私有以太坊区块链。我已经创建了2个节点,并在每个节点上创建了一个帐户。我在两个节点/帐户上都挖掘了一些wei,现在正试图使用以下命令从一个帐户发送到另一个帐户: eth.sendTransaction({从:“0xd4b49495ea94285b0a8af7d813e089fc6c87311c”到“0x45f42febec0ba6127ec1c7ce33d6f2afd0b9b24e”,值:“80000000000000000”}) 但是,我得到以下错误: W

我已经在ubuntu虚拟机上建立了一个私有以太坊区块链。我已经创建了2个节点,并在每个节点上创建了一个帐户。我在两个节点/帐户上都挖掘了一些wei,现在正试图使用以下命令从一个帐户发送到另一个帐户:

eth.sendTransaction({从:“0xd4b49495ea94285b0a8af7d813e089fc6c87311c”到“0x45f42febec0ba6127ec1c7ce33d6f2afd0b9b24e”,值:“80000000000000000”})

但是,我得到以下错误:

WARN [04-26|16:25:02.120] Served eth_sendTransaction               reqid=13 t=1.403564ms  err="invalid sender"
Error: invalid sender
    at web3.js:6347:37(47)
    at web3.js:5081:62(37)
    at <eval>:1:20(10)
我启动节点2:

docker run -it -p 8546:8545 -p 30304:30303 -v /Users/benjamin/myether/datadir2:/root/datadir mynode /bin/bash

geth --datadir=/root/datadir/ init /root/mygenesis.json

geth --datadir /root/datadir/ --networkid 1234 --port 30303 --rpcport 8545 -rpc --rpcapi eth,web3,personal,net --rpcaddr 0.0.0.0 console --allow-insecure-unlock
然后我解锁节点1上的帐户:

personal.unlockAccount("0xd4b49495ea94285b0a8af7d813e089fc6c87311c", pass phrase)
然后我在节点1上使用上面指定的sendTransaction()

我的Dockerfile:

FROM ubuntu:20.04
RUN apt-get update && apt-get install -y software-properties-common net-tools
RUN add-apt-repository -y ppa:ethereum/ethereum && apt-get update
RUN apt-get -y install ethereum
ADD ./genesis.json /root/mygenesis.json
EXPOSE 8545 8546 30303 30303/udp
RUN mkdir -p /root/datadir
ENTRYPOINT "bash" 
My genesis.json:

  "alloc": {},
  "coinbase"   : "0x0000000000000000000000000000000000000000",
  "difficulty" : "0x20000",
  "extraData"  : "",
  "gasLimit"   : "0x2fefd8",
  "nonce"      : "0x0000000000000042",
  "mixhash"    : "0x0000000000000000000000000000000000000000000000000000000000000000",
  "parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
  "timestamp"  : "0x00",
  "config":{
    "chainId": 813
  }
}
在大部分情况下,我遵循了本教程: 我只是从这个话题开始,并不真正理解正在发生的大部分事情。有没有可能我必须在交易上签字?我该怎么做


谢谢您的帮助,我非常感谢。

请编辑您的问题,并演示如何使用
eth.sendTransaction
。您是在节点控制台(哪个节点?geth?openem?other?)中输入它,还是在带有
web3js
的JavaScript片段中使用它。。。很可能您的交易没有签署。但是如何签名-这取决于您如何创建事务并将其发送到节点。@PetrHejda,谢谢您的快速响应,我非常感谢。我试着编辑我的问题并尽可能详细。
  "alloc": {},
  "coinbase"   : "0x0000000000000000000000000000000000000000",
  "difficulty" : "0x20000",
  "extraData"  : "",
  "gasLimit"   : "0x2fefd8",
  "nonce"      : "0x0000000000000042",
  "mixhash"    : "0x0000000000000000000000000000000000000000000000000000000000000000",
  "parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
  "timestamp"  : "0x00",
  "config":{
    "chainId": 813
  }
}