如何编写一个企业级Hyperledger Fabric开源框架

Hyperledger Fabric架构详解 Fabric是一个模块化和可扩展的开源系统,用于部署和操作许可的区块链,也是Linux基金会(www.hyperledger.org)主持的Hyperledger项目之一。 Hyperledger Fabric是一个较为典型的联盟链结构。 1.Hyperledger Fabric采用区块链解决方案 1.1分布式帐本 区块链核心概念是分布式帐本(Distributed ledger)。分布式账本是一种在网络成员之间共享、复制和同步的数据库。分布式账本记录网络参与者之间的交易,并降低了因调解不同账本所产生的时间 阅读详情

Convector(a.k.a Convector Smart Contracts)是为企业区块链框架构建的JavaScript开发框架。它增强了开发体验,同时帮助开发人员创建更强大,更安全的智能合约系统。它通过链代码和后端一直到前端,允许开发人员以库的形式重用相同的代码库。它基于模型/控制器模式,支持Hyperledger Fabric,并沿着Fabric精心设计的模式本地运行。

这篇博客文章介绍了该项目的历史,并重点介绍了沿途开发的挑战和解决方案。

当我们开始研究Tellus时,一切都开始了,Tellus是一个无代码交易设计师,用于在Hyperledger Fabric区块链上运行。那时我们有一堆Golang智能合约。

我们对开发者体验(DX)的第一印象并不是那么好。有两种方法:init和invoke,除了在invoke方法上放置if条件并使用其中一个参数指示调用的方法之外,没有其他方法可以添加新方法。所有参数都是位置传递的字符串,需要手动解析复杂参数,并且无法在本地测试它。

在项目开始时,Fabric 1.1增加了对Javascript链代码的支持。我们决定尝试一下,希望改善开发人员的体验。不幸的是,它遵循Golang链式代码中的相同模式,你仍然需要在日常逻辑中做一些肮脏的工作。我们一直在寻找更好的解决方案,并发现了一篇关于TheLedger的库的帖子,该文章在Typescript中制作Fabric链接代码,它真正改善了原始Javascript的内容。

在我们的智能合约从Golang迁移到Javascript期间出现了一种模式。大多数时候函数按以下顺序执行:

  • 1.解析参数。
  • 2.做一些断言。
  • 3.执行更改。
  • 4.保存更改。

这导致了关于项目计划的一个基本问题:智能合约是否应该快速迁移,或者应该花更多的时间来确定模式并使其足够灵活以适应多个业务案例。这一切都始于项目的./src/utils/。

/** @module @worldsibu/convector-examples-token */

import * as yup from ‘yup’;
import {
 ConvectorModel,
 ReadOnly,
 Required,
 Validate
} from ‘@worldsibu/convector-core-model’;

export class Token extends ConvectorModel {
 @ReadOnly()
 public readonly type = ‘io.worldsibu.examples.token’;

 @ReadOnly()
 @Required()
 @Validate(yup.object())
 public balances: { [key: string]: number };

 @ReadOnly()
 @Required()
 @Validate(yup.number().moreThan(0))
 public totalSupply: number;

 @ReadOnly()
 @Required()
 @Validate(yup.string())
 public name: string;

 @ReadOnly()
 @Required()
 @Validate(yup.string())
 public symbol: string;
}

对流模型

Fabric对区块链中存储的数据形状没有限制。你基本上有一个键值映射,其中两个都是字符串,这意味着你可以序列化和存储任何复杂的对象。我们拆开模型以在代码中重用它们。我们刚刚通过了所有必要的参数。

@Invokable()
 public async transfer(
   @Param(yup.string())
   tokenId: string,
   @Param(yup.string())
   to: string,
   @Param(yup.number().moreThan(0))
   amount: number
 ) {
   const token = await Token.getOne(tokenId);

   if (token.balances[this.sender] < amount) {
     throw new Error(‘The sender does not have enough funds’);
   }

   token.balances[to] = token.balances[to] || 0;

   token.balances[to] += amount;
   token.balances[this.sender] -= amount;

   await token.save();
 }

Convector控制器

