分类
最受外汇投资者欢迎的货币对

区块链 1000 问

2016 年七月份的奖励为12.5 比特币,2020 年达到 210000 区块时,将再次减半

区块链主流开源技术体系介绍

fabric架构核心逻辑有三条:Membership、Blockchain和Chaincode。MembershipServices这项服务用来管理节点身份、隐私、保密性、可审计性。Blockchain services使用建立在HTTP/2上的P2P协议来管理分布式账本,提供最有效的哈希算法来维护区块链世界状态的副本。采取可插拔的方式来根据具体需求来设置共识协议,比如PBFT,Raft,PoW和PoS等等,IBM首选PBFT算法。Chaincode services 会提供一种安全且轻量级的沙盒运行模式,来在VP节点上执行chaincode逻辑,类似以太坊的EVM虚拟机及其他上面运行的智能合约。

区块链技术面试常被问到的Hyberledger Fabric关键概念

Chaincode应用编码了在channel上执行特定类型交易的逻辑。Chaincode定义资产所有权变更的参数,例如,确保转让所有权的所有交易都遵守相同的规则和要求。System chaincode 是定义了整个channel操作参数的chaincode。生命周期和配置system chaincode定义channle的规则;背书和验证system chaincode定义了背书和验证交易的需求。

  • Modular design 模块化设计

Hyperledger Fabric实现了模块化设计,网络设计者能根据需求选择功能。比如特定的识别、共识、加密算法可以插入任何 fabric网络。因此,其是一个任何行业和公共领域都可以使用的通用区块链架构,保证其网络可以跨市场、监管和地理边境进行互操作。相比之下,其他竞争对手大多是受限于特定领域和行业的。

###Fabric 模型

Chaincode 是定义资产和修改资产的交易指令的软件。也就是说,它就是业务逻辑。chaincode执行读取和修改键值对和其它状态数据库信息的规则。chaincode 函数基于帐本当前状态数据库执行,通过交易提案初始化。chaincode 执行结果是一系列键值对写入,其被提交到网络并被所有peer节点的帐本记录。

  • Ledger Features 帐本特性
  • 检索和更新账本使用基于key查找、范围检索和组合key检索
  • 只读检索使用富检索语言(如果使用 CouchDB 作为状态数据库)
  • 只读历史检索 - 检索一个key的账本历史,可以查看数据来源(enabling data provenance scenarios)
  • 区块链 1000 问
  • 交易由各版本的键值对组成,chaincode (读集合)读取的和chaincode写入的(写集合)
  • 交易包括每个背书peer的签名,提交到ordering服务
  • 交易被ordered(排序?共识)进区块,从ordering服务发布到channel的peer节点中
  • peer节点根据背书策略验证交易并执行策略
  • 在添加新块之前,将执行版本检查来保证资产的状态从chaincode执行时刻开始没有被改变
  • 一旦交易被验证和提交就不可以被改变
  • 一个channel的帐本包括了配置区块,其定义了策略、访问控制列表和其它相关信息
  • channel 包括成员服务提供者实例允许从不同证书机构加密材料。阅读帐本主题,深入了解数据库、存储结构和"检索能力".
  • Privacy through Channels 跨通道隐私

Fabric 实现了基于每个channel的不可变帐本,同时chaincode可以操作和修改资产的当前状态(比如,更新键值对)。一个账本存在于一个channel范围 - 它可以被整个网络共享(假设每个参与者都在一个共同的channel内操作) - 或者可以私有给有一组特定的参与者。

  • Security & Membership Services 安全和成员服务

Hyperledger Fabric 加强了交易网络,所有参与者都有已知的身份。公钥基础设施用来生成与组织,网络组件以及最终用户或客户端应用程序相关联的加密证书。因此,数据访问控制可以在网络和channel层面进行操作和管理。Fabric的“许可”概念,加上channel的存在和功能,有助于解决隐私和机密性至关重要的场景。

参看 Fabric CA章节来更好的理解加密的实现,以及在Fabric中的签名、证明、验证实现。

相关文章和视频推荐

圆方圆学院汇集大批区块链名师,打造精品的区块链技术课程。 在各大平台都长期有优质免费公开课,欢迎报名收看。

区块链-将交易打包到新区快

朝歌1122 于 2019-05-24 09:41:54 发布 2764 收藏 4

打包交易至区块

验证交易后,比特币节点会将这些交易添加到自己的内存池中。 内存池也称作交易池,用来暂存尚未被加入到区块的交 易记录。节点会收集、验证并传递新的交易。

节点立刻构建一个新的空区块,做为下一个区块的候选区块。称作候选区块是因为它还没有包含有效的工作量证明,不是一个有效的区块,而只有在矿工成功找到一个工作量证明解之后,这个区块才生效。

创币交易

节点会创建“向矿工的地址支付12.5个比特币”(假此时的矿工费是这么多)这样一个交易,把生成交易的奖励发送到自己的钱包。挖出区块获得的奖励金额是 coinbase 奖励(12.5个全新的比特币)和区块中全部交易矿工费的总和。

2016 年七月份的奖励为12.5 比特币,2020 年达到 210000 区块时,将再次减半

与常规交易不同,创币交易没有输入,不消耗UTXO。它只包含一个被称作coinbase的输入,仅仅用来创建新的比特币。创币交易有一个输出,支付到这个矿工的比特币地址。创币交易的输出将这12.5个比特币发送到矿工的比特币地址。

Coinbase奖励与矿工费

Total Fees = Sum(Inputs) - Sum(Outputs)

紧接着,节点计算出这个新区块正确的奖励额。奖励额的计算是基于区块高度的,以每个区块50个比特币为开始,每产生 210,000 个区块减半一次。所以当前正确的奖励额是12个比特币。

如果挖矿节点把coinbase交易写入区块,那么如何防止挖矿节点奖励自己100甚至1000比特币? 答案是,不正确的奖励将被其他人视为无效,浪费了用于工作证明的投入。 只有这个区块被大家认可,才能得到报酬。

创币交易的结构

在 Coinbase交易中,“区块链 1000 问 交易哈希”字段32个字节全部填充 0,“交易输出索引”字段全部填充 0xFF(十进制的 区块链 1000 问 255),这两个字段的值表示不引用UTXO。“解锁脚本”由coinbase数据代替,数据可以由矿工自定义。

Coinbase 数据

​ 创币交易不包含“解锁脚本“(又称作 scriptSig)字段,这个字段被 coinbase 数据替代,长度最小2字节,最大 100 字节。除 了开始的几个字节外,矿工可以任意使用coinbase的其他部分,随意填充任何数据。

以创世块为例,中本聪填入了这样的数据“TheTimes 03/Jan/2009Chancelloronbrinkofsecondbailoutforbanks“(泰晤士报 2009年1月3日财政大臣将再次对银行施以援手),表示对日期的证明,同时也表达了对银行系统的不信任。现在,矿工使用 coinbase数据实现extranonce功能,并嵌入字符串来标识挖出它的矿池。

coinbase 前几个字节也曾是可以任意填写的,不过在后来的第34号比特币改进提 议(BIP34)中规定了版本2的区块(版本字段为2的区块),这个区块的高度必须跟在脚本操作“push“之后,填充在coinbase字段的起始处。

重新认识区块链:1550余个应用案例带来的启示


Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.