区块链技术
文章平均质量分 75
以区块链技术应用落地为目标,深入区块链在各种场景下的产品孵化,商业应用与技术研究,推动区块链技术在中国的成功实践。
优惠券已抵扣
余额抵扣
还需支付
¥19.90
¥99.00
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
0X码上链
12年IT老兵,擅长互联网技术开发与培训,金融系统设计与建设,区块链(公链+联盟链)行业应用设计与开发。
展开
-
区块链必须了解的加密算法
常用的加密算法,包括对称加密、非对称加密、和散列加密。由于对称加密接收方和发送方采用相同的秘钥且效率比较高,使用的比较广泛。但是在一对多的通信过程中分发秘钥的时候秘钥有泄漏的风险,所以引入了非对称加密。非对称加密接收方和发送方采用了不同的秘钥这样就能确保秘钥内容在发送的过程中不会被泄漏。很多时候我们加密不需要反向解密,只需获得内容的一个特征值,这时候就需要用到散列加密算法。原创 2024-01-22 10:14:14 · 167 阅读 · 0 评论 -
开发人员指南从以太坊迁移到 Solana
以太坊是近期最重要的创新之一。历史上第一次,我们有了一个为社会协调而建立的去中心化全球平台,它有可能彻底改变许多行业。尽管重要,但以太坊的运行环境--以太坊虚拟机(EVM)--目前的状态并不是为消费级应用而构建的。它是一个单线程、基于Gas的网络,费用不稳定。相比之下,Solana 是一个高吞吐量、低延迟的网络。它提供了一个并行化的基础设施,收费低且可预测。它直接解决了 EVM 的局限性,并对其原始设计进行了改进,使其成为希望构建可扩展高效应用程序的开发人员的理想选择。本文是一份全面的迁移指南,适用于希望在原创 2024-01-08 17:35:41 · 896 阅读 · 0 评论 -
区块链智能合约测试框架Foundry技术指南
在区块链开发领域,智能合约的安全性和可靠性至关重要。鉴于区块链的不可变性,智能合约中的任何错误都可能导致不可逆转的后果,包括重大的财务损失。这凸显了彻底测试的关键重要性。Foundry 是一种 Solidity 测试框架,在这一领域中成为一个强大的工具,为开发人员提供了严格测试他们的智能合约的手段。本技术博文深入探讨了测试智能合约的重要性,重点关注使用 Foundry 的实际策略和示例。原创 2024-01-05 17:53:13 · 1773 阅读 · 0 评论 -
账户体系协议-解析EIP-4337
比如 Bundler、EntryPoint、Paymaster 这些组件应该对外提供哪些可调用的函数。将这些条条框框明确了之后,原创 2024-01-05 10:50:19 · 829 阅读 · 0 评论 -
智能合约安全之Solidity重入攻击漏洞的深入理解
该代码段判断目标合约的余额,当余额大于 1 个以太币时继续调用目标合约的提款函数给恶意合约转账,直到目标合约的余额不再满足转账条件,这就是重入攻击。合约可以有一个未命名的函数。如果在一个到合约的调用中,没有其他函数与给定的函数标识符匹配(或没有提供调用数据),那么这个函数(fallback 函数)会被执行。通常情况下合约之间通过 call 来相互调用执行,由于 call 在相互调用过程中,被调用方的内置变量 msg 会随着调用方的改变而改变,这就成为了一个安全隐患,在特定的应用场景下将引发安全问题。原创 2024-01-04 17:12:41 · 1358 阅读 · 0 评论 -
工具网站DefiLlama全攻略:从零学习链上数据使用与发现
DefiLlama 认识到每个用户可能有不同的优先级,因此允许进行自定义列。这种灵活性让用户可定制平台,以让其显示他们最看重的指标,从而提升他们的浏览体验。对于寻求特定投资机会的用户来说,例如寻找满足特定条件的流动性挖矿选项,这一功能十分重要。假设用户希望在以太坊layer2解决方案,如 Optimism、Arbitrum 和 zkSync上找到投资机会,例如 USDC/USDT 收益率超过 10%,总锁定价值 (TVL) 超过 100 万美元。原创 2024-01-04 16:46:25 · 1643 阅读 · 0 评论 -
JS实现多线程数据分片下载
在大数据开发过程中,为了提高大文件的上传速度,往往需要将大文件切割为小的数据分片,这样小分片数据可以充分利用有限的带宽,加快上传速度。上传完成后,通常做法是在后端进行合并,而我的做法是后台保持分片存储,数据使用时候,前端JS开启多线程下载,再合并为完整的文件。这样的好处和上传一样,可以提高下载速度很多倍。下载效率和分片算法相关。以下是多线程分片下载聚合的实现。function concatenate(arrays) { if (!arrays.length) return null;原创 2021-09-29 15:54:28 · 2106 阅读 · 2 评论 -
IPFS-Cluster集群共识协议分析
Consensus共识组件共识组件主要职责:(1)管理全局Pinset集合,包括从其它节点获取或者向其它节点发送Pin操作命令。(2)管理Pinset相关的文件在IPFS中的持久化存储。(3)在所有的节点间实现分布式一致,所有的节点需要收敛相同的Pinset。(4)管理集群节点,包括节点加入离开,设置节点间的管理机制。(5)设置节点信任机制,定义哪些节点可以访问本地RPC服务。IPFS-Cluster共识组件目前有两种具体实现,基于“Raft”的强一致性分布式共识,和基于“Mer原创 2021-05-08 14:22:45 · 471 阅读 · 1 评论 -
IPFS存储数据一致解决方案
参考IPFS官网:https://cluster.ipfs.io/documentation/guides/consensus/引 言星际文件系统(InterPlanetary File System,缩写IPFS)是一个旨在创建持久且分布式存储和共享文件的网络传输协议。它是一种内容可寻址的点对点超媒体分发协议。在IPFS网络中的节点将构成一个分布式文件系统。在IPFS网络中,文件是拆分后存储在不同节点的,每个节点存储的内容并不相同,当我们使用IPFS私有网络来作为系统的文件系统时就存在存储一原创 2021-05-08 11:22:13 · 365 阅读 · 0 评论 -
人力资源社会保障部 工业和信息化部颁布智能制造、大数据、区块链工程技术人员3个国家职业技术技能标准
近日,人力资源社会保障部与工业和信息化部联合颁布了智能制造工程技术人员、大数据工程技术人员、区块链工程技术人员等3个国家职业技术技能标准。这3个职业是2019年4月以来人力资源社会保障部办公厅、市场监管总局办公厅、统计局办公室陆续发布的新职业,均属于《中华人民共和国职业分类大典(2015年版)》第二大类“专业技术人员”中的职业。随着智能制造、大数据、区块链等新技术与各产业发展深入融合,推动了传统产业高端化、智能化、数字化,催生了一批新兴产业增长引擎,智能制造工程技术人员、大数据工程技术人员、区块链工程技转载 2021-02-24 09:25:17 · 395 阅读 · 0 评论 -
Go 语言 big.Int
简介math/big 作为 Go 语言提供的进行大数操作的官方库,在以太坊 Ethereum 项目中作为 currency 的类型表示得到了广泛的使用,这篇文章主要介绍该库的使用。官方包解析在官方的 math/big 包中,Int 类型定义如下:// An Int represents a signed multi-precision integer.// The zero v...原创 2018-09-27 15:22:52 · 12352 阅读 · 2 评论 -
fabric-ca-client颁发Orderer节点证书
创建Orderer节点:function createOrderer { echoecho "Enroll the CA admin"echomkdir -p organizations/ordererOrganizations/example.com export FABRIC_CA_CLIENT_HOME=${PWD}/organizations/ordererOrganizations/example.com set -xfabric-ca-client enroll -u原创 2021-01-25 10:46:38 · 1589 阅读 · 0 评论 -
fabric-ca-client 详解动态添加组织
1、生成新增组织证书对于fabric网络来说,要新增一个组织,首先是从证书开始,因为证书就是fabric里面的身份。这里使用fabric-ca生产组织证书。docker-compose-ca_org3.yaml# Copyright IBM Corp. All Rights Reserved.## SPDX-License-Identifier: Apache-2.0# version: '2' services: ca_org3: image: hyperled原创 2021-01-20 15:46:11 · 1686 阅读 · 2 评论 -
fabric-CA数据持久化配置详解
Fabric Server端由一个服务器集群组成,以树形架构组织CA Server节点,包含一个Root 节点和多个中间节点。每个CA要么是根CA,要么是中间CA。每个中间CA都有一个父CA,它要么是根CA,要么是另一个中间CA。可以通过Client或SDK与服务器集群中的CA服务器进行交互。客户端首先路由到HA代理,由代理进行负载均衡,将客户端连接至某一服务器的集群成员。包括前端的一个高可用的代理服务器,连接着若干个CA Server集群,这些集群将数据共同存放在同一个数据服务器上。数据库可能是M原创 2021-01-18 19:25:36 · 341 阅读 · 0 评论 -
fabric-samples基于私有数据的资产转移
项目地址:https://github.com/hyperledger/fabric-samples/tree/master/asset-transfer-private-data我们选择比较普遍的chaincode-java作为介绍,其中重要的文件是collections_config.json,定义了私有数据的3个集合,上文中也有讲解到这个文件的配置,在此不再赘述。[ { "name": "assetCollection", "policy": "OR('Org1MSP.me原创 2020-12-29 09:11:22 · 353 阅读 · 0 评论 -
fabric-私有数据集合定义与使用
组织间可以使用私有数据进行交易操作之前,所有的组织需要创建集合定义JSON文件,从而定义与合约匹配的私有数据集合。存储在私有数据集合中的数据仅会分发给确切组织的节点,而不是通道的所有成员。集合定义文件描述了组织可以读写的所有的私有数据集合。每一个私有数据集合都包含以下几种属性:name:集合名称 policy:定义了允许持久化数据的组织节点 requiredPeerCount:分发私有数据要求的对等节点数量,也作为合约背书的条件 maxPeerCount:对于数据冗余的目的,当前要向其分发数据原创 2020-12-28 16:23:16 · 873 阅读 · 0 评论 -
在windows环境下打包fabric2.2智能合约
1、配置环境变量下载二进制文件https://github.com/hyperledger/fabric/releases/download/v2.2.1/hyperledger-fabric-windows-amd64-2.2.1.tar.gz解压后获得:D:\soft\hyperledger-fabric-windows-amd64-2.2.0\binD:\soft\hyperledger-fabric-windows-amd64-2.2.0\config配置环境变量,将D:\s原创 2020-12-23 09:05:39 · 314 阅读 · 0 评论 -
gradle打包智能合约配置
打包智能合约,需要将完整的依赖包也一并打到jar包中,这里提供gradle的两种方式,仅供参考:一、使用application插件1、build.gradle配置plugins { id 'java' id 'application'}apply plugin :'application'group 'org.hyperledger.fabric-chaincode-java'version '1.0-SNAPSHOT'repositories { ma原创 2020-12-18 10:06:08 · 240 阅读 · 0 评论 -
hyperledger fabric 2.2 智能合约开发环境准备
1、安装golang环境参考中文官网:https://studygolang.com/articles/5805Golang设置国内代理,参考:https://blog.csdn.net/lissdy/article/details/1034874402、安装golang集成开发环境goland参考:https://www.cnblogs.com/pergrand/p/13188081.html3、从git上下载fabric-sample,快速获取合约示例代码进入$GOPATH/sr原创 2020-12-16 17:36:00 · 778 阅读 · 0 评论 -
区块链docker容器日志定时清理
区块链使用docker-compose部署在linux虚拟机(基于centos7),docker运行的日志特别大,大多数日志都是节点同步的日志,没有太大的保留价值,可以同步到ELK后直接清理掉。以下是自动清理脚本,非常管用,一次清理掉了40G的日志。#!/bin/sh time=$(date "+%Y-%m-%d %H:%M:%S")echo "--------------------------------------------------------------------------原创 2020-12-08 16:21:43 · 274 阅读 · 0 评论 -
fabric-ca集群部署-从默认sqllite切换mysql
fabric-ca支持集群部署,部署架构图如下,此时单机版的内置sqllite3就不再合适了,需要切换到其他数据库或者ladp。下面就来介绍一下切换到最普遍的数据库mysql的流程。1、修改fabric-ca的docker-compose配置文件,将ca的配置文件路径映射到容器外,方便直接修改。- ../fabric-ca-config/:/etc/hyperledger/fabric-ca-serverversion: '2'services:services: ca0:原创 2020-12-03 11:23:04 · 344 阅读 · 0 评论 -
Fbaric-CA的架构设计
1、联盟链的部署架构示意图CA在联盟链中的位置示意图,其中TSL-CA为每个CA都具备的独立的模块。2、CA在部署要点加入Fabric联盟链的计算机结点和用户都必须要经过注册并获得CA颁发的证书,才能在联盟链中操作。证书颁发机构可以提供的功能如下:身份的注册或连接到LDAP(Lightweight Directory Access Protocol,轻量目录访问协议)作为用户注册表; 签发登记证书(ECerts)(Enrollment Certificates) 签发交易证书..原创 2020-12-02 16:28:59 · 243 阅读 · 2 评论 -
hyperledger fabric 2.2 证书解析(三)
在hyperledger的组织下,有两个非常重要的概念:peer和user,peer代表节点,user代表用户。更形象地说,放到我们的系统架构中,组织org就是系统,peer就是系统中的服务器节点,user就是组织下的用户。为了保证分布式系统高可用,是多节点和多用户的结构。因此peer和user从属于某个组织org,是平行的关系。peer和user都是,为了让它们在区块链网络中获得认可,它们都具有一套独立的身份信息,包括5部分:admincerts、cacerts、keystore、signcert原创 2020-11-14 18:00:05 · 690 阅读 · 0 评论 -
hyperledger fabric 2.2 证书解析(二)
这节主要来解析组织org节点下的证书目录结构:同样使用命令:tree org1.example.com -L 2org1.example.com├── ca --存放了组织的根证书和对应的私钥文件│ ├── ca.org1.example.com-cert.pem│ └── priv_sk├── msp --存放代表该组织的身份信息。│ ├── admincerts│ ├── cacerts│ ├── config.yaml│ └── tlsc...原创 2020-11-14 17:32:03 · 678 阅读 · 0 评论 -
hyperledger fabric 2.2 证书解析(一)
用tree命令查看tree crypto-config节点证书结构如下:peer0.org1.example.com│ │ │ ├── msp│ │ │ │ ├── admincerts│ │ │ │ │ └── [email protected]│ │ │ │ ├── cacerts│ │ │ │...原创 2020-11-13 20:55:59 · 581 阅读 · 1 评论 -
SDK开发框架代码生成器报错:VelocityException
Velocity是一个基于Java的模板引擎,其提供了一个Context容器,在java代码里面我们可以往容器中存值,然后在vm文件中使用特定的语法获取,这是velocity基本的用法,其与jsp、freemarker并称为三大视图展现技术,相对于jsp而言,velocity对前后端的分离更加彻底:在vm文件中不允许出现java代码,而jsp文件中却可以。代码生成器用来作为前后端代码分离的技术。生成代码时报错:11:36:05.376 [http-nio-8080-exec-1] ERROR原创 2020-11-12 14:08:06 · 465 阅读 · 0 评论 -
拥抱区块链-写给CTOs的区块链发展指引
CIO应该开始拥抱区块链,从而探索出战略性的商业变革方案,但也要注意避免过度炒作。全球每年由超过4万亿的商品运输,其中80%的搬运是通过海洋运输完成的,产生了大量的文书工作。处理和管理这些货物的文件成本大于占到实际运输成本的五分之一。去年,一家物流公司和一家科技公司合作,运用区块链技术开发了一个国际联合分布式贸易平台。它提供了一个共享的、不可篡改的交易记录,并允许不同的合作伙伴任何时候访问这些信息。区块链技术存在分布式、不可篡改、加密等特性,但是区块链可以实现的业务场景远不止于此。寻找颠覆性商业原创 2020-10-30 16:42:51 · 255 阅读 · 2 评论 -
BIM+区块链在建筑业施工过程结算的应用
摘要:本文讲述BIM和区块链技术在建筑业施工过程结算的应用,通过基于BIM和区块链智能合约的施工任务划分及其工程结算机制,探讨如果利用BIM和区块链技术提升工程过程结算的效率,优化工程过程结算流程。7月24日,住建部印发工程造价改革工作方案,明确要求严格施工合同履约管理,加强工程施工合同履约和价款支付监管,全面推行施工过程价款结算和支付,包括河南、湖南、浙江、山西、四川、广东、北京、重庆等各省市也都推出了相关政策,推进施工过程结算,其中尤其对人工费用的结算周期做了更为严格的规定。众所周知,建设项目原创 2020-10-30 09:04:23 · 1416 阅读 · 4 评论 -
Hyperledger Fabric1.3安装部署以及动态Org、Peer的实现
基础环境安装与配置关闭防火墙systemctl stop firewalld.servicesystemctl disable firewalld.service设置安全 vim /etc/selinux/config# This file controls the state of SELinux on the system.# SELINUX= can take one...原创 2020-12-01 10:19:21 · 214 阅读 · 0 评论 -
Orderer节点启动报错:Not bootstrapping because of 1 existing channels
重建orderer报错:2019-11-14 14:42:12.520 CST [orderer.common.server] extractSysChanLastConfig -> INFO 003 Not bootstrapping because of 1 existing channels2019-11-14 14:42:12.520 CST [fsblkstorage] n...原创 2019-11-14 15:06:32 · 1726 阅读 · 7 评论 -
一文看懂golang单元测试
单元测试是质量保证十分重要的一环,好的单元测试不仅能及时地发现问题,更能够方便地调试,提高生产效率,所以很多人认为写单元测试是需要额外的时间,会降低生产效率,是对单元测试最大的偏见和误解go 语言原生支持了单元测试,使用上非常简单,测试代码只需要放到以_test.go结尾的文件中即可。golang的测试分为单元测试和性能测试,单元测试的测试用例以Test开头,性能测试以Benchma...原创 2019-01-25 14:45:05 · 548 阅读 · 0 评论 -
HyperLedger Explore 浏览器配置启动教程
Hyperledger Fabric维护的实际上是一个区块链网络。为了能够直观的观察网络上的节点,交易等行为,Hyperledger Explore随之诞生。本文讲述如何搭建 Hyperledger Explore。Hyperledger Explorer源代码链接: https://github.com/hyperledger/blockchain-explorer浏览器的目的是...原创 2019-01-21 14:01:26 · 1303 阅读 · 1 评论 -
[fabric]Cannot start service orderer: Mounts denied: In Mac
docker-compose -f docker-compose-simple.yaml upconsole output like this:Starting orderer ... Starting orderer ... errorERROR: for orderer Cannot start service orderer: Mounts denied: The pa...原创 2019-01-26 14:23:46 · 2264 阅读 · 0 评论 -
2019年区块链发展10大趋势(转)
经历了动荡的 2018 年之后,每个人都在设想 2019 年区块链未来的发展方向会怎么走?以下是对 2019 年加密经济及更广泛的区块链领域的未来发展趋势的一些猜想。 猜想一:区块链的落地应用将越来越广泛虽然今年币市哀声一片,但区块链的应用落地却是一片火热。国内外各大公司都已经开始区块链应用的开发,并取得了不错的成绩。像BATJ(百度、阿里巴巴、腾讯、京东)、网易、小米、苏宁等大型...转载 2019-02-11 11:39:17 · 4366 阅读 · 1 评论 -
fabric数据持久化
背景fabric多机kafka部署完毕,但是每次容器销毁后,网络和数据就都不存在了。对于生产环境来说,这是无法接受的,所以就要考虑数据持久化的问题了。方案综合fabric官方教程(https://hyperledger-fabric.readthedocs.io/en/latest/build_network.html#a-note-on-data-persistence),思路如下:...转载 2019-03-08 15:05:27 · 2579 阅读 · 1 评论 -
Fabric CA 配置与应用
通过命令行安装faric-ca,下载源码并编译:go get -u github.com/hyperledger/fabric-ca/cmd/fabric-ca-servergo get -u github.com/hyperledger/fabric-ca/cmd/fabric-ca-clientgo get命令会自动获取源码并编译至$GOPATH/bin,我的目录是~/go/...原创 2019-03-23 15:40:23 · 1202 阅读 · 0 评论 -
使用HttpClient携带证书报错_Certificate for <IP> doesn‘t match any of the subject alternative names:[域名]
使用HttpClient携带pfx证书通过Https协议发送SOUP报文调用WebService接口时报如下错误:Exception in thread "main" javax.net.ssl.SSLPeerUnverifiedException: Certificate for <IP地址> doesn't match any of the subject alternati...原创 2020-12-01 10:17:17 · 2524 阅读 · 1 评论 -
golang.org/x/sys/unix: unrecognized
安装的过程报错:package golang.org/x/sys/unix: unrecognized import path "golang.org/x/sys/unix" (https fetch: Get https://golang.org/x/sys/unix?go-get=1: dial tcp 216.239.37.1:443: i/o timeout)被长城墙了,您可以这...转载 2019-04-04 17:36:28 · 12733 阅读 · 0 评论 -
golang安装gRpc
安装官方安装命令:go get google.golang.org/grpc是安装不起的,会报:package google.golang.org/grpc: unrecognized import path "google.golang.org/grpc"(https fetch: Get https://google.golang.org/grpc?go-get=1: dial t...原创 2019-04-02 20:12:30 · 549 阅读 · 0 评论 -
Fabric SDK报错:NoClassDefFoundError: org/apache/http/ssl/SSLContexts
解决:NoClassDefFoundError: org/apache/http/ssl/SSLContexts开启TLS配置后,启动系统报错,在官方提供的fabric-sdk-java源码pom.xml中,发现对httpcomponent组件唯一的配置如下:<!-- https://mvnrepository.com/artifact/org.apache.httpcompone...原创 2019-05-16 11:13:20 · 640 阅读 · 0 评论