fabric执行以太坊合约
『壹』 智能合约怎么部署到fabric中 超级账本
通过SDK或者API,目前建议你用nodejs版本的sdk,里面提供安装、初始化、实例化等一系列rest 接口
『贰』 学习区块链开发是学习go语言、hyper ledger fabric比较好、还是以太坊智能合约比较好或者公链开发
Go全栈+区块链课程:
一共22周,分为5个阶段,
第一阶段4周 go语言基础与网络并发 ,学完入门go语言,
第二阶段 4周 go语言实战web开发,爬虫开发,密码学,共识算法,实现轻量级公链,学完可以开发golang的网站,爬虫,实现轻量级区块链
第三阶段 4周 以太坊源码分析与智能合约Dapp开发,学完掌握以太坊核心与开发智能合约,以及区块链,
第四阶段 4周 超级账本,比特币 EOS,源码分析与智能合约实战,学完以后掌握超级账本开发,山寨比特币,分叉EOS,以及智能合约Dapp开发
第五阶段 6周 项目实战 ,实战5个企业级项目,学完可以拥有1年区块链项目经验
从语言本身特点来看,Go 是一种非常高效的语言,高度支持并发性,Go 语言的本身,它更注重的是分布式系统,并发处理相对还是不错的,比如广告和搜索,那种高并发的服务器。
Go语言优点:
性能优秀,可直接编译成机器码,不依赖其他库,Go 极其地快。其性能与 Java 或 C++相似。
语言层面支持并发,这个就是Go最大的特色,天生的支持并发,Go就是基因里面支持的并发,可以充分的利用多核,很容易的使用并发。
内置runtime,支持垃圾回收,这属于动态语言的特性之一吧,虽然目前来说GC不算完美,但是足以应付我们所能遇到的大多数情况,特别是Go1.1之后的GC。
简单易学,Go语言的作者都有C的基因,那么Go自然而然就有了C的基因,那么Go关键字是25个,但是表达能力很强大,几乎支持大多数你在其他语言见过的特性:继承、重载、对象等。
丰富的标准库,Go目前已经内置了大量的库,特别是网络库非常强大,我最爱的也是这部分。
内置强大的工具,Go语言里面内置了很多工具链,最好的应该是gofmt工具,自动化格式化代码,能够让团队review变得如此的简单,代码格式一模一样,想不一样都很困难。
跨平台编译,快速编译,相较于 Java 和 C++呆滞的编译速度,Go 的快速编译时间是一个主要的效率优势
Go语言缺点:
软件包管理:Go 语言的软件包管理绝对不是完美的。默认情况下,它没有办法制定特定版本的依赖库,也无法创建可复写的 builds。相比之下 Python、Node 和 Ruby 都有更好的软件包管理系统。然而通过正确的工具,Go 语言的软件包管理也可以表现得不错。
缺少开发框架:Go 语言没有一个主要的框架,如 Ruby 的 Rails 框架、Python 的 Django 框架或 PHP 的 Laravel。这是 Go 语言社区激烈讨论的问题,因为许多人认为我们不应该从使用框架开始。在很多案例情况中确实如此,但如果只是希望构建一个简单的 CRUD API,那么使用 Django/DJRF、Rails Laravel 或 Phoenix 将简单地多。
异常错误处理:Go 语言通过函数和预期的调用代码简单地返回错误(或返回调用堆栈)而帮助开发者处理编译报错。虽然这种方法是有效的,但很容易丢失错误发生的范围,因此我们也很难向用户提供有意义的错误信息。错误包(errors package)可以允许我们添加返回错误的上下文和堆栈追踪而解决该问题。
另一个问题是我们可能会忘记处理报错。诸如 errcheck 和 megacheck 等静态分析工具可以避免出现这些失误。虽然这些解决方案十分有效,但可能并不是那么正确的方法。
『叁』 区块链平台有哪些
区块链平台,是要看区块链资讯的吗,这里安利个 密码财经,一般链圈币圈dapp等信息都能看到。
『肆』 如何创建属于自己的 fabric 区块链
这个是需要借助平台进行创建。
IBM中国研究院开发的超能云(SuperVessel)平台提供了给区块链爱好者、开发者的区块链开发测试环境。通过该平台,用户能够免费、超快速创建基于Hyperledger Fabric的多节点区块链、并在自己的链上花式玩转智能合约。
当然,国外的去中心化内容分享平台DECENT也是可以创建的。
『伍』 公有链的安全主要由什么等方式负责维护
公有链:是指全世界任何人都可以随时进入到系统中读取数据、发送可确认交易、竞争记账的区块链。例如:比特币、以太坊。
私有链:是指其写入权限由某个组织和机构控制的区块链,参与节点的资格会被严格限制。
联盟链:是指有若干个机构共同参与管理的区块链,每个机构都运行着一个或多个节点,其中的数据只允许系统内不同的机构进行读写和发送交易,并且共同来记录交易数据。
联盟链是一种将区块链技术应用于企业的相对较新的方式。公有链向所有人都开放,而私有链通常只为一个企业提供服务,联盟链相对公链来说有更多限制,通常为多个企业之间的共同协作提供服务。
联盟链与公有链的不同之处在于,它是需要获得事先许可的。因此并不是所有拥有互联网连接的任何人都可以访问联盟区块链的。联盟链也可以描述为半去中心化的,对联盟链的控制权不授予单个实体,而是多个组织或个人。
对于联盟链,共识过程可能与公有链不同。联盟链的共识参与者可能是网络上的一组预先批准的节点,而不是任何人都可以参与该过程。联盟链允许对网络进行更大程度的控制。
那说到联盟链的优点:
首先,联盟链受一个特定群体的完全控制,但并不是垄断。当每个成员都同意时,这种控制可以建立自己的规则。
其次,具有更大的隐私性,因为来验证区块的信息不会向公众公开,只有联盟成员可以进行处理这些信息。它为平台客户创造了更大的信任度和信心。
最后,与公共区块链相比,联盟链没有交易费用,更灵活一些。公共区块链中大量的验证器导致同步和相互协议的麻烦。通常这种分歧会导致分叉,但联盟链不会出现这种状况。
联盟链技术可以用来优化大多数传统信息化系统的业务流程,特别适用于没有强力中心、多方协作、风险可控的业务场景。联盟链的共享账本机制可以极大降低该类场景下的对账成本、提高数据获取效率、增加容错能力、巩固信任基础、以及避免恶意造假。
随着区块链技术的不断发展,越来越多的机构与企业开始加大对区块链的研究与应用。相比公链而言,联盟链具有更好的落地性,受到了许多企业与政府的支持。
联盟链可以理解为是为了满足特定行业需求,内部机构建立起来的一种分布式账本。这个账本对内部机构是公开透明的,但如果有相关业务需求,对该账本的数据进行修改,则还是是需要智能合约的加入。
智能合约(Smart contract )是一种旨在以信息化方式传播、验证或执行合同的计算机协议。智能合约允许在没有第三方的情况下进行可信交易,这些交易可追踪且不可逆转。
总体来说,目前联盟链智能合约的主流架构是:系统合约 + 业务合约。
系统合约:在节点启动前配置完成,一般用于系统管理(如BCOS的预编译合约(权限管理、命名管理等),由项目方编写,安全性较高。
业务合约:根据实际业务编写而成,需要部署,类似公链智能合约,由一般内部机构参与方编写,需遵守一定的要求,安全性一般。
联盟链合约相较于常规公链在规范性、和安全性都有一定的提升,但在以下几个方面的安全性问题,仍可能存在安全风险:
(1)、代码语言安全特性
一种是继续沿用主流公链编程语言,并在其基础上改进(如:BCOS使用的solidity),另一种则是以通用编程语言为基础,指定对应的智能合约模块(如:fabric的Go/Java/Node.js),不管使用什么语言对智能合约进行编程,都存在其对应的语言以及相关合约标准的安全性问题。
(2)、合约执行所带来的安全性问题
整型溢出:不管使用的何种虚拟机执行合约,各类整数类型都存在对应的存储宽度,当试图保存超过该范围的数据时,有符号数就会发生整数溢出。
堆栈溢出:当定义方法参数和局部变量过多,字节过大,可能使程序出现错误。
拒绝服务攻击:主要涉及到的是执行合约需要消耗资源的联盟链,因资源耗尽而无法完成对应的交易。
(3)、系统机制导致的合约安全问题
这里主要是指多链架构的联盟链:
合约变量的生成如果依赖于不确定因素(如:本节点时间戳)或者某个未在账本中持久化的变量,那么可能会因为各节点该变量的读写集不一样,导致交易验证不通过。
全局变量不会保存在数据库中,而是存储于单个节点。因此,如果此类节点发生故障或重启时,可能会导致该全局变量值不再与其他节点保持一致,影响节点交易。因此,从数据库读取、写入或从合约返回的数据不应依赖于全局状态变量。
在多链结构下进行外部链的合约调用时,可能仅会得到被调用链码函数的返回结果,而不会在外部通道进行任何形式的交易提交。
合约访问外部资源时,可能会暴露合约未预期的安全隐患,影响链码业务逻辑。
(4)、业务安全问题
联盟链的智能合约是为了完成某项业务需求执行某项业务,因此在业务逻辑和业务实现上仍是可能存在安全风险的,如:函数权限失配、输入参数不合理、异常处理不到位。
我们对联盟链安全的建议:
(1)、简化智能合约的设计,做到功能与安全的平衡
(2)、严格执行智能合约代码审计(自评/项目组review/三方审计)
(3)、强化对智能合约开发者的安全培训
(4)、在区块链应用落地上,需要逐步推进,从简单到复杂,在此过程中不断梳理合约与平台相关功能/安全属性
(5)、考虑DevSecOps(Development+Security+Operations)的思想
链平台安全包括:交易安全、共识安全、账户安全、合规性、RPC安全、端点安全、P2P安全等。
黑客攻击联盟链的手法包括:内部威胁、DNS攻击、MSP攻击、51%的攻击等。
以MSP攻击为例:MSP是Fabric联盟链中的成员服务提供商(Membership Service Provider)的简称,是一个提供抽象化成员操作框架的组件,MSP将颁发与校验证书,以及用户认证背后的所有密码学机制与协议都抽象了出来。一个MSP可以自己定义身份,以及身份的管理(身份验证)与认证(生成与验证签名)规则。
针对MSP的攻击,一般来说,可能存在如下几个方面:
(1)、内部威胁:a)当前版本的MSP允许单个证书控制,也就是说,如果某个内部人员持有了可以管理MSP的证书,他将可以对Fabric网络进行配置,比如添加或撤消访问权限,向CRL添加身份(本质上是列入黑名单的身份),过于中心化的管理可能导致安全隐患。 b)如果有传感器等物联网设备接入联盟链,其可能传播虚假信息到链上,并且因为传感器自身可能不支持完善的安全防护,可能导致进一步的攻击。
(2)、私钥泄露,节点或者传感器的证书文件一般存储在本地,可能导致私钥泄漏,进而导致女巫攻击、云中间人攻击(Man-in-the-Cloud attack)等
(3)、DNS攻击:当创建新参与者的身份并将其添加到MSP时,在任何情况下都可能发生DNS攻击。向区块链成员创建证书的过程在许多地方都可能发生攻击,例如中间人攻击,缓存中毒,DDOS。攻击者可以将简单的DNS查询转换为更大的有效载荷,从而引起DDoS攻击。与CA攻击类似,这种攻击导致证书篡改和/或窃取,例如某些区块链成员将拥有的权限和访问权限。传感器网络特别容易受到DDOS攻击。智慧城市不仅面临着实施针对DDOS攻击的弱点的传感器网络,而且面临着弱点的伴随的区块链系统的挑战。
(4)、CA攻击:数字证书和身份对于MSP的运行至关重要。Hyperledger Fabric允许用户选择如何运行证书颁发机构并生成加密材料。选项包括Fabric CA,由Hyperledger Fabric,Cryptogen的贡献者构建的过程,以及自己的/第三方CA。这些CA本身的实现都有其自身的缺陷。 Cryptogen在一个集中的位置生成所有私钥,然后由用户将其充分安全地复制到适当的主机和容器中。通过在一个地方提供所有私钥,这有助于私钥泄露攻击。除了实现方面的弱点之外,MSP的整体以及因此区块链的成员资格都在CA上运行,并且具有信任证书有效的能力,并且证书所有者就是他们所说的身份。对知名第三方CA的攻击如果成功执行,则可能会损害MSP的安全性,从而导致伪造的身份。Hyperledger Fabric中CA的另一个弱点是它们在MSP中的实现方式。 MSP至少需要一个根CA,并且可以根据需要支持作为根CA和中间CA。如果根CA证书被攻击,则会影响所有根证书签发的证书。
成都链安已经推出了联盟链安全解决方案,随着联盟链生态的发展,2020年成都链安已配合多省网信办对当地政企事业单位的联盟链系统进行了从链底层到应用层多级安全审计,发现多场景多应用多形态的联盟链系统及其配套系统的漏洞和脆弱点。
并且,成都链安已与蚂蚁区块链开展了合作,作为蚂蚁区块链优选的首批节点加入开放联盟链,我们将发挥安全技术、服务、市场优势,与开放联盟链共拓市场、共建生态、并为生态做好安全保驾护航。
一方面我们的智能合约形式化验证产品VaaS将持续为开放联盟链应用提供『军事级』的安全检测服务,为应用上线前做好安全检测,预防其发生安全和逻辑错误;我们的『鹰眼』安全态势感知系统采用AI+大数据技术,为开放联盟链及其应用提供全面及时的『安全+运营』态势感知、链上合约风险监测、安全预警、报警、防火墙阻断及实时响应处理能力。
另一方面,我们的安全产品已经积累了数十万的客户群体,我们将发挥我们的全球客户资源和市场优势,与开放联盟链共拓市场。
在联盟链平台上,我们能提供全生命周期的整体安全解决方案,成都链安以网络安全、形式化验证、人工智能和大数据分析四大技术为核心,打造了面向区块链全生态安全的『Beosin一站式区块链安全服务平台』。
『Beosin一站式区块链安全服务平台』包含四大核心安全产品和八大明星安全服务,为区块链企业提供安全审计、虚拟资产追溯与AML反洗钱、安全防护、威胁情报、安全咨询和应急等全方位的安全服务与支持,实现区块链系统『研发→运行→监管』全生命周期的安全解决方案。
我们会积极发挥区块链安全头部企业优势,共同构建安全的区块链商业网络,推动区块链产业健康、安全的发展,探索区块链未来的无限可能。
『陆』 区块链应用开发实例有哪些
政府管理
一些国家对去中心化数据管理框架来存储公共数据的区块链技术表示出了极大兴趣,就如Essentia公司正在与芬兰农业生产者和林主联合会(Central Union of Agricultural Procers and Forest Owners)试点开发一个电子政务项目,该项目将应用区块链技术使芬兰各地的城乡居民能查询各种记录,充分满足居民和雇主需求,提高就业率。另外,利用该技术,还能提高政府运转效率,让居民能方便地查询教育、公共记录和投票等各种信息。
废物回收
例如,中国的某智能废物管理系统就采用了Waltonchain公司的RFID技术,利用Waltonchain的这种区块链应用,能够有效监督废物水平,以提高管理运营效率和资源优化。
身份识别
素有 “加密谷” 之称的瑞士城市楚格已经和合作公司Uport利用区块链技术开发了一套身份认证系统,通过该身份认证系统,公民能很好地参与在线投票和进行居住证明。
边境管制
EssenTIa公司一直在与荷兰政府接洽,希望利用自己的区块链技术为荷兰政府建立一套边境查验系统,来审查往返阿姆斯特丹和伦敦的乘客。目前,两国间欧洲之星高铁乘客需要在多个地点接受边境管制检查。EssenTIa正在研究一种基于区块链的解决方案,该解决方案将安全地存储乘客数据,使得荷兰方面的查验记录也能够被英国的边境机构审查到。区块链技术将确保数据没有被篡改,并且是可核实的准确数据。
健康医疗
众所周知,医疗记录非常分散而且容易出错,不一致的数据处理流程会让医院和诊所经常被迫处理一些不正确或不完整的患者记录。而像美国麻省理工大学研发的区块链电子病历系统MedRec,就是使用区块链技术来促进数据共享,同时,它也能提供认证和保密服务。
企业管理
作为微软Azure应用的企业客户,他们可以利用区块链即服务(BaaS),这将使企业能够在安全的托管环境中访问智能合约和区块链应用。另据媒体报道,Google也在开发一个专有的区块链项目,用它来支持其基于云的业务。而谷歌的母公司Alphabet正在开发一个分布式记帐项目,第三方将能够使用项目来存储谷歌云服务的相关数据。
医学数据
将病人记录数字化的医疗中心不会在多个设备之间存储数据,通常都是将数据统一保存在集中的服务器上,而这就成了黑客的主要攻击目标,英国国家医疗中心NHS医院遭受的Wannacry攻击就证明了这一点。但除此这外,即使忽略了安全风险,仍然存在碎片化的问题。目前,在全球不同城市的医院,有50多种不同的电子医疗记录系统(eHR)在运转,通常在同一个城市中也会存在数十种不同的医疗应用系统。这些相互独立的系统不能执行互操作调取,病人在各个医院的数据最终只能分散在不同的数据存储中心。
在病人生死攸关情形下,可靠医疗数据的对比缺乏和缓慢的运行效率将会是致命的,EssenTIa公司的应用框架通过使用基于区块链的系统来解决所有这些问题,该系统将会存储病人临床相关的所有数据,无论地理边界如何,都可以立即访问获取到这些数据。在该系统中,患者的病历隐私也能得到保护,只有经过医学授权的人才可以在特定时间段进行访问。
音乐制作
区块链技术的主要好处之一就是它消除了不必要的中间商或中间人,音乐行业就是一个典型的例子,在这个行业中,如果艺术家的效率低下就会直接导致他们获得的报酬很低。此时,一些基于区块链的项目就涌现出来,致力为音乐创作者寻求更公平的交易和商业环境,像前枪炮玫瑰乐队鼓手马特·索伦担任总监的Artbit公司。
碳补偿
作为一个高度工业化的国家,中国的环境改变是巨大的。2017年3月,IBM与能源区块链实验室(Energy-Blockchain Labs)联合推出了Hyperledger Fabric区块链项目,用它来对中国的碳资产进行发现,这不仅为跟踪碳排放创建了一个可衡量和可审计的系统,也为寻求抵消能源消耗同时激励绿色工业实践的公司提供了一个可交易的市场。
供应链管理
供应链管理被认为是应用区块链获益较好的案例之一,因为它非常适合于这种货物从发货到收货之间的快递运送或制造商到商店的整个过程。IBM和沃尔玛联手在中国发起了区块链食品安全联盟,该项目还与京东公司共同合作运行,目的旨在改善食品的运送跟踪和安全性保障,从而更容易对食品安全问题进行回溯。
事实证明,中国是区块链项目的成熟试验基地,另外它也是世界上第一个农产品(5.180, -0.25, -4.60%)区块链的所在地。世界知名食品贸易商路易·德雷福斯公司(Louis Dreyfus Co)与荷兰和法国银行合作建立了一个区块链技术项目,利用该项目技术,在向中国出售大豆的过程中,交易结算比传统方法更快。
钻石行业
世界上最著名的钻石公司德比尔斯集团(De Beers Group)拥有自己的区块链公司并已开始运营,其目的在于 “为平台上注册的每一颗钻石建立一个数字记录”。考虑到人们对钻石的来源、原产地道德标准,以及钻石质量的风险,区块链技术自然是一个很好的选择,因为它的每一个记录都是不可磨灭的,它将确保每一块钻石的自身电子数据和它本身一样长存。
不动产交易
目前来说,乌克兰是第一个利用区块链技术促进财产交易的国家。著名科技网站TechCrunch创始人兼加密货币玩家迈克尔·阿林顿就是通过以太坊区块链的智能合约,远程来对其基辅的一处房产进行购入转卖的,这项交易是由专业从事区块链房地产交易的初创公司Propy完成的。
渔业
区块链技术现在正被用来支持可持续渔业的发展。非法捕鱼是这个行业的一个普遍问题,区块链的分布式账本技术提供了一种对捕获来源、加工和出售方式的证明。这种“从渔网到餐桌”的供应链条允许检查员确定所捕获的鱼是否来自侵犯人权的地区,或是受经济制裁影响的国家。
艺术画作
与钻石交易类似,艺术品行业依赖于艺术品的出处和真实性,虽然区块链无法鉴定一幅画是原作还是赝品,但它可以用来证明这幅画的之前拥有人身份。此外,区块链技术现在也被用作一种艺术品获取的手段,它能使有形的物品便捷地在世界任何地方进行交易和交换,而不需从安全的存储地进行物理转移。
公共设施
在澳大利亚的弗里曼特尔市,一个致力于分布式能源和水系统管理的项目正在使用区块链技术,太阳能(3.340, -0.06, -1.76%)电池板正被用于阳光充足的地区,以获取电能,然后用于加热水和提供电力,所有这些能源转化和使用信息都会被记录在区块链数据中。
而在智利,其国家能源委员会已经开始使用区块链技术作为该国能源使用数据的验证,一些敏感数据将存储在区块链中,这种技术应用,算是这个南美国家电力基础设施现代化和安全运营的一种手段。
同性恋权利(LGBT Rights)
区块链有助于建设 “粉红经济”,也有助于LGBT社区在不透露人们身份的情况下争取属于他们自己的权利,这是一个极其重要的问题,因为社会对同性恋群体的歧视犯罪经常出现,尤其是在那些以侵犯人权而臭名昭著的国家,同性恋是违法的,或者至少是不被允许的。
巨灾债券(Catastrophe Bonds)
巨灾债券可能是地震、海啸和其他自然灾害受害者的唯一希望。区块链允许各方之间快速透明的和解,并能确保系统在无人操作下也能正常继续运行,区块链现在已经成功地用于巨灾债券的结算机制中。
旅游业
夏威夷当地机构正在研究如何利用区块链技术来改善经济,例如开通比特币和其他货币支付手段,方便游客对当地商品和服务费用的交易。利用这种方式,夏威夷政府希望大力吸引游客,特别是来自亚洲的游客,来当地花更多的钱,提升夏威夷的经济发展。
国土安全
2016年,美国国土安全部( DHS )宣布了一个项目,该项目将利用区块链技术作为安全存储和捕获数据传输的手段。DHS采用Factom公司的区块链技术,加密存储安全摄像头和其他传感器捕获的数据,这种区块链技术的应用,将大大降低数据泄露的风险。目前,该项目仍在进行中。
航海运输
区块链用于记录船舶运输数据的好处不言而喻,目前,一些地方的船运项目已经了采用分布式账本技术,在海运物流行业中,区块链技术可以让国际贸易中那些不可避免的繁琐管理程序更加透明有序。全球最大的海运商之一 Maersk 是利用区块链的先驱,如今,以星国际航运公司 ZIM 也已对区块链技术进行跟进利用。
『柒』 以太坊架构是怎么样的
以太坊最上层的是DApp。它通过Web3.js和智能合约层进行交换。所有的智能合约都运行在EVM(以太坊虚拟机)上,并会用到RPC的调用。在EVM和RPC下面是以太坊的四大核心内容,包括:blockChain, 共识算法,挖矿以及网络层。除了DApp外,其他的所有部分都在以太坊的客户端里,目前最流行的以太坊客户端就是Geth(Go-Ethereum)