问题标签 [geth]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ethereum - Geth 无法连接到专用网络
我正在创建一个专用网络(以太坊)。我写了 genesis.json 文件(下面的代码),然后我没有错误地初始化它,但是当我尝试连接到它时,会创建一个新行(意味着应该指定一个额外的命令)。当我按下回车键时,geth 只是连接到主网络。如何让 geth 连接到专用网络?
注意:您可以立即告诉 geth 连接到主网络,因为我的链的 ID 是15并且它显示连接到1。
创世纪.json:
命令行:
附加信息: 我正在运行 MacOS Sierra (10.12.3) 我正在使用终端 (2.7.1)
ethereum - 错误启动协议栈:无效的争论
我目前正在尝试使用geth
并且我想启动我的私人以太坊网络,以便我可以测试我的应用程序。但是,当我尝试使用时geth --datadir=./chaindata/
,这只会在终端中给我一些错误,我在这个问题的底部显示了这些错误。我知道还有其他用户在 Mac OS 上遇到同样的问题,这也是我正在使用的。
这是终端输出:
ethereum - Geth eth.sendTransaction 不起作用
我正在学习以太坊并尝试使用 Geth 1.7.3-stable 的专用网络。
Accounts[0] 在专用网络中有 105 个 eth,我尝试如下发送 eth。
但是 eth.sendTransaction 命令只返回“0xaf571929f95ddeaab8761d719dba3c852f5d4f9895968a905c275561eaf57ae6”。
而且accounts[1] 没有收到任何eth。
有谁知道如何解决这一问题?
javascript - 使用 web3 ethereum 调用智能合约方法
尝试使用以太坊围绕区块链工作时,我在尝试与已部署的合约交互时遇到了问题。我将尝试实现的是调用一种方法来显示添加到使用 Geth 本地部署的私有区块链的信息。
我无法从我的智能合约中调用任何函数,我一直在想我是否做错了什么......有人可以告诉我如何从这个合约中实现对其中一个方法的简单调用吗?假设显示现有机构,或用户所属的机构名称。
我的合同:agent.sol
abi定义
成功部署:
最后contractInstance
:
我试过了:
结果是Error: Invalid number of arguments to Solidity function
结果Error: invalid address
我也试过打电话agencyToOwner
,createRandomAgency
但没有任何效果。
任何帮助都会很高兴收到!谢谢,
ethereum - 以太坊区块链未在 3 台不同的计算机上同步
我对 Geth 有疑问,我想编译和部署一个智能合约,为了做到这一点,我在我的钱包中添加了以太币。我们可以在这里验证交易:https ://etherscan.io/tx/0x0b3247c2c1d1f26411486ad3ee4fd47e2a8b71de56af0b0fe6759586dd18f6b5 我们可以看到交易在第 4 679 731 个区块中
在这里,我们可以验证钱包中的以太币数量:https : //etherscan.io/address/0x704e2b488674afa69069a165d3c8a80a27c30d6f,即 0,075 以太币。
然后,
我用香草 Ubuntu 构建了一个虚拟机,安装 geth (v1.7.0-stable-6c6c7b2a) 并尝试从 2017 年 10 月 29 日同步到 2017 年 12 月 20 日。我使用以下命令启动 geth:geth 控制台
在我的研究中,我发现了两个可以确定同步进度的命令:
给 :
{ currentBlock:1144835,highestBlock:1720228,knownStates:33418,pullStates:25707,startingBlock:1144067 }
给 :
0
我使用以下命令来检查一个帐户有多少以太币:
给 :
0
所以在两个月内,我没有同步,我的 geth 不知道我的账户上有多少以太币。我显然已经同步到第 1 144 835 个区块,并且交易在第 4 679 731 个区块,所以我认为这很正常,但是两个月后呢?我必须等待 8 个月才能开始使用 Geth 吗?这是不可接受的。
因此,我在 2017 年 12 月 29 日使用相同的香草 Ubuntu 构建了第二个虚拟机,安装 geth (1.7.3-stable-4bb3c89d) 并尝试同步。与第一个的区别:我使用快速同步模式启动:geth --fast --cache=1024 控制台。
现在,命令
给 :
给 :
0
和
给 :
0
所以在 12 天内,我同步了 4 倍以上,但在最后 4 天,我收到消息:WARN [01-10|01:01:40] Rolled back headers count=2048 header=3894230->3892182 fast=3872910 ->3872910 block=0->0 每次都不会同步更多。
所以我在我的个人电脑上第三次尝试,Windows 8.1,安装 geth (1.7.3-stable-4bb3c89d) 并尝试从 01-07-2018 使用命令行同步:geth.exe --syncmode "full"安慰
现在,命令
给 :
{ currentBlock:4881711,highestBlock:4884507,knownStates:34771,pullStates:26470,startingBlock:4880214 }
给 :
0
和
给 :
0
所以我在一天之内到达了目标区块(4 679 731),但 geth 总是说我的账户里有 0 个以太币?
我的问题是:我如何同步才能开始使用 SmartContract?
当我在网上搜索时,我能读到的唯一答案就是等待。我不想再看这个anwser,或者告诉我一个可以告诉我真正进展的真正方法。
ethereum - 在 Geth 中复制合约代码时未定义
我正在尝试在以太坊专用网络中创建合同。
我尝试的是:
在 browser-solidity 中创建了以下合约。
并复制 web3 部署代码如下。
然后,复制到控制台中。
如上所述,我得到了未定义的两个脚本。
我该如何解决这个问题?
我使用以下环境:
- macOS 10.12.6
- Geth:1.7.3-稳定
- Solc:0.4.19+commit.c4cbbb05.Darwin.appleclang
node.js - 以太坊错误:需要身份验证:密码或解锁
0|server | (node:99208) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 53): Error: authentication needed: password or unlock
这是随机发生的,有时 api 调用成功通过,有时 nodejs 应用程序日志会显示这一点。我使用多种方式多次解锁帐户,给了我“真正的”布尔值,如下所示:
personal.unlockAccount(eth.coinbase, "cDxxxxxxxxKaYZ", 300)
geth --exec "personal.unlockAccount(eth.accounts[0], 'cDb
xxxxxxxKaYZ', 1000)" attach
它继续随机显示相同的错误authentican需要没有任何线索!
PS 我正在使用带有 Geth 和 MetaMask 的 azure ethereum 联盟网络
javascript - 调用 web3.eth.personal.unlockAccount 会抛出错误
我在web3 1.0.0-beta.27
,我运行了一个私有区块链: geth --identity "node" --nodiscover --maxpeers 0 --datadir path/to/data --networkid 123 --ws --wsport 8546 --wsorigins "* “ 安慰
然后在一个app.ts
文件中我有:
但我得到错误:
在网上搜索这个问题,我应该用 开始这个geth
过程--rpcapi="db,eth,net,web3,personal,web3"
,但是添加这个标志并没有帮助,即使rpc
只是一种ipc
正确的?
此外,在 geth 控制台上,我可以使用以下命令解锁帐户
blockchain - 如何处理以太坊上的失败链?
我正在构建分散式应用程序,它将数据从区块链抓取到 mysql 数据库。
我不确定,但我猜以太坊网络的一部分可能接受新开采的交易 X,而另一部分接受开采的交易 Y。一段时间后,其中一个交易应该被全链接受,而其他交易应该失败。
如果我的节点进入错误的链,我的 mysql 数据库中的数据将不正确。并且很难恢复数据库。
如何正确处理这些类型的冲突?我是否应该仅在一定数量的确认(例如 5 或 10)后才获取数据?还是有另一种方法?