来自于: 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/