使用Fabric,你可以获得函数的类型参数列表。我们不希望在所有函数中一直解析模型,因此我们添加了一些装饰器来验证是否成功满足所有参数类型不变量。这些参数可能是原始的,复杂的甚至是模型。

现在,函数看起来更像是一个控制器。他们在模型描述数据时处理业务逻辑。

现在是时候将所有链代码集成到我们的Nodejs REST API中。在这个过程中,我们意识到我们正在服务器上创建一个包装器库来使用fabric-client lib调用我的链代码。这是一种非常常见的情况,因此我们寻找一种更好的自动化方法。

我想在服务器上使用相同的控制器和模型文件以及链代码。这样做意味着解耦模型和存储层(Fabric)之间的关系以及控制器和执行操作。

这就是我们意识到Hyperledger Fabric只是Convector可以支持的多个区块链之一。

适配器和存储发挥作用。

适配器是控制器的底层。控制器定义方法,参数和业务逻辑,而适配器处理如何将调用路由到正确的位置。例如,在我们的API中,它使用适配器来调用结构,客户端库并发送交易。

存储提供与模型交互的功能。无论你是要保存,删除还是查询某些内容,都可以与模型本身进行交互,并在后台与指定的服务进行交互。在链代码上,这是Fabric STUB对象。在Nodejs API中,它可能正在发送查询交易或从CouchDB读取。

专业提示:Convector可以与区块链以外的东西一起使用。例如,配置适配器或模型以调用API或其他数据库。

周末变成了创造工具和完善模式的一个月。以下是你今天可以利用的一些工具:

# Install the CLInpm i -g @worldsibu/convector-cli
# Create a new chaincodes projectconv new mychain -c token
cd mychainnpm i
# Install a dev environmentnpm run env:restart # Install the chaincodenpm run cc:start — token 1

Convector CLI

此外,Convector已经附带了一个Fabric适配器,一个Fabric存储,一个CouchDB存储和一个模拟适配器(用于单元测试),你可以使用它来无缝地为你的链码创建代码以及NodeJS后端,同时创建可以进行的测试包含在CI/CD管道中。这在任何现实生活中都至关重要。

可以轻松创建额外的适配器和存储层,我们很高兴看到社区围绕这些工具构建的内容。在我们构建这个的同时,我们继续致力于内部产品的迁移,这有助于在启动之前在现实生活场景中测试框架。

我很高兴我们没有采取这种迁移的简单方法。我们对结果非常满意,发布开源工具的过程令人惊叹。每天看到数百人使用它也是有益的。

Hyperledger Fabric是一个优秀的区块链框架。它提供的基础架构以安全可靠的方式涵盖了大多数用例。这就是为什么我们认为它也应该为智能合约提供强大的界面,我们希望通过我们在使用它时创建的内部工具回馈社区。

因为我们相信该项目对区块链生态系统中的任何人都有用,所以Convector加入了Hyperledger Labs计划。我们真的致力于围绕Convector建立一个社区,该社区已经超过了27,000个下载,并欢迎Hyperledger社区的投入。如果你希望参与开源项目,请参阅GitHub

关于作者Diego Barahona是WorldSibu的首席技术官和架构师,该公司致力于为非区块链专家创建区块链工具和平台,并使该技术更易于解决业务挑战。

======================================================================

