Geth 或 Ganache 的区别

Difference of Geth or Ganache

嗨,我是区块链话题的新手,我正在尝试制作以太坊智能合约。第一步我安装了 truffle,当我尝试迁移时它会抛出一个错误,因为我没有以太坊客户端。 为了解决这个问题,建议使用 truffle develop、ganache、geth,但我无法决定哪个更合适,我也不明白 ganache 和 geth 的区别。基本上他们是否提供相同的服务?这是错误:

Could not connect to your Ethereum client with the following parameters:
- host       > 127.0.0.1
- port       > 7545
- network_id > *
Please check that your Ethereum client:
- is running
- is accepting RPC connections (i.e., "--rpc" option is used in geth)
- is accessible over the network
- is properly configured in your Truffle configuration file (truffle-config.js)

松露

如前所述,您迁移了合同。所以Truffle可以用于合约编译和迁移。它旨在轻松快速地迁移。

Geth

是一个以太坊客户端,这意味着你可以运行你自己的私人区块链。您可以通过定义例如您为挖掘提供的线程数量来调整您的需求。 Geth 本身是一个命令行工具,可以 运行 用 Go 实现一个完整的以太坊节点。它提供了命令行、一个Json-rpc服务器和一个交互式控制台,在那里你可以 运行 用 javascript.

编写你自己的脚本

甘那许

如果你想要一个 GUI,你可以在其中跟踪区块链上的所有部署和交易,你可以选择 Ganache。 它允许您创建自己的私有区块链,主要用于测试目的。 例如,它用于部署测试,因为 "ganache-blockchain" 上没有真正的矿工,所以你可以测试你的合约是否有效。

如果您想在本地节点上设置自己的区块链然后部署,我建议您使用 GethTruffle一些合同。 网上有很多关于如何设置您自己的本地节点的手册。 例如:

创建节点后,您可以向其部署一些带有truffle的合约。希望能帮到你

TLDR : 从 Ganache 开始,一路学习 Geth。

Truffle 是一个编译器,毫无疑问。

但在 GethGanache 之间:

为什么选择 Ganache? 因为它很简单!

Geth 是一个真正的交易,对于一个小型本地链,您必须先 运行 它的服务,然后创建创世块,然后您需要带一些矿工将交易挖掘到区块链并生成一些 eath!然后你可以将智能合约迁移到它,但 Ganache 会为你做所有这些!

为什么要使用 Geth? 来自 here :

1- Geth is the official client software provided by the Ethereum foundation.

2- Comes with a JavaScript console (run it with geth console).

3- Has an interoperable JavaScript client (web3js).

4- Built-in access to the Rinkeby test net (or build your own private Ethereum network).

5- It is generally considered to be the reference implementation for other Ethereum nodes.

根据我在这方面的经验 time/date,Ganache 云是有问题的,会给你一些与你的代码无关的错误,但如果你需要将你的代码迁移到像 Rinkeby Testnet 这样的测试巢,最终你需要学习 Geth。