美文网首页
6:搭建测试网络

6:搭建测试网络

作者: 小肥爬爬 | 来源:发表于2018-04-29 17:43 被阅读0次

    来自于: http://ethdocs.org/en/latest/network/test-networks.html

    Morden 测试网

    Morden是一个公开的以太坊测试网, 兼容 Frontier 和 Homestead 两个版本. 使用办法: (只翻译 geth 版本) 

    所有参数与以太网主要网络相同,除了:

    * 网络名称:Morden

    * 网络身份:2

    * genesis.json(下面给出);

    -初始帐户随机数(IAN)为2 ^ 20(而不是在所有以前的网络中为0)。

    状态树中的所有帐户都有nonce> = IAN。

    每当一个账号被插入到状态树中时,它就会被初始化为nonce = IAN。

    创世纪通用块哈希:0cd786a2425d16f152c658316c423e6ce1181e15c3295826d7c9904cba9ce303

    Genesis通用状态根:f3f4696bbf3b3b07775128eb7a3763279a394e382130f27c21e70233e04946a9

    获得Modern网络的以太

    有两个办法: 

    * 挖矿

    * 使用 Wei faucet (不是很理解. 到时候回头看)  

    搭建私有测试网络

    您可以在私人测试网上预先生成或挖掘您自己的以太网。这是一个更有成本效益的方式来试用以太坊,你可以避免不得不挖掘或找到Morden测试以太。

    需要在私有链中指定的事情是:

    * 自定义创世纪文件

    * 自定义数据目录

    * 自定义NetworkID

    * (推荐)禁用节点发现

    创世纪文件

    创世纪区块是区块链的开始 - 第一个区块,区块0,以及唯一不指向前任区块的区块。该协议确保没有其他节点会同意您的区块链版本,除非它们具有相同的创世区块,因此您可以制作尽可能多的私人testnet区块链!

    保存一个名为CustomGenesis.json的文件。您将在使用以下命令启动geth节点时引用此信息:

    默认情况下,geth将使用与公用主网络相同的目录来存放与网络相关的文件。 因此建议您设置一个自定义--datadir以防止公网重新启动。

    私有网络的命令行

    有一些命令行选项(也称为“标志”)是必需的,以确保您的网络是私有的。我们已经涵盖了创世纪的标志,但我们还需要更多。请注意,以下所有命令都将在geth以太坊客户端中使用。

    --nodiscover

    使用它可以确保您的节点不会被没有手动添加的人发现。否则,如果您的节点具有相同的生成文件和网络标识符,则可能无意中将其添加到陌生人的区块链中。

    --maxpeers 0

    如果您不希望其他人连接到您的测试链,请使用maxpeers 0。或者,如果您确切知道要连接到节点的对等点的数量,则可以调整此数字。

    --rpc

    这将在您的节点上启用RPC接口。这通常在Geth中默认启用。

    --rpcapi "db,eth,net,web3"

    这决定了允许通过RPC访问哪些API。默认情况下,Geth通过RPC启用web3界面。

    重要提示:请注意,通过RPC / IPC接口提供API将使每个人都可以访问可以访问此接口的API(例如dapp's)。小心你启用了哪些API。默认情况下,geth通过IPC接口启用所有API,并通过RPC接口启用db,eth,net和web3 API。

    --rpcport "8080"

    将8000更改为网络上打开的任何端口。geth的默认值是8080。

    --rpccorsdomain "http://chriseth.github.io/browser-solidity/"

    这决定了哪些URL可以连接到您的节点以执行RPC客户端任务。要非常小心,并输入一个特定的URL而不是通配符(*),这将允许任何URL连接到您的RPC实例。

    --datadir "/home/TestChain1"

    这是私链数据的存储数据目录(在nubits下)。选择与公共以太坊链文件夹不同的位置。

    --port "30303"

    这是“网络侦听端口”,您将使用它来手动与其他对等端进行连接。

    --identity "TestnetMainNode"

    这将为您的节点设置身份,以便在对等列表中更容易地识别它。以下是这些身份如何在网络上显示的示例。

    启动geth

    创建自定义创世纪JSON文件并为您的区块链数据创建目录后,在可以访问geth的控制台中键入以下命令:

    geth --identity "MyNodeName" --rpc --rpcport "8080" --rpccorsdomain "*" --datadir "C:\chains\TestChain1" --port "30303" --nodiscover --rpcapi "db,eth,net,web3" --networkid 1999 init /path/to/CustomGenesis.json

    请更改标志以符合您的自定义设置。

    这会初始化你的创建块。要通过控制台与geth进行交互,请输入:

    geth --identity "MyNodeName" --rpc --rpcport "8080" --rpccorsdomain "*" --datadir "C:\chains\TestChain1" --port "30303" --nodiscover --rpcapi "db,eth,net,web3" --networkid 1999 console

    每次访问自定义链时,都需要使用自定义链命令启动geth实例。如果您只是在控制台中键入“geth”,它将不会记住您设置的所有标志。

    通过JavaScript控制台可用的完整方法列表可以在github上的geth wiki上找到

    如果您已经有一个geth节点在运行,您可以使用以下方法将其他geth实例附加到它:

    geth attach

    现在您需要在testnest上初始化一个新帐户,并将其设置为您的etherbase(将获得挖矿奖励的地址)。

    在JavaScript控制台类型中运行: 

    personal.newAccount("password")

    现在我们将它设置为etherbase:

    如果成功,控制台将打印“true”

    最后,你准备开始开采测试以太:

    预先分配以太到你的账户

    “0x400”的难度使您能够在私人测试网链上非常快地挖掘以太网。如果你创建你的链并开始挖掘,你应该在几分钟内就拥有数百个以太,这对测试网络上的交易已经足够了。如果您仍希望将Ether预先分配给您的帐户,则需要:

    * 创建私链后创建一个新的Ethereum帐户

    * 复制您的新帐户地址

    * 将以下命令添加到您的Custom_Genesis.json文件中:

    将0x1fb891f92eb557f4d688463d0d7c560552263b5a替换为您的帐户地址。

    保存你的创建文件并重新运行你的私有链命令。一旦geth完全加载,关闭它。

    我们要为变量主分配一个地址并检查其余额。

    在终端中运行命令geth帐户列表,查看您的新地址分配了哪个帐户#。

    请注意哪个帐号#是您预先分配的帐号。或者,您可以使用geth控制台启动控制台(保持与首次启动geth时相同的参数)。一旦出现提示,请键入

    这将返回您拥有的帐户地址数组。

    将0替换为您帐户的索引。 这个控制台命令应该返回你的主要以太坊地址。

    键入以下命令:

    这应该返回7.5,表明您的帐户中有太多以太网。我们必须在创世档案的分配部分放置如此大数目的原因是因为“平衡”字段需要wei中的数字,这是以太坊货币以太的最小面额(请参阅Ether)

    https://www.reddit.com/r/ethereum/comments/3kdnus/question_about_private_chain_mining_dont_upvote/

    相关文章

      网友评论

          本文标题:6:搭建测试网络

          本文链接:https://www.haomeiwen.com/subject/pitalftx.html