<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[wangzelong046的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/wangzelong046</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; wangzelong046]]></copyright><item><title><![CDATA[Go基础篇：RWMutex实现原理]]></title><link>https://blog.youkuaiyun.com/wangzelong046/article/details/136098937</link><guid>https://blog.youkuaiyun.com/wangzelong046/article/details/136098937</guid><author>wangzelong046</author><pubDate>Mon, 12 Feb 2024 00:43:43 +0800</pubDate><description><![CDATA[i++ { //10个Reader go func() { for { counter.Count() //计数器读操作 time.Sleep(time.Microsecond) } }() } for { //一个writer counter.Incr() //计数器写操作 time.Sleep(time.Second) } }在 Lock 方法中，先获取内部的互斥锁接着修改其他字段，但在 Unlock 中，却是先修改其他字段接着才会释放内部的互斥锁，这样才能保证字段的修改的同时会受到互斥锁的保护。]]></description><category></category></item><item><title><![CDATA[Gtihub不绑定手机号不用GooglePlay如何最快完成二次验证！]]></title><link>https://blog.youkuaiyun.com/wangzelong046/article/details/135953690</link><guid>https://blog.youkuaiyun.com/wangzelong046/article/details/135953690</guid><author>wangzelong046</author><pubDate>Wed, 31 Jan 2024 15:00:05 +0800</pubDate><description><![CDATA[对github有代码贡献的帐号要求进行2FA验证， 否则过期不能提交代码。

但是github手机短信验证不支持中国号码，剩下两种方式为：

 - totp应用
 -  浏览器扩展