分享一些比特币、以太坊、EOS、Fabric等区块链相关的交互式在线编程实战教程:

  • java比特币开发教程,本课程面向初学者,内容即涵盖比特币的核心概念,例如区块链存储、去中心化共识机制、密钥与脚本、交易与UTXO等,同时也详细讲解如何在Java代码中集成比特币支持功能,例如创建地址、管理钱包、构造裸交易等,是Java工程师不可多得的比特币开发学习课程。
  • php比特币开发教程,本课程面向初学者,内容即涵盖比特币的核心概念,例如区块链存储、去中心化共识机制、密钥与脚本、交易与UTXO等,同时也详细讲解如何在Php代码中集成比特币支持功能,例如创建地址、管理钱包、构造裸交易等,是Php工程师不可多得的比特币开发学习课程。
  • c#比特币开发教程,本课程面向初学者,内容即涵盖比特币的核心概念,例如区块链存储、去中心化共识机制、密钥与脚本、交易与UTXO等,同时也详细讲解如何在C#代码中集成比特币支持功能,例如创建地址、管理钱包、构造裸交易等,是C#工程师不可多得的比特币开发学习课程。
  • java以太坊开发教程,主要是针对java和android程序员进行区块链以太坊开发的web3j详解。
  • python以太坊,主要是针对python工程师使用web3.py进行区块链以太坊开发的详解。
  • php以太坊,主要是介绍使用php进行智能合约开发交互,进行账号创建、交易、转账、代币开发以及过滤器和交易等内容。
  • 以太坊入门教程,主要介绍智能合约与dapp应用开发,适合入门。
  • 以太坊开发进阶教程,主要是介绍使用node.js、mongodb、区块链、ipfs实现去中心化电商DApp实战,适合进阶。
  • ERC721以太坊通证实战,课程以一个数字艺术品创作与分享DApp的实战开发为主线,深入讲解以太坊非同质化通证的概念、标准与开发方案。内容包含ERC-721标准的自主实现,讲解OpenZeppelin合约代码库二次开发,实战项目采用Truffle,IPFS,实现了通证以及去中心化的通证交易所。
  • C#以太坊,主要讲解如何使用C#开发基于.Net的以太坊应用,包括账户管理、状态与交易、智能合约开发与交互、过滤器和交易等。
  • EOS入门教程,本课程帮助你快速入门EOS区块链去中心化应用的开发,内容涵盖EOS工具链、账户与钱包、发行代币、智能合约开发与部署、使用代码与智能合约交互等核心知识点,最后综合运用各知识点完成一个便签DApp的开发。
  • 深入浅出玩转EOS钱包开发,本课程以手机EOS钱包的完整开发过程为主线,深入学习EOS区块链应用开发,课程内容即涵盖账户、计算资源、智能合约、动作与交易等EOS区块链的核心概念,同时也讲解如何使用eosjs和eosjs-ecc开发包访问EOS区块链,以及如何在React前端应用中集成对EOS区块链的支持。课程内容深入浅出,非常适合前端工程师深入学习EOS区块链应用开发。
  • Hyperledger Fabric 区块链开发详解,本课程面向初学者,内容即包含Hyperledger Fabric的身份证书与MSP服务、权限策略、信道配置与启动、链码通信接口等核心概念,也包含Fabric网络设计、nodejs链码与应用开发的操作实践,是Nodejs工程师学习Fabric区块链开发的最佳选择。
  • Hyperledger Fabric java 区块链开发详解,课程面向初学者,内容即包含Hyperledger Fabric的身份证书与MSP服务、权限策略、信道配置与启动、链码通信接口等核心概念,也包含Fabric网络设计、java链码与应用开发的操作实践,是java工程师学习Fabric区块链开发的最佳选择。
  • tendermint区块链开发详解,本课程适合希望使用tendermint进行区块链开发的工程师,课程内容即包括tendermint应用开发模型中的核心概念,例如ABCI接口、默克尔树、多版本状态库等,也包括代币发行等丰富的实操代码,是go语言工程师快速入门区块链开发的最佳选择。

汇智网原创翻译,转载请标明出处。这里是如何编写一个企业级Hyperledger Fabric开源框架

超全总结Hyperledger Fabric架构原理 文章目录Hyperledger Fabric概述基本概念Fabric v0.6和v1.x架构差异这样设计的优势Hyperledger Fabric Network的共识算法各种节点客户端节点普通节点peer排序服务节点ordererCA节点交易流程1.发送交易提案2.模拟执行交易提案3.返回提案响应4.交易排序5.交易验证并提交6.通知交易结果给客户端交易有两种类型blockchain数据结构状态... 阅读详情

相关推荐

Hyperledger Fabric官方文档——Introduction

