- 博客(197)
- 收藏
- 关注
转载 BSN-DID研究--主题二:发证方函数
本文开始对帮助手册的API进行调用,分析具体的输入参数和返回结果。主题二包括注册发证方、查询发证方、注册凭证模板、查询凭证模板列表、查询凭证模板、更新凭证模板,主要是帮助手册的14.4.2 发证方。
2024-04-07 14:39:00
221
转载 Solidity案例详解(七)供应链金融合约
这张图需要解释一下:在对于银行的查询中,我们看到返回了一个字符串,一个地址,一个数字,两个数组,分别对应:银行名字、银行地址、银行账户余额,而两个数组一个为空,一个为1,这里的1不是receiptType,而是这笔交易的一个索引值,我们可以通过getReceipt查询这笔交易,因此,交易的索引出现在了银行的第一个数组内,数组的名称为:acceptReceiptIndex即为银行接受的交易,那么在getReceipt查询返回的两个数字中,哪个是receiptType呢?此时对两个公司,以及交易索引3查询。
2024-03-25 17:29:45
288
转载 Solidity案例详解(五)服务评价合约
有服务提供商和用户两类实体,其中服务提供商部署合约,默认诚信为true,用户负责使用智能合约接受服务及评价,服务提供商的评价信息存储在一个映射中,可以根据服务提 供商的地址来查找评价信息。用户评价信息, 服务提供商的评价信息会随之更新。服务提供商查询自己的总评分,评价次数以及所有用户评价内容使用了Solidity语言提供的abi.encodeWithSignature函数 将评价信息打包成交易。1.合约的构造函数在合约部署时执行,将合约创建者的地址设为服务提供商的地址,并将其默认标记为可信。
2024-03-12 11:47:15
198
转载 Solidity案例详解(四)投票智能合约
接收一个包含初始选民地址的数组,将这些地址添加到 eligibleVoters 映射中,表示这些地址是合适的选民。计算赞成票的百分比,并判断提案是否通过,然后更新提案的状态并触发相应的事件。只有合适的选民才能投票,且投票时间必须在提案截止时间之前。投票结果存储在 votes 映射中,并更新提案的赞成和反对数量。该函数创建一个新的提案对象,将其存储在 proposals 映射中。在⼀定时间能进⾏投票超过时间投票截⽌,并投赞同票超过50%则为通过。提案编号、提案时间、提案内容、提案⼈、提案截⽌时间、结果等。
2024-03-01 11:19:38
460
转载 Solidity案例详解(三)飞机管理合约
原文链接:https://blog.csdn.net/2302_77339802/article/details/131834020。构造一个合约内部删除函数(_removeairlineV)和用户自行退出函(renounceairlineV)构造两个添加航空公司的函数,用于合约内部调用(_addairlineV)和外部调用(addairlineV)版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。isairlineV进行判断账号是否为航空公司身份。
2024-02-26 11:34:47
195
原创 eosio.token 智能合约介绍
accounts表的范围是一个eosio帐户,它根据代币的符号对行进行索引。eosio.token系统合约定义了允许用户为基于EOSIO的区块链创建、发行和管理代币的结构和操作,它演示了一种实现允许创建和管理代币的智能合约的方法。本文详细介绍了eosio.token系统合约并在本地测试链上实际发行了代币进行演示,适用于EOS智能合约的初级开发人员,熟悉如何进行代币的创建、发行和转移。因此,当查询stats表中的代币符号时,如果查询的符号代币先前已创建,则结果是对应于查询符号代币的单个条目/行,否则为空。
2024-02-04 10:10:41
1788
2
原创 EOS系统合约总体介绍
一旦提案达到指定的授权阈值,可由任何授权账户执行提案,若提案未达到预设的批准阈值,则无法执行,同时,被调用的合约会对调用者的权限进行验证,以确保只有具备相应权限的账户才能成功执行操作,执行成功后,执行模块会对涉及的账户、数据和状态进行相应的更新,同时,提案将被标记为已完成,并从待执行列表中移除。eosio.token合约提供了发行(issue)代币的操作,允许授权账户发行额定数量的代币到指定账户,同时,发行操作需要指定接收代币的账户、发行的数量、代币符号等参数。这些权限控制着系统账户的操作范围和能力。
2024-01-26 14:27:09
1348
转载 Solidity之旅(十八)内联汇编 [inline assembly]
既然Solidity可以编写出优秀的智能合约,那为什么还要使用低级的汇编语言呢?
2024-01-12 16:58:25
258
转载 Solidity之旅十七-库 [library]
虽然Solidity中的library看起来和合约(contract)有些类似,但它并不是一个合约,它包含了可能多个消费者合约共有的功能,这有助于避免冗余。
2024-01-05 11:14:24
197
转载 Solidity之旅(十六)Constant 和 Immutable状态变量
我们知道常量值是在编译时确定的,所以区块数据(例如 block.timestamp, address(this).balance 或者 block.number)或执行数据( msg.value 或 gasleft() )或对外部合约的调用来给它们赋值都是不允许的。编译器生成的合约创建代码将在返回合约之前修改合约的运行时代码,方法是将对不可变量的所有引用替换为分配给它们的值。假若将状态变量(State Vriable)声明为constant(常量),而它的值是在编译时有确定的表达式来给它赋值。
2023-12-29 15:42:49
269
转载 Solidity之旅(十三)函数及其可见性和状态可变性
对于函数可见性这一概念,有过现代编程语言的经历大都知晓,诸如,public(公开的)、private(私有的)、protected(受保护的)用来修饰函数的可见性,Java、PHP`等便是使用这些关键字来修饰函数的可见性。在Solidity0.7.0版本之后,便可以将函数定义在合约之外,我们称这种函数为“自由函数”,其函数可见性始终隐式地为internal,它们的代码包含在所有调用它们的合约中,类似于后续会讲到的库函数。如果在一个对合约调用中,没有其他函数与给定的函数标识符匹配,fallback会被调用。
2023-12-21 16:05:50
329
转载 Solidity之旅(十)OOP-抽象合约
当然咯,前文说到继承提到的,派生合约未能给其基合约的构造函数传递指定参数,这时,该合约便只能声明为抽象的。前文在讲合约继承的基类构造函数的参数时,有提到抽象合约,也就是说,如果派生合约未能给其继承的基合约指定构造函数参数时,那么,该派生合约必须声明为抽象合约(abstractcontract)。若派生合约继承自抽象合约,而并没有去实现抽象合约中的抽象函数,那么,该合约依然需要标记为抽象(abstract)的。假使派生合约未能给定所有基类的制定参数(基类构造函数的参数),那该合约也必须声明为抽象的。
2023-12-14 16:12:38
213
转载 分布式数字身份DID简介(五)DID的应用
而如果该用户又去另一个互联网金融的APP里面,又得再次进行相关的验证,非常的麻烦。使用DID的APP与传统的微信扫码登录不同之处就在于DID中用户的身份信息是用户自己掌握的,而微信扫码登录的身份信息是腾讯掌握的,如果哪一天腾讯封禁了你的微信账号,那么你将无法登录所有之前使用微信登录的网站。另外还有进一步的一种叫PDC(个人数据中心)的方案,个人数据都加密保存在个人的数据中心中并与个人的DID关联,每个人对自己的数据负责,当需要获取用户的某些隐私数据时,需要该DID的授权才能解密访问。
2023-11-30 15:38:41
520
转载 分布式数字身份DID简介(二)一个完整的DID使用流程
小明要想获得学校颁发的毕业证,那么他必须要有自己的DID,所以他先下载一个数字身份的手机APP,然后创建账号。以上只是简化版的DID从生成到申请VC再到验证VP的过程,实际生产过程中还涉及到更多的关于双方系统的校验,防止身份被冒充,系统呗攻击等细节的考虑,都没有讲到,下一节,我们将讲到DID中的选择性披露和隐私保护的方法。验证VP是小明提交的,验证VC是UESTC颁发的,验证UESTC的DID是MOE创建的,而MOE是在验证方系统可信列表中的,所以整个就保证了小明提交的证书的可信。
2023-11-23 14:41:17
576
原创 中移链共识机制介绍
中移链是在满足我国信息化监管需求、合规可控的前提下,打造的中国移动区块链服务平台。其中,共识机制是确保区块链安全、稳定的核心机制。不同于传统中心化系统,区块链的共识是指网络中所有节点对交易有效性和顺序达成一致的过程,共识能确保节点交易状态的统一。缺乏共识会使区块链失去可靠性和防篡改特性。中移链使用DPoS(委托权益证明)共识算法来选出活跃的生产者,结合aBFT(异步拜占庭容错)共识算法进行快速的交易确认,确保网络连续性和更快的交易速度,保证了区块链系统安全高效。
2023-11-16 13:14:10
430
1
转载 区块链技术之共识机制
共识机制是区块链节点(运行区块链并保存所有交易记录的计算机)如何可靠地达成此协议的标准化方式,取代了很多人工验证者和审计,加密货币、区块链和分布式账本受益匪浅。
2023-11-09 13:52:49
275
原创 中移链浏览器简介
中移链浏览器就是中移链重要的信息窗口与“搜索引擎”,可以提供数据实时透明更新、直观的趋势分析展示、简明的交易可视化展示等优质的区块链服务,为内外部用户提供区块交易数据用户按需浏览统计与快速接入查询能力支持,为BSN中移链公开透明提供了见证场所。
2023-10-31 11:31:06
245
转载 分布式数字身份DID简介(一)基本概念
Public Key Infrastructure的缩写,翻译过来就是公钥基础设施,其主要功能是绑定证书持有者的身份和相关的密钥对(通过为公钥及相关的用户身份信息签发数字证书),为用户提供方便的证书申请、证书作废、证书获取、证书状态查询的途径,并利用数字证书及相关的各种服务(证书发布,黑名单发布,时间戳服务等)实现通信中各实体的身份认证、完整性、抗抵赖性和保密性。主要载体是X509格式的证书文件。因为VC中具有用户的隐私信息,所以VC一般保存在私有的存储中,比如用户自己的手机中,或者需要授权的网络地址中。
2023-10-26 14:10:35
1253
转载 区块链支持物联网的4种方式
然而,物联网传感器与区块链技术的结合,使信息能够在整个生态系统中更安全地共享,通过一个不可变且防黑客的账本向供应链中的所有相关方提供准确的信息。自2017年的“炒作期”以来,区块链技术一直在稳步成熟,现在已经达到了可以与物联网协同工作的地步,创造出难以置信的安全、可扩展和高效的网络来支撑物联网设备,以解决其诸多相关挑战。两者都涉及一个连接的网络,因此本质上是互补的,区块链提供的安全性和透明度是物联网目前面临的许多问题的关键。这意味着,在智慧城市中,利用安全的区块链基础的物联网网络将明显更安全、更有弹性。
2023-10-19 15:43:16
210
转载 FISCO BCOS | 构建第一个区块链应用程序
最后,我们介绍一个应用模块实现,即通过我们提供的Java SDK实现对区块链上合约的调用访问。当业务合约需要操作CRUD接口时,需要引入接口合约文件。在区块链上开发应用时,为了结合业务需求,首先需要设计相应的智能合约,确定合约需要的存储数据,并在此基础上确定智能合约提供的接口。初始化代码的主要功能是构造Web3j和凭证的对象,在创建相应的合约类对象(调用合约类的部署或加载函数)时需要使用这些对象。AssetClient.java:合约的部署和调用是通过调用来实现的,路径、初始化和调用过程都在这个类中。
2023-10-12 13:32:17
185
原创 EOS系统合约链账户介绍
EOS账户是存储在区块链中的可读标识符。由权限配置决定,该账户是个人授权还是多人授权拥有。EOS账户有12个字符的限制(允许字符a~z、1~5),该字符由64位整数的base-32编码衍生而来。EOS短账户是通过账户之间竞拍购买得到的账户,如:com、a等,短账户非常稀少。由竞拍获得的短账户创建的二级账户也是短账户,类似于网站域名,比如:com账户可以创建a.com、1.com等子账户。短账户可以参与账户竞拍获得,但是拍卖成交价一般在数千到数万EOS不等。
2023-09-28 15:17:05
164
原创 中移链交易模块介绍
中移链的交易的整个生命周期,包括用户创建事务对象、签名交易、交易广播、验证、检查交易有效性和资源是否充足、添加交易到挂起事务池、区块生成和确认、交易执行和区块链状态更新、通知用户交易完成以及将事务添加到相关账户的事务历史记录等漫长的过程。安全性:中移链的交易模块采用了先进的加密技术和安全机制,通过数字签名和哈希函数来保护交易的完整性,哈希函数将交易数据转换为固定长度的哈希值,任何对数据的修改都会导致不同的哈希值。2.签名:交易事务需要被有效签名,以证明事务是由被授权的账户发起的,并确保事务的完整性。
2023-09-21 11:06:50
201
原创 智能合约编写高级篇(二)区块哈希介绍
(一)哈希算法哈希算法是可以将任意长度的二进制数据映射为固定长度二进制数据(哈希值)的一种算法。在这个过程中,哈希函数将输入数据通过一系列的复杂运算变换成固定长度的输出,这个值等同于存放数据的地址,这个地址里面再将输入的数据进行存储,所以哈希函数可以将互联网上的数据以固定长度字符串的形式来保存。同时,哈希函数可以用于密码学、数据完整性验证、信息指纹等领域,常见的哈希算法有MD5、SHA-1、SHA-256等。(二)区块哈希区块哈希是通过哈希算法对区块中的所有数据进行计算得出的固定长度的字符串。
2023-09-07 13:19:13
1167
原创 区块链上地址与银行账户有什么区别?
就如同一个人高矮胖瘦、兴趣爱好等个人特征一样,地址标签也是区块链地址的特征表达,让普通人也能看懂地址背后的各种信息。但这种匿名且低门槛的地址体系也为区块链生态带来了风险与挑战:1个人可以肆意生成数以万计的区块链地址,然后借助区块链网络和其他增强隐私技术,就可以将这些地址用于接收和处理欺诈、传销等非法活动中产生的资金,使其在链上世界难以被追踪和调查。机构用户可以根据自身的实际诉求和合规需要,自定设定区块链地址的风险评分维度及命中规则,在保证风控和合规的同时,保证用户的使用体验和风险评分规则的可解释性。
2023-08-24 14:58:59
1791
原创 BSN“五、十、百”工程实施半年成果丰硕,助力数字化转型和高质量发展
2023年2月,在“第三届区块链服务网络(BSN)全球合作伙伴大会”上,国家信息中心、中国移动共同宣布实施BSN“五、十、百”工程,结合BSN城市算力中心和各地各领域专网建设,在五个部委、十个行业、一百个城市推进BSN在各个领域应用,着力推动BSN应用示范和市场推广。
2023-08-18 09:44:01
186
原创 Web3到底是个啥?
Web3是近两年来科技领域最火热的概念之一,但是目前对于Web3的定义却仍然没有形成标准答案,相当多对于Web3的理解,都是建立在虚拟货币行业(即俗称的“币圈”)的逻辑基础之上的。
2023-08-04 14:46:53
1792
原创 区块链服务网络的顶层设计与应用实践
日前,2023全球数字经济大会专题论坛:Web3.0发展趋势专题论坛暨2023区块链、元宇宙蓝皮书发布会在北京举行。本次论坛上隆重发布了《中国区块链发展报告(2023)》,对我国区块链行业在2022年的发展状况进行了总结梳理,针对区块链行业发展的焦点问题、核心技术以及未来趋势进行了精准解读,为进一步发挥区块链技术在促进我国数字经济发展中的重要作用提供了科学参考。BSN也参与了此次《中国区块链发展报告(2023)》的部分内容编写,论述了基于以区块链为代表的分布式技术,在构建公共IT系统(多方IT系统),继
2023-07-28 13:38:20
2062
原创 中移链与BSN分布式云管平台集成,共同构建专属协同体系
中移链OPB(OPB即开放联盟链,Open Permissioned Blockchain)与BSN基于BSN分布式云管平台,打造了中移链专属门户、中移链专属运营、中移链专属运维功能模块,在BSN分布式云管平台中构建专属于中移链的协同运作体系,为BSN分布式云管平台用户提供中移链服务。1、BSN分布式云管平台用户可在门户选择“中移链”进行链账户创建,智能合约创建,部署合约等操作,让用户在区块链上拥有自己的身份标识,创建自己的智能合约并将其部署到中移链上。
2023-07-21 13:58:23
428
原创 智能合约编写高级篇(一)获取区块时间
current_block_time()获取当前区块时间(block_timestamp类实例),并提供相关操作函数,next()获取下一个块的区块时间(block_timestamp类实例),通过转换成time_point实例转换成整型时间戳,进行业务运算或输出时间戳。current_time_point()直接获取当前区块时间的(time_point实例),可进行业务运算或输出时间戳,time_point实例可以通过block_timestamp类的构造函数转换成block_timestamp类实例。
2023-07-14 13:32:40
2044
2
原创 合约编写基础知识介绍基础篇
在执行这个action的时候,它会检查当前执行者是否拥有传入的user账户的权限,如果有,它会输出"Hello, "后面跟上user账户的名字,否则输出"This is not "后面跟上user账户的名字。合约定义了一个名为"hi"的action,它接受一个"name" ,里面只有一句打印的语句,任何用户都可以调用该action,相应的合约会打印Hello,用户名作为回应。在调用操作时,需要指定操作的名称、所属合约等参数,如果这些参数不正确,就有可能导致操作执行失败或者执行了不正确的操作。
2023-07-10 14:41:25
689
原创 eosio.system智能合约介绍 (三) 选举、投票、系统设置
每次单个节点领取(claim)时,能领取到的出块奖励数量计算公式如下:单个节点可领取的数量=出块奖励池里的EOS数量*该BP未领取奖励的出块数量/所有未领取奖励的区块数量。setalimits()方法调用set_resource_limits函数用来对一个用户的ram,net,cpu资源最大使用进行设置,该函数主要是在eosio.system系统合约中买卖内存,只允许合约账户本身调用,只能为已在用户资源表中的账户进行资源限制设置。目前,eos主网的值为3000,即cpu利用率为30%。
2023-07-04 14:14:13
556
原创 eosio.system智能合约介绍(二)系统资源
运行以下命令为testaccount1账户取消质押0.01 SYS的NET资源,其中eosio=为质押NET带宽支付0.01 SYS的账户,testaccount1=质押NET带宽的账户,0 SYS=为质押NET带宽分配的SYS代币数量,0.01 SYS=为质押CPU带宽分配的SYS代币数量,-p eosio@active=用于授权取消质押的权限,在本例中为active权限。窗口设置为24小时窗口。智能合约在区块链上存储数据的方式,类似于在数据库的操作,可以使用多索引表或单例将其存储在区块链的RAM中。
2023-06-25 13:36:51
259
原创 中移链链账户、合约与资源关系介绍
中移链链账户是在中移链区块链上注册的用户标识,每个账户可以持有一定数量的资源。CPU资源是账户用于执行智能合约的计算能力配额,决定了账户可以使用的CPU计算时间。
2023-06-25 13:26:27
641
原创 浅谈中移链中插件的功能及使用
中移链是在满足我国信息化监管需求、合规可控的前提下,打造的中国移动区块链服务平台。它允许使用插件来扩展其功能,以适应各种不同的使用场景。
2023-06-16 11:33:43
1088
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人