因为本人手机无法使用google Play安装totp应用，这里介绍我正在使用的方式-浏览器扩展。]]></description><category></category></item><item><title><![CDATA[什么是区块链的层级结构]]></title><link>https://blog.youkuaiyun.com/wangzelong046/article/details/135941925</link><guid>https://blog.youkuaiyun.com/wangzelong046/article/details/135941925</guid><author>wangzelong046</author><pubDate>Tue, 30 Jan 2024 22:00:54 +0800</pubDate><description><![CDATA[近期年底，逐渐开始总结区块链相关内容
区块链技术发展迅速，了解其分层架构至关重要。本文将总结第 1 层、第 2 层和第 3 层区块链的主要区别和功能。从虚拟货币到供应链管理，各行各业都将区块链技术视为一种革命性力量。然而，随着技术的逐渐成熟，它也变的越发复杂，其发展的速度之快对可扩展性的需求成倍增加。要实现这种复杂性和可扩展性，核心要点就是在区块链中解耦分层。在本文中，我们将重点介绍这些分层（第一层、第二层、第三层）的主要区别、功能及用例。第 1 层区块链是验证和最终完成交易的基础区块链。]]></description><category></category></item><item><title><![CDATA[存证溯源案例5.0溯源方法介绍与应用案例]]></title><link>https://blog.youkuaiyun.com/wangzelong046/article/details/135922605</link><guid>https://blog.youkuaiyun.com/wangzelong046/article/details/135922605</guid><author>wangzelong046</author><pubDate>Mon, 29 Jan 2024 22:44:49 +0800</pubDate><description><![CDATA[我们通常基于指定Key，来查询相对应记录的键值对，通过该方法查询某记录（键值对）的历史信息，包含创建、修改、删除的所有状态信息。Next()方法返回一个具体的记录结果我们通过调用Value方法获取相应值内容，其中TxID则为该记录的交易ID，timestamp为执行该交易的具体时间，isDelete则表示该记录是否是删除操作。下文为具体使用方法。]]></description><category></category></item><item><title><![CDATA[存证溯源案例4.0 富查询使用方法]]></title><link>https://blog.youkuaiyun.com/wangzelong046/article/details/135920180</link><guid>https://blog.youkuaiyun.com/wangzelong046/article/details/135920180</guid><author>wangzelong046</author><pubDate>Mon, 29 Jan 2024 20:33:52 +0800</pubDate><description><![CDATA[开发fabric智能合约实战案例-存证溯源案例，本篇主要介绍链码中富查询使用方法及案例应用。富查询无需使用索引，但使用索引的查询会更有效率。其中前者用于单记录查询，后者用于范围查询。]]></description><category></category></item><item><title><![CDATA[数字人民币可编程如何重塑商业信任]]></title><link>https://blog.youkuaiyun.com/wangzelong046/article/details/135796228</link><guid>https://blog.youkuaiyun.com/wangzelong046/article/details/135796228</guid><author>wangzelong046</author><pubDate>Sat, 27 Jan 2024 22:04:58 +0800</pubDate><description><![CDATA[综上所述，数字人民币智能合约可以解决目前所存在的资金监管问题，如房地产资金监管、政府资金转款专用，也可以解决转款专用的问题，通过数字人民币优惠券化，既从发行方进行了约束，无法随意挪用，也从接收方进行了约束，只能用于特定场景，而不能随意使用。]]></description><category></category></item><item><title><![CDATA[Hyperledger fabric智能合约实战--存证溯源案例3.0索引使用方法]]></title><link>https://blog.youkuaiyun.com/wangzelong046/article/details/135794308</link><guid>https://blog.youkuaiyun.com/wangzelong046/article/details/135794308</guid><author>wangzelong046</author><pubDate>Wed, 24 Jan 2024 10:00:00 +0800</pubDate><description><![CDATA[数据库的索引和我们书籍目录相似，有了索引，我们不需要翻阅整本书，只需要查看目录就知道我们要的内容在哪儿，并且直接定位到，这种方式能大大提高我们的查找效率。作为链码数据库的LevelDB 也不例外，LevelDB 提供以下两个接口来用于构建索引我们使用来构建索引，其逻辑为：err!= nil {err!= nil {...]]></description><category></category></item><item><title><![CDATA[Hyperledger fabric智能合约实战--存证溯源案例2.0]]></title><link>https://blog.youkuaiyun.com/wangzelong046/article/details/135793283</link><guid>https://blog.youkuaiyun.com/wangzelong046/article/details/135793283</guid><author>wangzelong046</author><pubDate>Tue, 23 Jan 2024 22:25:45 +0800</pubDate><description><![CDATA[本文分享如何使用` Go` 语言和`Fabric 2.0链码`开发fabric智能合约实战案例-存证溯源案例，本篇主要介绍K-V数据库的ID一致性、范围查询的使用方法、K-V数据库范围查询的弊端以及解决方案]]></description><category></category></item><item><title><![CDATA[数字身份是啥？]]></title><link>https://blog.youkuaiyun.com/wangzelong046/article/details/135659699</link><guid>https://blog.youkuaiyun.com/wangzelong046/article/details/135659699</guid><author>wangzelong046</author><pubDate>Thu, 18 Jan 2024 09:00:00 +0800</pubDate><description><![CDATA[比如，一个求职者要进入某写字楼面试，写字楼的保安要求登记身份证号码和姓名，但我们的VC中还包含了民族、住址等信息，我们求职者不希望自己的住址暴露给保安，所以他提供给保安的VP中应该只选择性的披露身份证号码和姓名，其他信息选择不披露。传统的PKI系统中数字证书是认证的核心，由权威的CA机构签发的中心结构可能存在性能问题，另一方面，单中心的结构容易使其成为攻击的目标，一旦上级CA机构被攻破，则与之相关联的下级CA也会受牵连。下面的proof是用户对VC的签名数据，表示该VP是这个用户亲自出具的。]]></description><category></category></item><item><title><![CDATA[Hyperledger fabric智能合约实战--存证溯源案例1.0]]></title><link>https://blog.youkuaiyun.com/wangzelong046/article/details/134430139</link><guid>https://blog.youkuaiyun.com/wangzelong046/article/details/134430139</guid><author>wangzelong046</author><pubDate>Wed, 15 Nov 2023 22:09:58 +0800</pubDate><description><![CDATA[fabric中的ledger分为两部分内容，一部分是基于文件的存储，基于文件的存储满足区块链不可篡改的特性，此种方式存储基本是采用Merkle Tree，整个存储的方式是只能追加，不能删除和修改。另一部分则是使用数据库进行存储此种方式在fabric中叫做world state，如leveldb、couchdb等K-V数据库(也叫状态数据库，state DB)，使用此类数据库的优势是数据库只存储当前的最新值，便于业务的拓展，这样可以很快的查找到当前的值，而无需通过遍历的方式来查找。####1、导入包的不同。]]></description><category></category></item><item><title><![CDATA[fabric的身份认证组件]]></title><link>https://blog.youkuaiyun.com/wangzelong046/article/details/134229851</link><guid>https://blog.youkuaiyun.com/wangzelong046/article/details/134229851</guid><author>wangzelong046</author><pubDate>Sun, 05 Nov 2023 15:00:16 +0800</pubDate><description><![CDATA[区块链网络中的不同参与者分别有	peer（节点）、orderers（排序）、client applications（客户端应用程序），administrators(管理员)等。每个参与者都有一个X.509数字证书中的数字身份。这些身份决定了参与者在区块链网络中对梓源和信息访问的具体权限。此外，数字身份还有一些额外属性，fabric利用这些属性来确定权限，并给身份和相关属性的组合命名为principal。principal同userID或groupID相似，但更加灵活。]]></description><category></category></item><item><title><![CDATA[HyperledgerFabric Gateway SDK最新版1.3.1开发总结]]></title><link>https://blog.youkuaiyun.com/wangzelong046/article/details/134108616</link><guid>https://blog.youkuaiyun.com/wangzelong046/article/details/134108616</guid><author>wangzelong046</author><pubDate>Sun, 29 Oct 2023 22:24:15 +0800</pubDate><description><![CDATA[新版gateway中，客户端通过调用client.Connect(),传入带有客户端表示、客户端签名和客户端连接详细信息，来建立与fabric gateway的链接，返回的对象可用于访问fabric中的智能合约或获取fabric区块链上信息。旧版fabric-go-sdk中，Gateway对象是使用Connect()创建，用于使用存储在钱包中的身份连接到网络配置文件中指定的网关peer节点，然后在此网关链接的上下文中调用与智能合约交互。]]></description><category></category></item><item><title><![CDATA[Hyperledger fabric智能合约编写（四）单元测试]]></title><link>https://blog.youkuaiyun.com/wangzelong046/article/details/134105980</link><guid>https://blog.youkuaiyun.com/wangzelong046/article/details/134105980</guid><author>wangzelong046</author><pubDate>Sun, 29 Oct 2023 19:51:47 +0800</pubDate><description><![CDATA[在本文中可以学习如何对fabric智能合约中的方法进行单元测试，方便我们在不部署链码的条件下，能够高效的调试代码]]></description><category></category></item><item><title><![CDATA[Hyperledger fabric原理 MSP详解]]></title><link>https://blog.youkuaiyun.com/wangzelong046/article/details/134096616</link><guid>https://blog.youkuaiyun.com/wangzelong046/article/details/134096616</guid><author>wangzelong046</author><pubDate>Sun, 29 Oct 2023 08:00:00 +0800</pubDate><description><![CDATA[如果你读过这个文档以及官方关于 身份的文档，你应该对身份和成员在 Hyperledger Fabric 中的作用有了很好的理解。您了解了如何使用 PKI 和 MSP 来识别在区块链网络中协作的参与者。您学习了证书、公钥、私钥和信任根的工作原理，以及 MSP 的物理和逻辑结构。]]></description><category></category></item><item><title><![CDATA[Hyperledger fabric智能合约编写（二）账本操作]]></title><link>https://blog.youkuaiyun.com/wangzelong046/article/details/134086453</link><guid>https://blog.youkuaiyun.com/wangzelong046/article/details/134086453</guid><author>wangzelong046</author><pubDate>Sat, 28 Oct 2023 01:15:33 +0800</pubDate><description><![CDATA[Chaincode 是一个用 Go、Node.js 或 Java 编写的程序，它实现了一个规定的接口。Chaincode 在独立于对等程序的进程中运行，通过应用程序提交的交易初始化和管理分类账状态。链码通常处理Channel成员许可后的业务逻辑，因此类似于 “智能合约”。链码可在交易中被调用，用于更新或查询分类账。在获得适当权限的情况下，一个 chaincode 可以调用同一通道或不同通道中的另一个 chaincode 来访问其状态。请注意，如果被调用的链码与调用链码在不同的通道上，则只允许读取查询。]]></description><category></category></item><item><title><![CDATA[Hyperledger fabric部署链码（五）初始化与链码升级]]></title><link>https://blog.youkuaiyun.com/wangzelong046/article/details/134081981</link><guid>https://blog.youkuaiyun.com/wangzelong046/article/details/134081981</guid><author>wangzelong046</author><pubDate>Fri, 27 Oct 2023 18:27:33 +0800</pubDate><description><![CDATA[链码定义提交到channel后，将在安装链码的通道的peer节点上启动。asset-transfer (basic) 链码现在可以由客户端应用程序通过命令行直接调用。使用以下命令在ledger上创建一组初始资产(初始化)。请注意，调用命令需要针对足够数量的peer（包含多个组织），以满足链码认可策略。(注意 CLI 无法访问 Fabric Gateway 对等peer，因此必须指定每个背书对等peer。]]></description><category></category></item><item><title><![CDATA[Hyperledger fabric智能合约编写（三）背书策略]]></title><link>https://blog.youkuaiyun.com/wangzelong046/article/details/134044772</link><guid>https://blog.youkuaiyun.com/wangzelong046/article/details/134044772</guid><author>wangzelong046</author><pubDate>Thu, 26 Oct 2023 00:11:15 +0800</pubDate><description><![CDATA[与链码级背书策略类似，在批准和提交链码定义时，也可以指定链码的私有数据集合和相应的集合级背书策略。集合级背书策略的语法与链码级背书策略的语法完全相同–在集合配置中，您可以用签名策略（signaturePolicy）或通道配置策略（channelConfigPolicy）指定背书策略。背书策略定义了需要哪些组织的认可（背书）才能执行交易。同链码级背书策略相比，集合级背书策略限制性更小些，我们可以二者结合使用，比如即要求大多数组织认可（背书）链码交易，也要求特定组织认可（背书）包含特定集合Key的交易。]]></description><category></category></item><item><title><![CDATA[Hyperledger fabric智能合约编写（一）]]></title><link>https://blog.youkuaiyun.com/wangzelong046/article/details/134044656</link><guid>https://blog.youkuaiyun.com/wangzelong046/article/details/134044656</guid><author>wangzelong046</author><pubDate>Wed, 25 Oct 2023 21:58:23 +0800</pubDate><description><![CDATA[从官方的fabric-samples提供的各种简单的Go链码中可以看到，一般我们链码方法都是自定义一个SmartContract struct, 里面包含了comtractapi包中的Contract struct。同时ContractChaincode实现了Chaincode接口，该接口是fabric每一个链码都必须实现的接口，里面提供了Invoke和Init方法，这就是fabric1.x链码的交互接口，fabric2.x链码实现就是对fabric1.x进行封装，便于开发人员链码编写。]]></description><category></category></item><item><title><![CDATA[Hyperledger Fabric相关概念介绍]]></title><link>https://blog.youkuaiyun.com/wangzelong046/article/details/134044630</link><guid>https://blog.youkuaiyun.com/wangzelong046/article/details/134044630</guid><author>wangzelong046</author><pubDate>Wed, 25 Oct 2023 21:57:09 +0800</pubDate><description><![CDATA[::successHyperledger Fabric 是一个开源的企业级许可分布式账本技术（Distributed Ledger Technology，DLT）平台，专为在企业环境中使用而设计。Fabric 具有高度和的架构，可为各行各业的业务提供创新性、多样性和优化，其中包括银行、金融、保险、医疗保健、人力资源、供应链甚至数字音乐分发。Fabric 是第一个支持。]]></description><category></category></item><item><title><![CDATA[Hyperledger fabric部署链码（四）提交链码定义到channel]]></title><link>https://blog.youkuaiyun.com/wangzelong046/article/details/134044589</link><guid>https://blog.youkuaiyun.com/wangzelong046/article/details/134044589</guid><author>wangzelong046</author><pubDate>Wed, 25 Oct 2023 21:54:11 +0800</pubDate><description><![CDATA[在足够多的组织批准了链码定义后，任意一个组织就可以将链码定义提交到通道。(如果大多数通道成员都批准了该定义，提交事务就会成功,反之，如果没有先让大多数通道成员批准该链码定义，提交事务就会失败)命令将链码定义提交到通道。提交命令也需要由组织管理员提交。]]></description><category></category></item></channel></rss>