研究生一直在折腾区块链这方面的东西,翻来覆去感觉Hyperledger Fabric是个挺有前景的,,,怎么说呢,方向吧。自己脑子里想的东西全让它实现了,又觉得难过又觉得开心。超级账本值得学习的地方有很多,又打算把官方文档翻出来读一遍。因为英语六级连五百都没有,所以还是决定把文档转成中文的看,大部分是百度google翻译,语句不通我也尽量调整了,包括一些名词翻译之类的尽量改过来,就形成了下面这篇有...

Lazyboy_的博客 1万+

Hyperledger Fabric 架构概览

fabric 版本 v2.4.1超级账本 Fabric 自诞生以来已经发布了两个主要版本:1.0 系列版本(2017 年 7 月)和 2.0 系列版本(2020 年 1 月)。2016 年 9 月,Fabric 发布了 v0.6.0 预览版本,通过这一版本社区收集了大量来自实践的反馈和建议,主要集中在性能、安全、可扩展性等方面。2017 年 7 月推出 1.0 系列版本,这一版本重新设计了整体架构,改善了可扩展性和安全性,消除了性能瓶颈,首次实现每秒数千次的吞吐性能。

y19910825的博客 1512

区块链开发实战:从以太坊到Hyperledger Fabric

以太坊和Hyperledger Fabric作为两大主流区块链平台,各自拥有独特的特点和优势。以太坊适用于构建去中心化的应用程序,并提供了强大的智能合约功能;而Hyperledger Fabric则更适合企业级应用,提供了更高的隐私保护和数据控制。在实际开发中,开发者需要根据项目需求选择合适的平台,并遵循相应的开发流程和最佳实践。通过本文提供的代码和表格示例,希望能够帮助开发者更好地理解和掌握以太坊和Hyperledger Fabric的开发技巧。

shejizuopin的博客 870

【IPFS + 区块链 系列】 入门篇 - IPFS环境配置

孔壹学院:国内区块链职业教育引领品牌。 作者:黎跃春,孔壹学院创始人,区块链、高可用架构师 微信:liyc1215 区块链博客:http://liyuechun.org 目录 1. IPFS简介 [2. IPFS 本地环境安装](#2-IPFS 本地环境安装) 2.1 下载ipfs压缩包 2.2 安装 3. 项目配置 3.1 创建ipfs节点 3.2 修改节点默认存储空间 3

孔壹学院 5379

Hyperledger Fabric java 区块链开发详解

我们为希望尽快学习Hyperroger fabric 的java工程师上线了一门教程Fabric java 区块链开发详解,课程面向初学者,内容即包含Hyperledger Fabric的身份证书与MSP服务、权限策略、频道配置与启动、链码通信接口等核心概念,也包含Fabric网络设计、java链码与应用开发的操作实践,是java工程师学习Fabric区块链开发的最佳选择。 Hyperledger...

mongo_node的专栏 3098

Fabric 结合IPFS 链码示例

Fabric 结合IPFS 是一种简单有效的拓展区块链存储空间的方法,本文贴出链码部分示例供初学者学习。

TrueTechLabs 官方博客 1510

fabric1.4.4 基础环境搭建

1 在$GOPATH/src/github.com/hyperledger下 clone fabric (gopath路径一般设置 /opt/gopath) git clone https://github.com/hyperledger/fabric.git 2 进入fabric,切换分支 进入自己想要搭建环境的分支 查看当前分支 git branch -a 在显示的分支中选择自己的分支 git checkout -b remotes/origin/release-1.4 3 修改boots

weixin_41303815的博客 1713

Hyperledger Fabric是区块链中联盟链架构详细介绍

区块链开源实现HYPERLEDGER FABRIC架构详解 区块链开源实现HYPERLEDGER FABRIC架构详解 hyperledger fabric是区块链中联盟链的优秀实现,主要代码由IBM、Intel、各大银行等贡献,目前v1.1版的kafka共识方式可达到1000/s次的吞吐量。本文中我们依次讨论:区块链的共通特性、fabric核心概念、fabric的交易执行流程。。 1、区块链解决方案的特性 1.1 分布式帐本 区块链核心概念是分布式帐本,就像下面的图1所示,同样的...

街角有人祝福,巷口有人哭~ 8664

