问题标签 [go-ethereum]

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.

0 投票
2 回答
9930 浏览

ethereum - Web3.providers.HttpProvider("") 有什么用

我想使用 web3js 与智能合约进行交互。每个示例都将从以下开始

我不明白 Web3.providers.HttpProvider('Address') 的用法。我的猜测:因此,在建立专用网络时,每个节点都应该提供一个不同的 rpcport 来标识它,以便它连接到网络。我错了吗?例如,上面的代码用于网站的前端,以便连接前端并在以太坊专用网络中部署合约。所以前端代码必须是通用的,这意味着它不应该在其代码中添加特定的以太坊节点地址。那么Web3.providers.HttpProvider('Address')有什么用呢?

0 投票
1 回答
923 浏览

ubuntu - 如何使用 ppa 安装特定版本的 geth?

我正在尝试安装使用的特定v1.7.3版本geth

这将安装最新的可用软件包(geth v1.8.2)。但我想要另一个包名称相同但内容不同的包(1.7.3+build11486+zesty)

我需要安装 v1.7.3 的命令。我必须在 dockerfile 中使用它。

0 投票
1 回答
2006 浏览

java - Web3j Transfer.sendFunds() 返回错误“gas * price + value 资金不足”

在我的私人测试区块链中使用 web3j 库进行区块链交易时,我目前遇到标题响应错误:*gas 资金不足 * price + value*

我想转出一些以太币的账户余额为 10000 以太币。我注销的gas 价格的值为18000000000作为 BigInt(它是 WEI?),而gas 限制是 web3j 使用的默认值,值为21000

所以问题是为什么我的交易不起作用?我想转移 10 个以太币,例如:

更多细节

创世文件如下所示:

代码如下所示:

这导致了上面的交易错误:gas * price + value 资金不足

这是日志记录输出:

0 投票
0 回答
341 浏览

ethereum - 以太坊:从 RPC 服务中检索大量旧智能合约日志数据以进行回填的好方法是什么?

我遇到的问题是回填一个专门的数据库,使用以太坊区块链上给定智能合约的事件日志中的数据。

然而,问题是:如何在不达到限制的情况下这样做eth_getLogs(也没有限制:如何获得合理大小的 RPC 响应)

到目前为止我尝试了什么

我更喜欢使用 Infura,但他们将此调用限制为每个响应 100 个条目。理所当然地,查询应该在小块中完成以进行负载平衡等。api分页+eth_getLogs收集数据以进行回填的正确方法吗?

想法1:eth_getLogs关于块的范围

eth_getLogs除了查询块的范围之外,我不知道有任何方法可以分页。然而,一个块可能包含超过 100 个事件,这使我在使用 Infura 时无法读取所有数据。也许有一种方法可以对日志索引进行分页?(100 是我在实验时遇到的,但我找不到这方面的文档)

想法2:日志过滤器

使用过滤器 RPC 调用是另一种选择:即在一系列旧块上启动“观察者”。我试过这个,但我使用的 Infura websocket RPC 似乎没有给出任何响应,Ganache 在本地测试时也没有。非存档(即实时观看)日志工作,所以我知道我的代码至少按预期工作。(我的 go-ethereumWatch...生成的绑定调用有效,但在指定旧块时不会导致输出通道上的响应bind.WatchOpts.Start


有人对如何检索大量日志数据有任何建议吗?或者链接到解决这个问题的其他项目?

0 投票
2 回答
174 浏览

blockchain - 以太坊区块链:测试网环境设置

为了跳过信任第三方的需要并跳过在我的 PC 上完整下载区块链,我想在本地服务器上设置一个同步以太坊测试网区块链的完整节点,然后将我的 PC 连接到该服务器,使用 geth 实例。
这在某种程度上可能吗?我怎样才能做到这一点?

0 投票
0 回答
47 浏览

ethereum - 当固定条目大小的数组中的条目小于固定条目大小时会发生什么?

假设您有一个每个条目的大小固定的数组(例如:字符串或一些字节)。如果你存储一个较小的条目会发生什么?该条目是用一些空值(零)填充还是只是被存储?

编辑:

抱歉错误,谢谢指出。

0 投票
0 回答
128 浏览

ethereum - 无法比较 Mist 上的字符串

我创建了一个合同,我从用户那里获取 2 个哈希并尝试比较它们,这反过来会给出一个布尔值 true 或 false。它在混音上效果很好,但是当我尝试在 Mist 上运行合约时,compareString 函数只显示一条消息“NO”。这是我的代码。

雾反应的图像

0 投票
1 回答
1080 浏览

blockchain - ERC20 代币余额如何存储在以太坊区块链上

我真的很困惑 ERC20 代币余额是如何存储在链上的。似乎所有余额数据都存储为成员映射变量:

我想知道区块链上存储了多少副本。假设balances包含 10K 条记录,最高区块号为 100。现在我进行了一次代币转账,其中 2 条记录在balanceschanged 中,我们得到了一个新的balances,并且此转账由一个新的区块 101 确认。

余额存放在哪里?是否可以检索块 100 中的余额?(我想我们必须能够这样做,因为区块链可以回滚)。

我正在使用 geth/web3/eth,如果您能将我引导到相关文档页面,那就太好了。

非常感激!

0 投票
0 回答
540 浏览

ethereum - Solidity - 销售功能不起作用

我有我的合同,人们可以通过 web3 和 MetaMask 购买我的代币。现在,当我尝试执行 sell() 函数时会抛出异常,并且 Etherscan 总是说失败。

我开始按照我的合同买卖价格。

这是我的销售功能:

我不知道我还需要做什么。有人有什么想法可以帮助我吗?

更新:完整代码:https ://pastebin.com/eBYC77GV 。

UPDATE2:Etherscan 报告:https ://etherscan.io/tx/0x1213ca9540b8b7c0bd34f09dac906906772416a31e3b01559d0c0a3c05582a19

谢谢。

0 投票
1 回答
1281 浏览

ethereum - 尝试交易时出现 web3 json rpc 错误“”

我们web3用于连接到 rinkeby 测试以太坊网络。通过 localhost 使用以下 web3 命令通过 geth 执行此操作时:

我们没有收到任何错误。我们使用这个命令来启动 geth:

但是,当我们尝试直接使用 rinkeby 测试网络时:

我们得到这个错误:

大多数操作在两个网络上都有效,但.send()直接连接到 rinkeby 网络时调用失败。

我们认为这是身份验证的问题,因为其他命令成功但不执行事务。但是,我们尝试使用 HDWalletProvider 并且我们通过 geth 创建的帐户都没有助记符。

任何建议或故障排除步骤将不胜感激。谢谢