
区块链(Blockchain)
文章平均质量分 83
元宇宙开源博客
这个作者很懒,什么都没留下…
展开
-
Node.js 椭圆曲线加密库------eccrypto
eccrypto为用于浏览器和Node的椭圆曲线加密库。动机没有任何同构的ECC库为Node.js和浏览器提供ECDSA、ECDH和ECIES,并且使用最快的实现(例如secp256k1-node比其他库快得多,但只能在Node.js上使用)。所以eccrypto是一种创造的尝试。实现细节在Browserify的帮助下,eccrypto使用相同的API为浏览器和Node...翻译 2020-03-10 11:23:35 · 4078 阅读 · 0 评论 -
区块链开发-V0.1
历时半年,独自开发,从5月底11月底,老子区块链第一版终于完成了,哈哈哈基本实现了除过虚拟机外的区块链所有功能终于迈出第一步,通过测试,实现POS共识机制,哈哈,定版V0.1下一步全力开发虚拟机,哈哈哈希望本年度完成包括虚拟机所有的区块链模块独自开发。加油!!!...原创 2019-11-21 18:09:40 · 341 阅读 · 3 评论 -
央行数字货币DCEP指南
1.什么是央行数字货币2.央行数字货币优势3.央行数字货币生态4.总结5.思考1.什么是央行数字货币?1.定义:属性与纸钞同样,具有价值特征的数字支付工具,不需要账户和网络实现价值转移,只要手机有电就可以转移,不需要绑定银行账户,支持匿名性要求。2.诞生:2014年夏天的时候,周行长(周小川)有一天讲,研究发行央行数字货币的可能性。 ...原创 2019-11-05 09:21:07 · 3821 阅读 · 0 评论 -
商业公链之区块链技术使用的常见库(十)------Go语言微服务库 "github.com/micro/go-micro”
Go语言微服务库 github.com/micro/go-micro由于Grpc存在ip和具体服务绑定,一旦服务ip改变,客户端代码也要改变,管理麻烦。同时,存在服务发现和服务间调用问题。直接使用实现了服务注册的 go-micro 框架。Micro是一套微服务构建工具库。对于微服务架构的应用,Micro提供平台层面、高度弹性的工具组件,让服务开发者们可以把复杂的分布式系统以简单的方式构建起来,...原创 2019-04-09 17:13:18 · 2476 阅读 · 0 评论 -
商业公链之区块链技术使用的常见库(六)------Go语言文档数据库"gopkg.in/mgo.v2"
MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。1.安装mgo:go get gopkg.in/mgo.v22.导入mgo包import ("gopkg.in/mgo.v2""gopkg...原创 2019-04-02 08:55:49 · 4122 阅读 · 0 评论 -
商业公链之区块链技术使用的常见库(二)------GO语言日志库"github.com/cihub/seelog"
GO语言日志库"github.com/cihub/seelog"Seelog可以设置不同级别的日志库,过滤输出设定级别的日志,输出不同格式日志文件到终端或文件,根据触发日志名或者函数名区分不同日志,实现网络转发或者定期删除日志等功能。日志级别分为:Trace(相比debug范围更广,适合release),debug(只适合debug开发版本,调试时更详细的了解系统运行状态),info(重要...原创 2019-03-28 08:35:47 · 1465 阅读 · 0 评论 -
商业公链之区块链技术使用的常见库(五)------Go语言并发actor库"github.com/AsynkronIT/protoactor-go/actor"
Go语言并发actor库"github.com/AsynkronIT/protoactor-go/actor"ProtoAct是下一代的Actor模型框架,提供了.NET和Go语言的实现,默认支持分布式,提供管理和监控功能。Proto.Actor提供了可伸缩、实时的事务处理,任何需要高吞吐量、低延迟的业务需求都可以用到Proto.Actor。目前该版本处于开发状态中,并不太适...原创 2019-04-01 09:35:12 · 957 阅读 · 0 评论 -
商业公链之区块链技术使用的常见库(四)------Go语言内存数据库 "github.com/tidwall/buntdb"
BuntDB是纯Go开发的、低层级的(low-level)的、可嵌入的key/value内存数据库(IMDB),数据持久化存储,遵从ACID,支持自定义索引和地理空间数据。BuntDB旨在给用户提供可靠稳定高效的数据库。特点:1.因为是内存数据库,所以支持快速的读和写2.可采用简单的API,实现数据库嵌入功能3.20维以下的空间索引;对地理空间数据有用4.支持创建任何数据类型...原创 2019-04-01 09:33:33 · 1549 阅读 · 0 评论 -
商业公链之区块链技术使用的常见库(一)------Go语言命令行库"gopkg.in/urfave/cli.v1"
Go语言命令行库"gopkg.in/urfave/cli.v1"很多go语言都使用这个来实现命令行操作,包括以太坊geth。用户只需要提供一些模块的配置、参数的解析、以及关联函数。其他在库内自动完成,并生成帮助信息。举个例子想要实现这种命令行界面:NAME:GoFlag - flag testUSAGE:___go_build_goflag_go.exe ...原创 2019-03-27 19:02:56 · 1389 阅读 · 0 评论 -
商业公链源码解析(零)------目录
有了大把基础知识,又有了区块链技术的追求,不分析一把竞争对手的区块链源码,不见一见商业级源码风采,岂不是很亏,感谢这个开源的区块链技术世界,正是开源,才让我们一睹区块链风采,追赶先行者脚步。哈哈,摸着石头过河,好爽。项目介绍:目前分析商业源码,从而构建区块链架构意识,落地具体技术。项目步骤:区块链架构和技术 区块链技术所用的常见库 区块链各个模块设计及核心代码目录:商业公链之...原创 2019-03-27 18:20:29 · 595 阅读 · 0 评论 -
hyperledger fabric nodejs SDK开发(一)------SDK管理员注册机制
SDK开发在确定了开发的智能合约,我们必须为合约开发搭建合适的API,实现应用调用API,实现区块链服务的成功调用。我曾经尝试使用Composer 进行开发搭建。Composer 目前支持的fabric版本在1.2,而组织demo支持运行的1.0版本。简单的说 , hyperledger composer 是一个集成工具,他能更快的开发区块链应用。它能定义资产,参与者,事务方法(智能合约),权...原创 2019-03-27 18:14:08 · 1666 阅读 · 2 评论 -
hyperledger fabric 智能合约开发(六)------其他合约接口
其他合约接口我们在开发中,还会遇到其他合约接口调用,可能不会太频繁,但会遇见。下面我来介绍一下其他合约接口开发:Package cid(import "github.com/hyperledger/fabric/core/chaincode/shim/ext/cid")func AssertAttributeValue检查属性值是否等于指定值func AssertAttribute...原创 2019-03-27 18:09:14 · 1500 阅读 · 1 评论 -
商业公链之区块链技术使用的常见库(三)------Go语言键值数据库 ”github.com/syndtr/goleveldb/leveldb”
levelDB是Google开源的KeyValue文件数据库,LevelDB是一个非常高效的kv数据库,1.2-version就能够支持billion级的数据量了,在这个数量级下还有着非常高的性能,主要归功于它的良好设计,特别是LSM算法.特点:1.key和value都是任意长度的字节数组;2.entry(即一条k-v记录)默认是按照key的字典顺序存储的,开发者开源重载这个排序函数;...原创 2019-03-29 08:48:44 · 930 阅读 · 0 评论 -
商业公链之区块链技术使用的常见库(九)------Go语言http路由库"github.com/gorilla/mux"
目录介绍安装使用常用方法介绍1.初始化路由2.路由注册3.子路由的使用4.定义路由别名5.静态文件路由7.生成已注册的URL8.Walk方法9.Middleware 中间件10.开启监听端口:11.get请求处理:12.post请求处理测试Get请求Post请求综合示例介绍mux是一个用来执行http请求的路由和...原创 2019-04-08 11:18:27 · 1984 阅读 · 1 评论 -
商业公链之区块链技术架构设计(一)------区块链对比
一、源码类型当前区块链源码主要以C++为主,辅之以Go,而对于国内庞大的Java开发者来说来说,又出现Java区块链。个人认为C++会在未来继续占大头,毕竟效率最高,而Go由于分布式并发编程会渐渐发展。商业区块链源码种类 公链 语言 联盟链 语言 底层框架 语言 比特币 C++ fabric Go IPFS Go 以太坊...原创 2019-04-11 17:09:56 · 1625 阅读 · 0 评论 -
hyperledger fabric nodejs SDK开发(五)------SDK其他功能
SDK其他功能Class:Channel1, new Channel(name, clientContext)创建一个通道实例Name 通道名 licentContext客户端实例2, addOrderer(orderer, replace)添加排序节点 节点名 是否覆盖之前同名的节点(boolean)3,addPeer(peer, mspid, mspid, roles...原创 2019-08-07 10:14:45 · 737 阅读 · 0 评论 -
hyperledger fabric nodejs SDK开发(四)------SDK修改账本机制
SDK修改账本机制async saveUser (ctx) { const body = ctx.request.body; //获取请求内容 console.log(`request`,body.k1) //打印请求k1内容 var fabric_client = new Fabric_Client(); //新建...原创 2019-08-07 10:12:40 · 939 阅读 · 0 评论 -
关于区块链数字身份认证应用思考
区块链更为实际的问题在于解决当前隐私安全问题,从而解决中介机构或者中心化机构保存用户大量信息造成的个人隐私实际上已经不存在,加之立法的原因,出现一旦某一个应用安全风控不合理,就会实际上使用户全部账户出现极大的安全风险.基于此痛点,我在结合区块链特点上提出以下设想,用户上传个人隐私信息,在对个人隐私信息进行处理,确认该实际信息是该私钥用户的,在用户客户端实现离线模块隐私信息加密,即使用用户公钥加...原创 2019-08-08 10:44:09 · 5178 阅读 · 1 评论 -
hyperledger fabric nodejs SDK开发(三)------SDK查询机制
SDK查询机制async indexPage ( ctx ) { //异步函数indexPage const title = 'admin page' //设置一个title的常量 let result = '' //设置一个块变量result const body = ctx.request.body; //获取传入请求的...原创 2019-08-05 09:51:39 · 614 阅读 · 0 评论 -
hyperledger fabric nodejs SDK开发(二)------SDK用户注册机制
SDK用户注册机制'use strict';/** Register and Enroll a user //注册用户*/var Fabric_Client = require('fabric-client');var Fabric_CA_Client = require('fabric-ca-client');var path = require('pat...原创 2019-08-05 09:42:32 · 1346 阅读 · 5 评论 -
区块链技术 | Cosmos SDK 文档概述
概述SDK 介绍Cosmos-SDK 是支持构建多种资产,共识机制为POS(权益证明)或者POA(权威证明)的一个区块链框架,例如Cosmos Hub。Cosmos SDK的目标是允许开发者轻松地从0开始构建自定义区块链,同时可以与其他区块链交互。我们想象一下,SDK可以作为类似NPM框架,以Tendermint为核心,构建稳定的区块链应用。它主要基于以下两个原则:模块化:任何...翻译 2019-05-09 13:36:14 · 2165 阅读 · 0 评论 -
区块链技术入门 | 区块链开发技术栈
如果你想要从事区块链行业,那么当前区块链技术开发划分必然值得一看。大概我所了解的在区块链开发的分为区块链底层开发、区块链Dapp开发、区块链生态开发这三类。如果想要从事与区块链底层开发,需要做以下三步:1.Go语言基础,掌握流行区块链开发用到的Go库。2.简单区块链搭建,掌握区块链基本概念与简单算法。3.阅读商业级别区块链源码,了解区块链技术流行设计与最新技术。最后要...原创 2019-04-28 10:16:31 · 4916 阅读 · 0 评论 -
商业公链之区块链技术使用的常见库(七)------Go语言缓存LRU库"github.com/hashicorp/golang-lru"
Golang第三方库golang-lru基于双向链表实现了三种LRU及变种Cache:LRU,Q2,ARC。LRU算法:若数据已经在缓存中,将其移到队首,并返回结果。若数据不在缓存中,将新记录添加到队首。若缓存超长,清理队尾缓存数据。2Q算法有两个缓存队列,一个是FIFO队列,用于保存最近访问的数据;一个是LRU队列,用于保存热点数据。recent用于保存最近访问的数据,frequent用...原创 2019-04-03 09:07:06 · 1027 阅读 · 0 评论 -
hyperledger fabric 智能合约开发(四)------智能合约通用合约设计
智能合约通用合约设计我们一般会在合约中定义结构体,然后序列化后存入 state 数据库中。一旦数据结构变化,就需要升级 chaincode。下面我们只实现了 create, find, update, delete 四个方法,没有数据结构,用户自行提交 json 格式或者其他序列化后的字符串数据。package mainimport ("fmt""github.com/hy...原创 2019-03-27 17:22:49 · 2143 阅读 · 0 评论 -
hyperledger composer 测试(一)1.21 基本概念
一、概念:是一个对超级账本进行开发的软件,目前仅支持现有的fabric基础架构,同时使用业务网络数据,快速建立当前的业务网络模型。编程模型包括建模语言和api,可以快速定义和部署业务网络和应用程序,允许参与者开发交易来交换资产。缺陷:只支持fabric,而且在生产环境进行设置时不支持多联盟,目前单联盟多组织目前只支持fabric1.0,单联盟单组织支持fabric1.2,比较尴尬,还需要不断进...原创 2018-10-08 10:23:40 · 735 阅读 · 0 评论 -
在腾讯云上布置存证案例(三机二节点)
1.系统最好选择桌面的Ubuntu,以防后期布置浏览器时失败,内存最好大于2G,不然卡成PPT。2.直接将不同机构的各个节点(选择application.xml中的id)放入相同的CA证书。3.重启节点时很难让节点重新启动,需要重新布置节点,即删了文件夹再来。...原创 2018-09-28 16:02:42 · 233 阅读 · 0 评论 -
fisco-bcos 存证案例(单节点单机)注意
我在搭建存证案例是发现需要注意以下三点:1.nodeid@IP:channelport2.将节点CA复制到存证工具包conf中3.存证工具包conf中application.xml文件需要设置,直接复制节点的就可以了。测试成功只要设置好,其他历史命令...原创 2018-09-26 08:47:53 · 1649 阅读 · 4 评论 -
Fisco BCOS 测试文档
环境:使用虚拟机:VMware Workstation Pro 系统镜像:ubuntu-16.04.4-desktop-amd64 配置:40G硬盘 2G运存1.激活root账号sudo passwd root //ubuntu默认是root没有未启用,需要对root进行设置密码来激活它2.安装Vim(写程序的比较方便的软件) sudo apt-get inst...原创 2018-09-20 11:32:38 · 2399 阅读 · 0 评论 -
Ubuntu 操作问题
1.现象:su 或 su root出错,密码:"正确“,而没有反应问题:su:authentication failure解决:ubuntu默认是没有未启用,需要对它进行设置密码来激活它sudo passwd rootEnter new UNIX password:Retype new UNIX password: passwd:password updated succe...原创 2018-09-13 11:12:35 · 151 阅读 · 0 评论 -
Ubuntu curl 问题 :curl: (48) An unknown option was passed in libcrul curl: (6) Could not resolve host:
我在使用Ubuntu 的时候现象:curl www.baidu.com问题:curl: (48) An unknown option was passed in to libcurl解决:很可能你有一个更新的curl,使用旧的libcurl,不知道curl尝试使用的一个或多个选项。curl --version 出现curl与libcurl 版本不一致,出现这种情况,首先移除旧的curl...原创 2018-09-13 11:06:56 · 2736 阅读 · 0 评论 -
Ubuntu go语言的安装卸载
以前使用apt-get install 安装的版本太过旧了,所以卸载安装新的版本1.sudo rm -rf /usr/local/go sudo rm -rf /usr/bin/go2.wget https://dl.google.com/go/go1.10.4.linux-amd64.tar.gzsudo tar -xzf go1.10.4.linux-amd64.tar...原创 2018-09-18 11:54:03 · 13564 阅读 · 1 评论 -
搭建超级账本环境最快的方式
在学习hyperledger compose 时发现,有一个很赞的环境搭建方式:curl -O https://hyperledger.github.io/composer/latest/prereqs-ubuntu.shchmod u+x prereqs-ubuntu.sh./prereqs-ubuntu.sh注:失败的话尝试:curl -O https://hyperle...原创 2018-09-18 11:01:17 · 742 阅读 · 0 评论 -
apt-get install 问题
一、现象:E: Could not get lock /var/lib/dpkg/lock - open (11: Resource temporarily unavailable)E: Unable to lock the administration directory (/var/lib/dpkg/), is another process using it?原因:其他apt在运行当中...原创 2018-09-18 10:00:14 · 643 阅读 · 0 评论 -
Ubuntu npm/node 安装
安装了多次也尝试了多种方式安装nodejs,不是版本太低,就是无法安装,之后更新了软件源, 安装命令:curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -sudo apt-get install -y nodejs检查: ...原创 2018-09-10 17:15:09 · 392 阅读 · 0 评论 -
搭建超级账本fabric1.0运行环境
搭建环境:VMware workstation 14,Ubuntu16.041.安装VMware workstation 14软件,安装Ubuntu16.04系统。2.sudo vi /etc/apt/sources.list打开这个apt源列表,如果其中看到是http://us.xxxxxx之类的,那么就是外国的,如果看到是http://cn.xxxxx之类的,那么就不用换的。我的是...原创 2018-08-09 10:02:21 · 472 阅读 · 0 评论 -
hyperledger composer 测试 (附录)1.问题
1.问题:E: Could not get lock /var/lib/dpkg/lock - open (11: Resource temporarily unavailable)E: Unable to lock the administration directory (/var/lib/dpkg/), is another process using it? 原因:同时有两个apt在...原创 2018-10-08 10:39:16 · 1525 阅读 · 0 评论 -
关于Grpc的学习
本文较为简略,只是介绍了一个大概的流程,具体的开发后面博文可见。一、定义:定义一个服务,指定其能被远程调用的方法(包含参数和返回类型)。在服务端实现这个接口,同时运行一个grpc服务器来处理客户端调用。客户端拥有一个文件(存根)可以访问服务端。二、依赖:protocol buffers,谷歌开源的结构数据序列化机制(类似json),通过使用proto file创建grpc服务,protoc...原创 2018-09-30 11:16:37 · 375 阅读 · 0 评论 -
商业公链之区块链技术使用的常见库(八)------Go语言单调时间库"github.com/aristanetworks/goarista/monotime"
操作系统提供了一个“挂钟”,它可能会随时钟同步发生变化,而“单调时钟”则不会。一般的规则是挂钟是用来告诉时间的,而单调时钟是用来测量时间的。后来的讲时间操作使用挂钟读数,但后来的时间测量操作,特别是比较和减法,使用单调时钟读数。需要测量时间时最好使用monotime.Now()而不是time.Now(),相比之下前者更准确。1.获取当前单调时间:start := monotime.Now()...原创 2019-04-04 08:50:52 · 490 阅读 · 0 评论 -
hyperledger fabric 智能合约开发(三)------合约接口的数据操作方法
合约接口的数据操作方法写入区块链数据如果是 struct 结构体,需要序列化成二进制,通常使用 json,其他形式的序列化也可以,只要能反序列化即可(反序列化,是二进制数组变为格式化数据)。Hyperledger fabric levelDB提供基于key/value的数据存储,其中key是字符串,value则是二进制字节数组,Hyperledger的Go API提供了三个方法用于数据存取:P...原创 2019-03-22 16:40:08 · 4979 阅读 · 0 评论 -
hyperledger fabric 智能合约开发(二)------合约接口介绍
合约接口介绍Chaincode 实现 shim.ChaincodeStubInterface 接口,有三个方法,分别是:Init、Query 和 Invoke。链码结构:链码包头:由于需要编译为可执行文件,所以需要 main 包。package main导入包:导入其他库的包,一般这里需要导入两个包 "github.com/hyperledger/fabric/core/cha...原创 2019-03-22 08:45:11 · 2334 阅读 · 0 评论