基于Hyperledger Fabric1.4和IPFS的情报数据安全传输系统

情报数据安全传输系统,您的数据将通过RSA算法进行加密后存入IPFS,对方可以通过自己的私钥进行下载。 本系统基于Hyperledger Fabric平台与IPFS存储数据,通过CNPBFT算法进行共识优化。本系统采用区块链技术保证数据安全传输与存储、不被恶意篡改,同时IPFS提供了大容量数据存储空间上的优化

weixin_41551445的博客 1726

Modbus TCP 通信(C#)

【代码】Modbus TCP 通信(C#)

weixin_56229359的博客 1150

无人机散热系统设计:从材料选择到智能调控的全面解析

本文全面解析无人机散热系统设计,从材料选择到智能调控,探讨了导热界面材料、轻量化散热结构和智能调控算法的应用。通过实战案例,展示了如何在极端环境下优化散热性能,提升无人机的工作效率和可靠性。

weixin_42567279的博客 429

一个小时带你用 Hyperledger Fabric开发一个Demo

先懂是什么,再懂怎么做,再懂为什么 本文作为系列开篇,力求通过一个简单fabric应用开发过程,让大家对fabric有个直观概括的了解。 前言 先放三张图: 第一张是Gartner 2017的技术成熟曲线图。对这张图的理解,大家仁者见仁智者见智,作为区块链从业者,既不想它被过度吹捧也不想被无脑黑。区块链不是万能的,但是在某些方向,尤其是对敏感信息加密共享有旺盛需求的领域,确实有其优势。 第二张是当前主要区块链项目的发展和应用状况。公共链领域,比特币依然一骑绝尘,以太坊紧跟...

建建的博客 4711

从零开始:YOLOv8车牌检测模型训练全流程实战

本文详细介绍了从零开始训练YOLOv8车牌检测模型的全流程实战指南。内容涵盖环境搭建、数据集收集与标注、模型配置与训练、评估测试及高级优化技巧。通过使用预训练模型和迁移学习,开发者可以高效构建精准的车牌检测系统,并掌握模型导出与部署的关键步骤。

weixin_29061041的博客 335

hyperLedger Fabric 系列一

1. 前言   当前在公司一直学习和研究区块链的相关知识,在大致了解了公链(bitcoin)之后,即将主要的精力投入到联盟链的学习和研究中。对于联盟链而言,我们是以hyperLedger作为主要的研究对象。本人作为一个区块链行业的小白级人物,将以此系列作为自己学习和调研经历的总结和整理,为后续区块链项目应用提供指导。   本文档作为整个系列的第一部分,介绍的内容大致包括: hyperLeder项...

wangyuezhilang的博客 7281

PLC编程入门基础知识

PLC即为可编程逻辑控制器,实质是一种专用于工业控制的计算机,其硬件结构基本上与微型计算机相同。

SANRENYIXING的博客 2万+

2、系统建模、状态估计与故障诊断中的滤波设计与故障诊断方法

本文综述了系统建模、状态估计与故障诊断中的滤波设计与故障诊断方法。首先介绍了基于分析模型、知识和信号处理的三类故障诊断方法及其特点;随后总结了传统滤波方法(如维纳滤波、卡尔曼滤波)与非概率的集员滤波方法,重点阐述了在未知但有界噪声假设下的椭球、立方、多面体、区间和Zonotope等集员滤波算法原理与发展。文章还展示了各类集员滤波算法的应用实例与流程图,并对比了其计算复杂性与准确性。最后指出,根据不同系统特性选择合适的故障诊断与滤波方法至关重要,未来趋势将趋向于多方法融合与实际工程应用深化。

kmeans3miner的博客 137

1、Hyperledger Fabric介绍

简介 Hyperledger介绍 超级账本(Hyperledger)项目是首个面向企业应用场景的开源分布式账本平台。由linux基金会牵头,包括 IBM 等 30家初始企业成员共同成立的。 Hyperledger Fabric是什么 该项目定位是面向企业的分布式账本平台,引入权限管理,设计上支持可插拔、可扩展,是首个面向联盟链场景的开源项目。 Fabric 基于 Go 语言实现,...

BlockChainBoy 1万+

QT6实现USB摄像头接入显示与抓拍功能实现

QT实现USB摄像头接入显示 一、UVC协议简介 UVC全称是USB Video Class(USB视频类),是一种标准化的USB视频设备通信协议,它定义了摄像头与主机之间的数据传输协议和格式。 UVC协议的出现,解决了摄像头厂商之间互不兼容,以及摄像头应用开发与平台之间的散乱问题。 UVC标准是由USB-IF主导制定的,目前最新的版本是UVC 1.5,UVC的缺省设置类容易实现,不需要额外的驱动程序。

热土程序园,利他愉己~ 3415

Hyperledger Fabric基础知识

文章目录什么是Hyperledger Fabric?Hyperledger架构是怎么工作的?Hyperledger交易如何执行总结 Hyperledger Fabric基础知识 本文我们会介绍Hyperledger Fabric的基础知识,并了解如何充分利用这个多功能的区块链框架。 区块链技术为创新提供了丰富的机会。它提供了一种新的交易方式,从而可以从根本上改变业务的实现。 那么,在众多的区块链框...

程序那些事 1万+

YOLOv11改进 | 注意力篇 | YOLOv11引入CBAM注意力机制

我们的实验表明各种模型的分类和检测性能得到了一致的改进,证明了 CBAM 的广泛适用性。简单介绍:CBAM的主要思想是通过关注重要的特征并抑制不必要的特征来增强网络的表示能力。模块首先应用通道注意力,关注"重要的"特征,然后应用空间注意力,关注这些特征的"重要位置"。到此本文的正式分享内容就结束了,在这里给大家推荐我的YOLOv11改进有效涨点专栏,本专栏目前为新开的,后期我会根据各种前沿顶会进行论文复现,也会对一些老的改进机制进行补充,如果大家觉得本文帮助到你了,订阅本专栏,关注后续更多的更新~

tsg6698的博客 2万+

基于STM32、HAL库的WF282A气压传感器 驱动程序设计

测量范围:0-2.5MPa(可根据需求选择其他量程)输出方式:I2C或SPI数字接口。温度补偿范围:-20℃~85℃。低功耗设计,适合电池供电应用。工作电压:3.3V/5V。精度:±0.1%FS。

corlin6688的博客 394

Hyperledger Fabric 和企业级以太坊,谁才是企业首选?

作者 |LimeChain译者 |天道酬勤 责编 | Carol出品 | 区块链大本营(blockchain_camp)封图 | 优快云 付费下载于视觉中国* 文末有福利哟~在过去...

区块链大本营 4193

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Hyperledger fabric 基础知识总结

hyperledger fabric项目概述 Hyperledger,中文名为超级账本。是Linux基金会于2015年发起的推进区块链数字技术和交易验证的开源项目。Hyperledger的目标是让成员共同合作、共建开放平台以满足来自多个不同行业各种用户的需求,同时能大大简化业务流程。 随着hyperledger项目的不断扩大,单一的项目无法满足业务的需求,因此hyperledger逐步由一个单一的项目发展成一个项目组。而hyperledger fabric就是其中一个项目。hyperledger项目组主要的

qq_31639829的博客 1万+

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

区块链开源框架Hyperledger Fabric介绍

Hyperledger Fabric作为区块链3.0的代表,通过模块化架构实现了企业级区块链解决方案。其核心包括身份管理、智能合约和分布式账本三大组件,采用许可制成员管理保障安全性。Fabric支持多通道数据隔离、可插拔共识机制,提供Go/Java/Node.js等多种开发语言支持。交易流程分为提案、背书、排序和验证四个阶段,实现高性能与可扩展性。相比公有链,Fabric具有完备权限控制、丰富查询功能和灵活部署等优势,特别适合需要数据隐私保护的商业应用场景。

varyall的专栏 5598

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

上一篇: Hyperledger Fabric能否大规模运行?
下一篇: Hyperledger Fabric PHP SDK
落叶无声9
博客等级 码龄12年 443粉丝 343原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值