-
goWeb编程
一、开启一个网络服务go语言本身就对网络进行了封装,所以开启一个网络服务非常容易1、 设置监听端口 http.ListenAndServe(“:9000”, nil):9000监听的端口 handler:一般传nil2、设置访问路由 http.HandleFunc(“/”, Hello)指定访问localhost:9000时调用Hello函数新建main.gopackage mainimport ( "net/http" "log" "io")func main() { http.Ha...…
-
Fabric 使用开发模式测试,打包,签名链码
正常情况下chaincode由对等体启动和维护。然而,在“开发模式”下,链码由用户构建并启动 如果没有安装Hyperledger Fabric Samples请先安装 如果没有下载Docker images请先下载跳转至fabric-samples的chaincode-docker-devmode目录$ cd ~/hyfa/fabric-samples/chaincode-docker-devmode/使用docker images查看Docker镜像信息(显示本地Docker Reg...…
-
Fabric 交易过程
Peer节点类型 --Endorser背书节点 用于背书签名 只有一部分节点是背书节点 --commit节点 用于保存区块 所有节点都是commit节点 --Leader节点 获取orderer服务节点生成的区块,广播给本组织中的其他节点 --Anchor锚节点 跨组织的数据交换交易过程:1、应用首先将交易提案发送给背书节点2、如果是一...…
-
Fabric 链码开发
简介数字货币曾是区块链技术的唯一应用场景对智能合约的支持突破了场景限制, 丰富了区块链应用的适用范围, 可以支持多行业、大规模的商业应用区块链应用区块链应用: 一般由若干部署在区块链网络中的智能合约, 以及调用这些智能合约的应用程序组成用户专注于与业务本身相关的应用程序智能合约则封装了与区块链账本直接交互的相关过程, 被应用程序调用智能合约开发智能合约本质上是为了对上层业务逻辑进行支持且直接与账本结构打交道, 处于核心位置.所以设计得当可以简化上层应用开发的过程应用程序开发应用程序通过调...…
-
Fabric 建立第一个网络
进入到first-network目录下文件目录如下,可以看到所有文件执行权限都是root,所以在执行脚本时需要管理员权限sudo前提准备: 1、生成组织结构及身份证书 2、创建orderer的初始区块 启动orderer服务 3、生成应用通道配置交易文件 用来生成应用通道,指定通道内的成员及访问策略 4、生成锚节点更新配置文件 用来配置锚节点1、自动启动byfn.sh就是我们自动启动需要用到的脚本文件启动前准备 byfn.sh generate 生...…
-
Fabric链码的概念与使用
概念:Chaincode: 链上代码, 简称链码, 一般是指用户编写的应用代码链码被部署在Fabric网络节点上, Peer 节点 – 背书节点 – commit节点 – Leader节点 – 锚节点运行在隔离沙盒(当前为Docker容器)中,并通过gRPC协议与相应的Peer节点进行交互, 以操作分布式账本中的数据protobuf分类链码一般分为: 用户链码 系统链码用户链码由应用开发人员使用Go(Java/JS)语言编写基于区块链分布式账本的状态及处理逻辑运行在链...…
-
Fabric环境搭建
1、安装fabric需要的工具 git curl vim (可选,vm) Golang(GOROOT,GOPATH)1.10.1 Docker 一个容器 docker_compose 实现对Docker的自动化操作,简化了Docker容器的操作命令,一条命令即可启动docker容器,相关的操作命令是被集成在一个配置文件中 Node,npm(可选)安装git$ sudo apt update$ sudo apt install git安装curl$ sudo apt insta...…
-
从零开始写一条公链(一)
写在前面:本文目的:使用go语言,实现简单的区块结构,并通过pow共识算法将区块存储在区块链上,结构如下图 Prehash :上一个区块的hash值,通过它将两个区块串联起来,以后遍历区块也要用到,同时也保证了区块的有效性与安全性Timestamp:区块产生的时间Data:区块上的记录,交易Hash:当前区块的hash注:这只是一个简单的区块结构,具体结构还要根据区块的作用来定义属性实现一个区块定义一个结构体type Block struct { //时间戳 Timestame int6...…
-
go语言实现一个hash表
假设我现在有一条链表,链表中每个节点上都存储一个key-value的键值对,那么我就可以通过遍历链表,找到一个给定的key值对应的value,链表的结构是这样的//声明节点类型type Node struct { //数据域 Data DM //地址域 NextNode *Node}//用结构体做数据域的类型type DM struct { K string V string}上面的代码将key-value封装为一个结构体DM,节点Node数据域存储当前的key-value键值对,地址域...…
-
生成图片链接
1、打开七牛云,注册,登录 2、新建一个存储空间,如果在存储空间列表已经有一个存储空间,跳过这一个步 3、进入刚才创建的存储空间,内容管理->上传文件->选择文件->等待上传完成,关闭即可 4、在内容管理下面的列表中可以看到刚才上传的图片,选择后面的“…”->复制外链,即这张照片的链接 5、在浏览器打开刚才复制的链接,就可以看到刚才的照片了…
-
React使用react-router-dom实现页面跳转与传值
先把版本写在前面 "react-router-dom": "^4.2.2" 以前就得版本使用Context对象来控制路由,现在新版本改了用history了使用导航在react-router-dom提供了两个控件BrowserRouter和HashRouter都可以实现导航,区别看这里 这篇手记的demo中使用的是BrowserRouter先上代码index.jsimport React from 'react';import ReactDOM from 'react-dom';impo...…
-
在React中导入Material-UI与使用
导入Material-UI 首先创建一个React项目 npm install -g create-react-app create-react-app myapp创建一个myapp的react的项目,myapp可以随意写,但不能有大写字母 导入Material-UI npm install material-ui导入成功,在项目中的package.json中会看到”material-ui”: “版本号”使用import React, {Component} from 'reac...…
-
星云链js通过RPC接口与星云链交互(2)
上一篇星云链js通过RPC接口与星云链交互(1)介绍了如果通过js创建一个账户。查询账户信息、发送交易可以查看https://github.com/nebulasio/neb.js 这个demo里的方法,很简单,直接调用就可以了。这篇博客介绍通过js调用自己上传的合约中的方法。首先下载一个星云提供的一个DappDemo super-dictionary,super-dictionary是一个字典应用,可以根据用户输入,输出一个结果,如果没有对应结果,用户可以自己添加一个结果。下载完成双击i...…
-
星云链使用wallet部署,调用合约
#编写一个智能合约星云链智能合约可以使用JavaScript、TypeScript来编写。 在JavaScript、TypeScript基础上,编写智能合约有三个简要规范: 1、智能合约代码必须是一个Prototype的对象; 2、智能合约代码必须有一个init()的方法,这个方法只会在部署的时候被执行一次; 3、智能合约里面的私有方法是以_开头的方法,私有方法不能被外部直接调用; 根据上面的规范写一个简单的智能合约 ...…
-
星云链js通过RPC接口与星云链交互(1)
星云节点中实现了RPC服务器和HTTP服务器,提供给用户丰富的接口来与星云节点交互。接口模块现在,星云节点的所有的接口被分为两个模块:API和Admin。 API:提供所有和用户私钥无关的接口Admin:提供所有和用户私钥相关的接口星云已经为我们准备了API,我们需要做的就是调用就好了,这些API都在net.js中。导入neb.js可以参考这个链接导入https://github.com/nebulasio/neb.js其实就是编译一下,然后就拿到了一个dist包,这里面就是我们需要的A...…
-
星云链创建钱包
创建星云链钱包 1、下载网页星云钱包 https://github.com/nebulasio/web-wallet 2、查看网页版钱包目录打开index.html,在浏览器打开一个保存在本地的web版钱包 特别提醒: 请务必保证秘钥文件的安全,不要忘记密码(私钥是您数字资产的凭证,请不要告诉任何人,如不慎暴露或丢失,会面临丢失对应数字资产的风险,请谨慎保管) 3、保存密码库文件点击下载密码库文件,保存到电脑上,这里包含了这个钱包内的私钥信息,因此请妥善保管,避免遗失或被盗 注...…
-
星云链部署智能合约
部署合约 curl -i -H 'Accept: application/json' -X POST http://localhost:8685/v1/admin/transactionWithPassphrase -H 'Content-Type: application/json' -d '{"transaction": {"from":"n1H4MYms9F55ehcvygwWE71J8tJC4CRr2so","to":"n1H4MYms9F55ehcvygwWE71J8tJC4CR...…
-
星云链发送交易
创建账户$ ./neb account newYour new account is locked with a passphrase. Please give a passphrase. Do not forget this passphrase.Passphrase:Repeat passphrase:Address: n1SQe5d1NKHYFMKtJ5sNHPsSPVavGzW71Wy 密码不要乱写,记住密码 查看账户curl -i -H Accept:applicatio...…