怎么用NEO节点搭建私有链?这是很多人都关心的问题,今天就这个问题我们来探究一下!NEO私有链的部署至少需要4台服务器才能取得共识,每台服务器对应一个共识节点,每台服务器上有一个NEO钱包文件。
配置虚拟机
NEO 私有链的部署至少需要 4 台服务器才能取得共识,每台服务器对应一个共识节点。为了演示,我在 Azure 上创建了 4 台 Windows 虚拟机,大小为 Standard DS1 v2 (1 核心,3.5 GB 内存),你也可以在局域网中或虚拟机中部署私有链。
创建好后,要开通 10331-10334 端口,具体方法为在系统的 防火墙 高级设置 入站规则 中新建规则,然后添加端口 10331-10334.
如果你在云服务器上创建的虚拟机,还要登录虚拟机的管理后台,设置网络安全组 Azure 上的设置方法为:网络 入站端口规则添加端口 10331-10334.
创建好虚拟机后,将四台虚拟机的 IP 地址保存下来以备后用。
安装 NEO 节点
参考 NEO 节点的安装部署安装NEO节点。
安装插件
要使节点达成共识,需要安装 SimplePolicy 插件启用共识策略,详细信息请参考 安装插件。
创建钱包
我们首先创建 4 个钱包文件,依次为 1.json - 4.json,这一步在 PC 版钱包和命令行钱包都可以创建,下图是在命令行客户端创建钱包文件的截图。
创建好钱包后将 4 个钱包的公钥保存下来(保存到一个 txt 文件中即可)以备后用。直接复制上面的公钥或者用 CLI 命令 中的 list key 命令查看公钥再复制均可。
然后将 4 个钱包分别复制到 4 个虚拟机的节点目录下。
修改节点的配置文件
打开节点的配置文件 protocol.json 。
Magic 的类型为 uint,所以注意所填写的数值要在 [0 - 4294967295] 区间内。
然后修改 StandbyValidators,将第三步记下来的 4 个公钥填写在这里。
最后修改 SeedList,将第一步记下来的 IP 地址填写在这里,端口号保持不变,例如我修改成下面的配置。
"ProtocolConfiguration": {
"Magic": 123456.
"AddressVersion": 23.
"SecondsPerBlock": 15.
"StandbyValidators": [
"03072384ece95c4febe7211ee4833cd36cdf0f255ec5263b28a4be1f2af7a3d7f3",
"0208da33cee651a4dc119654b5b8067ade533e39e63a8b4fdbd160d97f80c4cfb4",
"026f0af815d5c3895205e9f54b9402329f3ecc4d249fc0c8500e9b3ea8a3ec9d5b",
"03b4e070988627e2a5710b2c8c79f0f0be18821e1af5875b7beeb3fa8a921cde3f"
"SeedList": [
"13.75.112.62:10333",
"137.116.173.200:10333",
"168.63.206.73:10333",
"137.116.171.134:10333"
"SystemFee": {
"EnrollmentTransaction": 10.
"IssueTransaction": 5.
"PublishTransaction": 5.
"RegisterTransaction": 100
最后将修改过的 protocol.json 复制到 4 个节点的客户端目录下,替换之前的 protocol.json 的文件。
为了更方便地打开钱包,开启共识,建议修改每个节点下的 config.json 文件,替换其中的这一部分
"UnlockWallet": {
"Path": "1.json",
"Password": "11111111",
"StartConsensus": true,
"IsActive": true
其中 Path 是钱包名称,Password 是钱包密码,修改成你自己的钱包名称和密码就可以,其余两个不变。
然后在 4 台虚拟机上依次输入以下命令启动节点,这时程序会自动打开钱包并开启共识。
启动节点:dotnet neo-cli.dll
如果上述操作成功,可以运行show state来查看节点状态。若高度发生变化,则说明共识过程正常。4个节点的共识过程如图所示
4 个节点即使关掉一台依然可以达成共识,如图所示
提取 NEO、NeoGas
安装 PC 版客户端(Neo-GUI),修改配置文件 protocol.json 使其连接到私有链中。
打开钱包,如果左下角有连接数不为零,而且一直在同步区块,表示该客户端已经成功地连接到了私有链中。
在 PC 版客户端中打开钱包 wallet1.db3.添加多方签名地址,输入 protocol.json 中的 4 个公钥,设置最小签名数量为 3(共识节点数量 / 2 + 1),你就会看到在合约地址中有 1 亿的 NEO 了,如图所示。
4 个钱包都要添加多方签名地址,否则下一步会提示签名失败
下面我们要将该 NEO 从合约地址转到标准地址中,打开 4 个钱包中的任意一个,点击 交易 转账 输入一个标准地址,将 1 亿 NEO 转到这个地址中。
然后系统会提示“交易构造完成,但没有足够的签名”,然后将代码复制下来,打开第二个钱包,点击 交易 签名 粘贴刚才复制的代码,点击 签名, 然后将代码复制下来,打开第三个钱包,点击 交易 签名 粘贴刚才复制的代码,点击 签名,这时你会发现窗口中出现了一个广播 按钮,代表交易已经签名完成(达到多方签名合约要求的最少签名数量)可以广播,点击 广播 后转账交易开始广播,约 15 秒后转账成功。
提取 NeoGas 的操作方法也类似,点击 高级 提取 NeoGas 提取 ,(记得这时所在的钱包 X,下文会用到),如图所示
接下来的操作与转账 NEO 类似,将没有足够的签名的代码复制下来,打开第二个钱包,点击 交易 签名 粘贴刚才复制的代码,点击 签名, 然后将代码复制下来,打开第三个钱包,点击 交易 签名 粘贴刚才复制的代码,点击 签名,点击 广播 后提取 NeoGas 的交易开始广播,约 15 秒后提取成功。
提取成功后 NeoGas 会进入到你发起提取 NeoGas 的交易所在的钱包(即上方的 X 钱包)的第一个标准地址,如图所示
这样就完成了!以上就是怎么用NEO节点搭建私有链?的相关介绍,你学会了吗?
INESV(宏强科技)分析区块链技术中的公有链的特征如下: (1) 运行在互联网;(2) 完全的分布式;(3) 数据节点数量多变且不可预知;(4) 数据是公开的;(5) 任何人都可以匿名参与;(6) 运维成本较高,依赖奖励机制;(7) 交易速度较慢。
区块链有公有区块链、联合(行业)区块链、私有区块链。 公链有点对点电子现金系统:比特币、智能合约和去中心化应用平台:以太坊。
区块链为分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。
区块链(Blockchain),为比特币的一个重要概念,它本质上是一个去中心化的数据库,同时作为比特币的底层技术,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次比特币网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。
扩展资料
根据区块链网络中心化程度的不同,分化出3种不同应用场景下的区块链:
1、全网公开,无用户授权机制的区块链,称为公有链;
2、允许授权的节点加人网络,可根据权限查看信息,往往被用于机构间的区块链,称为联盟链或行业链;
3、所有网络中的节点都掌握在一家机构手中,称为私有链。
联盟链和私有链也统称为许可链,公有链称为非许可链。
区块链特征
1、去中心化。 区块链技术不依赖额外的第三方管理机构或硬件设施,没有中心管制,除了自成一体的区块链本身,通过分布式核算和存储,各个节点实现了信息自我验证、传递和管理。 去中心化是区块链最突出最本质的特征。
2、开放性。 区块链技术基础是开源的,除了交易各方的私有信息被加密外,区块链的数据对所有人开放,任何人都可以通过公开的接口查询区块链数据和开发相关应用,因此整个系统信息高度透明。
3、独立性。 基于协商一致的规范和协议(类似比特币采用的哈希算法等各种数学算法),整个区块链系统不依赖其他第三方,所有节点能够在系统内自动安全地验证、交换数据,不需要任何人为的干预。
4、安全性。 只要不能掌控全部数据节点的51%,就无法肆意操控修改网络数据,这使区块链本身变得相对安全,避免了主观人为的数据变更。
5、匿名性。 除非有法律规范要求,单从技术上来讲,各区块节点的身份信息不需要公开或验证,信息传递可以匿名进行。
一、区块链共识机制的目标区块链是一种去中心化的数据库,也称为分布式账本。 与传统中心化数据库不同,区块链技术允许数据库存储在全球成千上万的电脑上,并通过点对点网络进行同步。 区块链由包含交易信息的区块有序链接而成。 区块链共识机制的目标是保证分布式系统里所有节点中的数据完全相同,并能够对某个提案(例如一项交易记录)达成一致。 然而,分布式系统引入了多个节点,因此系统中会出现各种复杂情况。 解决分布式系统中的各种边界条件和意外情况也增加了解决分布式一致性问题的难度。 二、区块链共识机制的分类解决分布式一致性问题的难度催生了数种共识机制,它们各有优缺点,适用于不同的环境及问题。 常见的共识机制包括:1. PoW(Proof of Work)工作量证明机制2. PoS(Proof of Stake)股权/权益证明机制3. DPoS(Delegated Proof of Stake)股份授权证明机制4. PBFT(Practical Byzantine Fault Tolerance)实用拜占庭容错算法5. DBFT(Delegated Byzantine Fault Tolerance)授权拜占庭容错算法6. SCP (Stellar Consensus Protocol) 恒星共识协议7. RPCA(Ripple Protocol Consensus Algorithm)Ripple共识算法8. Pool验证池共识机制每种共识机制都有其特定的应用场景和优缺点。 例如,PoW适用于公有链,而PBFT和DBFT主要适用于私有链和联盟链。 SCP和Ripple共识算法则适用于特定的应用场景。 三、共识机制的详细介绍1. PoW(Proof of Work)工作量证明机制 - 基本介绍:网络上的每个节点使用SHA256哈希函数运算不断变化的区块头的哈希值,直到达到目标值。 - 应用实例:比特币、莱特币、以太坊(前三个阶段) - 优点:完全去中心化 - 缺点:资源浪费,共识效率低2. PoS(Proof of Stake)股权/权益证明机制 - 基本介绍:要求证明货币数量的所有权,相信拥有货币数量多的人攻击网络的可能性低。 - 应用实例:点点币、未来币 - 优点:节省能源,提高效率 - 缺点:挖矿成本接近于0,可能遭受攻击3. DPoS(Delegated Proof of Stake)股份授权证明机制 - 基本介绍:通过选举产生代表进行区块的生成和验证。 - 应用实例:比特股 - 优点:大幅减少参与验证和记账的节点数量,提高交易效率 - 缺点:投票积极性不高,依赖于代币4. PBFT(Practical Byzantine Fault Tolerance)实用拜占庭容错算法 - 基本介绍:通过三个阶段的信息交互和局部共识达成最终的一致输出。 - 应用实例:Hyperledger Fabric v0.6 - 优点:严格的数学证明,保证一致性输出 - 缺点:中心化程度较高5. DBFT(Delegated Byzantine Fault Tolerance)授权拜占庭容错算法 - 基本介绍:基于PBFT,存在专业记账的“超级节点”和不参与记账的普通用户。 - 应用实例:NEO - 优点:保护系统不受无法行使职能的领袖影响 - 缺点:中心化程度较高6. SCP (Stellar Consensus Protocol) 恒星共识协议 - 基本介绍:基于联邦拜占庭协议,能够去中心化的同时,又可以做到拜占庭容错。 - 应用实例:Stellar - 优点:去中心化,拜占庭容错 - 缺点:具体应用场景有限7. RPCA(Ripple Protocol Consensus Algorithm)Ripple共识算法 - 基本介绍:基于互联网的开源支付协议,共识达成发生在验证节点之间。 - 应用实例:Ripple - 优点:高效,快速确认交易 - 缺点:只适合联盟链或私有链8. Pool验证池共识机制 - 基本介绍:基于传统的分布式一致性算法(Paxos和Raft)开发,辅之以数据验证的机制。 - 应用实例:具体应用场景有限 - 优点:高效,容错性强 - 缺点:具体应用场景有限总结区块链共识机制的目标是保证分布式系统里所有节点中的数据完全相同,并能够对某个提案达成一致。 不同的共识机制适用于不同的环境和问题,每种机制都有其特定的优缺点。 选择合适的共识机制需要根据具体的应用场景和需求来决定。
Copyright @ 2024 啦啦收录网 此内容系本站根据来路自动抓取的结果,不代表本站赞成被显示网站的内容或立场。
你是本站第位访客 | 网站地图 | 粤ICP备2022150304号