自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Revelation_of_Turing

Blockchain,因为专注,所以专业。

  • 博客(61)
  • 收藏
  • 关注

原创 如何利用truffle向OKExChain部署合约

如何利用truffle部署合约1 初始化truffle工程2 添加合约代码3 修改truffle配置文件4 安装hdwallet-provider5 修改 1_initial_migration.js文件6 部署合约1 初始化truffle工程首先创建一个truffle工程:$ truffle init2 添加合约代码在工程内contracts路径下添加合约代码TokenERC20.sol:pragma solidity ^0.4.25;interface tokenRecipient

2021-04-07 16:07:05 36

原创 如何用remix编译solidity工程中深度依赖的合约文件

如何用remix编译solidity工程中深度依赖的合约文件现在的一些defi项目的源代码中,各个sol文件之间都存在深度依赖的现象:如何将其快捷地放到remix中进行编译和部署呢?这里需要借用一个小工具:truffle-flattener,并且本机已经安装了truffle环境。该合约项目也得是truffle工程。安装truffle-flattener:npm install -g truffle-flattener将项目中的某个合约文件及其依赖都合并写入一个文件里: truffle-fl

2021-04-01 14:41:32 41

原创 cargo通过更换源来加速下载

1 背景介绍开发substrate-node-template时候,利用cargo update进行依赖更新。出现拉包速度慢,甚至会超时:2 解决方案2.1 更换源 $ vim ~/.cargo/config输入以下内容:[source.crates-io]registry = "https://github.com/rust-lang/crates.io-index"replace-with = 'ustc'[source.ustc]registry = "git://mirror

2021-01-12 17:51:55 89

原创 如何在vim快速删除全部内容

在vim的普通模式下键入“ggdG”即可删除其中全部内容。说明:gg:光标跳转到该文件的行首;dG:删除光标行及其以下行的全部内容。(注:d为删除,G为光标跳转到末尾行)ps:本人热爱图灵,热爱中本聪,热爱V神,热爱一切被梨花照过的姑娘。以下是我个人的公众号,如果有技术问题可以关注我的公众号来跟我交流。同时我也会在这个公众号上每周更新我的原创文章,喜欢的小伙伴或者老伙计可以支持一下!如果需要转发,麻烦注明作者。十分感谢!公众号名称:后现代泼痞浪漫主义奠基人...

2021-01-05 11:06:26 783 1

原创 如何将正在终端中运行的进程或者docker切至后台运行

1 背景在运行docker或者使用终端时,需要在启动进程或容器后通过手动输入密码的方式进行交互。如果通过docker run -d xxx 或者nohup xxx 的方式启动又无法进行密码输入导致内部程序无法正常运行。系统:macOS Big Sur 11.0.12 使用screen工具2.1 创建一个新session会话名为sessionName: $ screen -S sessionName创建后会出现第一个窗口:实际为打开一个系统默认的bash终端。此时已经进入了新的会话当中,在这

2020-12-23 17:23:23 125 1

原创 如何设置ssh远程免密登录

设置ssh远程免密登录1.本机生成公钥2.上传公钥到远程服务器3.测试1.本机生成公钥本地客户端生成公私钥: $ ssh-keygen该命令会在用户目录.ssh文件夹下创建公私钥 $ ls ~/.ssh2.上传公钥到远程服务器假设远程服务器地址为:10.0.240.21 $ ssh-copy-id -i ~/.ssh/id_rsa.pub root@10.0.240.21该指令会将你本机的公钥写入远程服务器的~/.ssh目录下:3.测试本机终端远程登录: $ ssh roo

2020-12-14 20:51:44 38 1

原创 如何在pycharm中安装和调用tushare等第三方库

如何在pycharm中安装tushare等第三方库1 背景2 解决方法1 背景之前一直使用jupytor-notebook做量化数据分析。今日想使用pycharm来做一下,却发现在其工程中import tushare和seaborn库时候出现“No module …”报错:2 解决方法直接在pycharm的终端中重新install所需要的第三方库: $ pip install seaborn之后就可以在pycharm IDE中调用所安装的第三方库了。ps:本人热爱图灵,热爱中本聪,热

2020-06-07 13:22:01 1039

原创 git如何修改远程分支名称

git如何修改远程分支名称1 背景2 解决方法1 背景为了修bug,重新checkout -b了一个分支进行处理。处理后push origin,并发起PR。一切完毕后,发现自己checkout -b的分支名有问题。2 解决方法前提:远程错误的分支名:branch_old将修改为的分支名:branch_new本地终端输入以下指令:$ git branch -m branch_old branch_new $ git push origin :branch_old$ git push -

2020-05-26 11:53:55 2348

原创 如何将命令行中的git提示语言改为英文

如何将命令行中的git提示语言改为英文1. 背景2.解决方法2.1 mac自带的终端2.2 zsh终端格式3. 修改效果1. 背景利用brew安装git后,发现git的提示语言都是中文:如何重新改为英文呢?2.解决方法2.1 mac自带的终端 $ vim ~/.bash_profile添加如下内容 alias git='LANG=en_GB git'更新配置: $ sou...

2020-04-30 12:12:58 1213

原创 brew安装与卸载报错:curl: (7) Failed to connect to raw.githubusercontent.com port 443: Connection refused

brew安装与卸载报错:curl: (7) Failed to connect to raw.githubusercontent.com port 443: Connection refused1. brew官网https://brew.sh/2. 问题重现本机系统:macOS High Sierra 10.13.6由于一些原因,想卸载brew。在终端输入以下命令:/usr/bin/r...

2020-04-29 14:04:47 358

原创 如何在github上添加自定义的issue template

如何在github上添加自定义的issue template1. 添加单个模板2. 添加多个模板1. 添加单个模板在github的指定repositories的根目录下创建新目录.github:$ mkdir .github在新建的.github下添加md文件ISSUE_TEMPLATE.md。该md文件将作为issue默认的模板。提交commit并push,再发起issue时将...

2020-04-21 13:00:07 652

原创 在git中查看/删除本地分支和远程分支

查看当前项目中的所有分支情况: $ git branch -a查看本地所有分支情况: $ git branch删除本地某分支(branch_a):检查merge状态: $ git branch -d branch_a不检查merge状态: $ git branch -D branch_a删除远程某分支(branch_a): $ git push or...

2020-03-09 15:36:52 181

原创 Mac上如何安装python64位的talib库(亲测好用)

Mac上如何安装python64位的talib库(亲测好用)第一步安装brew(如果已安装可以跳过): $ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"中文官网:https://brew.sh/index_zh-cn.html利用b...

2020-03-01 14:29:38 1573

原创 github如何从自己fork的工程向主工程提交代码

在github上,如何从自己fork的工程向主工程提交merge pull先在github上fork主工程到自己的仓库中:等fork结束后,git clone自己repo中的被fork的工程到本地: $ git clone (个人repo的git url)关联主工程: $ git remote add okex(自定义分支名) (主工程的git url) # 查看关联情况...

2020-03-01 13:01:03 609

原创 如何通过命令查看python中的所有内置函数和内置常量

如何通过命令查看python中的所有内置函数和内置常量举例python版本:利用python中的语句输出python中的所有内置函数及内置常量名: dir(__builtin__)输出一个列表: In [1]: dir(__builtin__) Out[1]: ['Ar...

2019-06-28 11:13:07 3211

原创 Michael.W深度剖析Bitcoin系统第3期——比特币的UTXO模型

Michael.W深度剖析Bitcoin系统第3期——比特币的UTXO模型1 比特币的账户模式2 coinbase交易中数据域的秘密3 挖矿“对于每个参与者都是平等的么?4 比特币发行总量1 比特币的账户模式比特币采用的是基于交易的账本模式,transaction-based ledger。账本中并不像传统银行的中心数据库那样,记录着所有开户人的资产信息。如果你想知道某个比特币地址上的所有资产...

2019-06-21 23:05:19 206

原创 mac系统如何开启spyder的代码补全提示功能(详细图文版)

安装完Anaconda后启动的spyder是没有开启代码补全提示功能的。mac端开启操作如下:点击ok。之后关闭Spyder,打开终端输入: $ conda uninstall enum34卸载成功后重启Spyder,此时已经开启代码提示功能。输入一个字母后按tab键,即可看到提示内容。ps:本人热爱图灵,热爱中本聪,热爱V神,热爱一切被梨花照过的姑娘。以下是我个人的公...

2019-06-06 10:59:59 1705

原创 package golang.org/x/tools/cmd/goimports: unrecognized import path "golang.org/x/tools/cmd/goimports

在安装tendermint的时候,出现如下报错:package golang.org/x/tools/cmd/goimports: unrecognized import path "golang.org/x/tools/cmd/goimports" (https fetch: Get https://golang.org/x/tools/cmd/goimports?go-get=1: dial...

2019-06-04 10:25:52 3043

原创 Michael.W深度剖析Bitcoin系统第2期-比特币的数据结构与协议

Michael.W深度剖析比特币系统第2期-比特币的数据结构与协议1 比特币中的数据结构2 比特币的协议2.1 比特币网络是如何验证比特币的真伪2.2 比特币区块头2.3 比特币的共识协议2.4 比特币交易2.5 比特币中的“披萨日”1 比特币中的数据结构比特币中最具有标志性的数据结构就应该算是”哈希指针“。这种指针不单单要标记出结构体的地址,同时还要记录该结构体的哈希值。这样可以通过该指针...

2019-03-31 23:17:45 218

原创 Michael.W深度剖析Bitcoin系统第1期-初探比特币

Michael.W深度剖析比特币系统第1期-初探比特币1 Michael.W有话说2 比特币与区块链3 比特币系统设计中涉及到的密码学3.1 哈希3.2 签名3.3 比特币地址1 Michael.W有话说据不完全的非官方数据统计,我身边对区块链技术有所了解的朋友就像晚上会跟我聊微信的妹子一样寥寥无几。所以我在这里也是给大家普及一下:正常人触不到的技术领域中到底在发生着什么样的变革。我所写的东...

2019-03-29 00:32:51 258 2

原创 Michael.W谈hyperledger Fabric第28期-详细带读Fabric的源码13-区块的存储持久化

Michael.W谈hyperledger Fabric第28期-详细带读Fabric的源码13-区块的存储持久化1 区块的存储持久化2 源码实现1 区块的存储持久化Fabric的区块存储持久化,即区块的文件存储。Fabric的文件存储是基于文件系统的,而不像前面所讲的世界状态和历史状态索引是基于levelDB数据库。注:Fabric的区块索引还是存储在levelDB中,用于快速定位区块位...

2019-03-26 19:44:06 300

原创 Michael.W谈hyperledger Fabric第27期-详细带读Fabric的源码12-历史状态数据库在代码级别的行为实现

Michael.W谈hyperledger Fabric第27期-详细带读Fabric的源码12-历史状态数据库在代码级别的行为实现1 什么是历史状态数据库?2 如何表示一笔交易被改变?3 如何查询某key的变动历史1 什么是历史状态数据库?如果想得到一个用户账户中的交易历史,状态数据库是无法满足的,那么就要从创世区块开始遍历,遇到与该账户相关的交易就记录一下。这个过程是耗时的。历史状态数据...

2019-03-22 22:56:19 367

原创 Michael.W谈hyperledger Fabric第26期-详细带读Fabric的源码11-世界状态在代码级别的行为实现

Michael.W谈hyperledger Fabric第26期-详细带读Fabric的源码11-世界状态在代码级别的行为实现1 世界状态的底层依赖2 上层智能合约的键值对与底层存储的键值对是如何相关联的?3 如何持久化区块的状态信息4 如何记录最新存储的区块状态1 世界状态的底层依赖关于世界状态的定义可以去我之前写的一篇帖子《Michael.W谈hyperledger Fabric第3期-关...

2019-03-20 19:40:36 674

原创 Michael.W谈hyperledger Fabric第25期-详细带读Fabric的源码10-peer节点交易的读写集合RWSet

Michael.W谈hyperledger Fabric第25期-详细带读Fabric的源码10-peer节点交易的读写集合RWSet1 读写集合与“双花”问题2 交易读写集合的生成3 交易读写集合的验证1 读写集合与“双花”问题个人认为这个是Fabric的重点,因为读写集合是Fabric中防止"双花"问题的根本手段。现在的信息互联网只能做到信息的复制,当你浏览一个网站的时候,实际上是服务器...

2019-03-19 20:45:24 706

原创 Michael.W谈hyperledger Fabric第24期-详细带读Fabric的源码9-peer节点有关账本的重要接口

Michael.W谈hyperledger Fabric第24期-详细带读Fabric的源码9-peer节点有关账本的重要接口1 PeerLedgerProvider接口-账本操作2 PeerLedger接口-账本查询3 ValidatedLedger接口-账本存储1 PeerLedgerProvider接口-账本操作Fabric账本存储的接口定义在core/ledger/ledger_int...

2019-03-19 17:01:14 153

原创 Michael.W谈hyperledger Fabric第23期-详细带读Fabric的源码8-peer节点账本读写的底层机制与RWSet读写集合

Michael.W谈hyperledger Fabric第23期-详细带读Fabric的源码8-peer节点账本读写的底层机制与RWSet读写集合1 账本读写的流程2 RWSet(读写集合)3 交易的验证3.1 交易验证的实现机制3.2 Fabric中为何要采用读写集合这种验证机制呢?3.3 Fabric中所有记录的内容都非指令操作么4 世界状态的本质4.1 世界状态的作用4.2 如果没有世界状态...

2019-03-19 16:24:35 523 1

原创 Michael.W谈hyperledger Fabric第22期-详细带读Fabric的源码7-orderer节点相关源码梳理

Michael.W谈hyperledger Fabric第22期-详细带读Fabric的源码7-orderer节点相关源码梳理1 模块功能顺序梳理2 具体脉络总结2.1 main函数2.2 多通道管理的Manage2.3 通道对象的代理ChainSupport2.4 solo排序的实现2.5 区块切割的标准2.6 为什么Fabric的共识只有排序?1 模块功能顺序梳理main方法:orde...

2019-03-18 16:53:54 195

原创 protobuf的go语言开发环境安装

protobuf的go语言开发环境安装1 编译工具安装2 go语言插件安装1 编译工具安装 // 下载 protoBuf: $ git clone https://github.com/protocolbuffers/protobuf.git // 安装依赖库 $ sudo apt-get install autoconf automake libtool curl make g+...

2019-03-18 09:57:38 870

原创 Michael.W谈hyperledger Fabric第21期-详细带读Fabric的源码6-orderer节点接收交易数据与广播区块数据

Michael.W谈hyperledger Fabric第21期-详细带读Fabric的源码6-orderer节点接收交易数据与广播区块数据1 接收交易数据2 广播区块数据这两个部分围绕着orderer/server.go文件里的server结构体展开: type server struct { // 交易数据的接收 bh broadcast.Handler // 区块数据的广播 ...

2019-03-17 21:16:59 809

原创 Michael.W谈hyperledger Fabric第20期-详细带读Fabric的源码5-orderer节点的solo排序

Michael.W谈hyperledger Fabric第20期-详细带读Fabric的源码5-orderer节点的solo排序solo模式的源代码文件在orderer/solo/consensus.go中: func (ch *chain) main() { // 之前讲过Fabric对区块的分割有两个影响条件: 1、区块中的交易数量大于等于我们设定的最大交易数量;2、在交易数量尚未达到...

2019-03-17 21:03:08 342

原创 Michael.W谈hyperledger Fabric第19期-详细带读Fabric的源码4-orderer节点对交易数据的区块打包

Michael.W谈hyperledger Fabric第19期-详细带读Fabric的源码4-orderer节点对交易数据的区块打包1 blockcutter包下的Receiver接口2 receiver类2.1 Ordered方法实现2.2 Cut方法实现1 blockcutter包下的Receiver接口在前面帖子《Michael.W谈hyperledger Fabric第18期-详细带...

2019-03-17 20:49:49 275

原创 Michael.W谈hyperledger Fabric第18期-详细带读Fabric的源码3-通道对交易数据的操作封装

Michael.W谈hyperledger Fabric第18期-详细带读Fabric的源码3-通道对交易数据的操作封装1 chainsupport.go文件2 ChainSupport接口的实例化方法3 写区块操作1 chainsupport.go文件位于multichain包下,ChainSupport接口实现了对通道操作交易数据的封装。接口的声明位于multichain/chainsup...

2019-03-16 20:55:49 234

原创 Michael.W谈hyperledger Fabric第17期-详细带读Fabric的源码2-Manager接口及通道相关源码

Michael.W谈hyperledger Fabric第17期-详细带读Fabric的源码2-Manager接口及通道相关源码1 Manager接口2 通道相关上个帖子中:Michael.W谈hyperledger Fabric第16期-详细带读Fabric的源码1-orderer模块入口发现orderer模块的main函数中所有接口的实现都离不开这样的一个multichain.Manage...

2019-03-16 15:17:31 192

原创 Michael.W谈hyperledger Fabric第16期-详细带读Fabric的源码1-orderer模块入口

Michael.W谈hyperledger Fabric第16期-详细带读Fabric的源码1-orderer模块入口1 容我先bb两句2 hyperledger Fabric的源码结构3 orderer的入口(orderer/tendermint/main.go)1 容我先bb两句如果想对系统或者框架有更详细的了解,那么读源码是必经之路。许多表面上云里雾里的概念逻辑,读完源代码后便豁然开朗。...

2019-03-16 14:35:45 300

原创 Michael.W谈hyperledger Fabric第15期-Fabric的交易流程和共识机制详解补充

Michael.W谈hyperledger Fabric第15期-Fabric的交易流程和orderer节点排序详解补充1 前言2 关于Fabric交易流程的补充3 orderer节点排序3.1 调用排序服务器对数据进行排序3.2 数据区块的分发3.3 多通道隔离1 前言这几天在网上又看了一些资料,对Fabric整个的交易流程和共识机制有了更深一层的了解!在这里我再补充说明一下。之前我写过一...

2019-03-15 22:24:41 997

原创 Michael.W谈hyperledger Fabric第14期-Fabric的网络拓扑结构

Michael.W谈hyperledger Fabric第14期-Fabric的网络拓扑结构1 Fabric的网络拓扑结构与比特币的不同2 Fabric的网络图3 Fabric为何这样设计网络拓扑1 Fabric的网络拓扑结构与比特币的不同Fabric的网络拓扑结构要比其他区块链来说还是算复杂的。比特币的网络中只有轻节点(仅仅保存与当前账户相关的信息)和全节点(保存从创世块到现在的所有数据)...

2019-03-15 21:19:19 896

原创 Michael.W谈hyperledger Fabric第13期-Fabric系统结构的详解补充

Michael.W谈hyperledger Fabric第13期-Fabric系统结构的详解补充1 系统结构框图2 一些零散的知识点补充最近在网上又看了一些资料,对Fabric的系统结构又有了更深一层的了解!在这里我再补充说明一下。之前我写过一个关于Fabric的系统结构的帖子:Michael.W谈hyperledger Fabric第2期-关于Fabric你所需要知道的基本知识一如果没有...

2019-03-15 21:02:14 523

原创 Michael.W谈hyperledger Fabric第12期-Fabric账号详解

Michael.W谈hyperledger Fabric第12期-Fabric账号详解Fabric中的账号,实际上就是利用指令生成的crypto-config目录下,某组织、节点或用户对应路径下的msp目录。 $ cryptogen generate --config=crypto-config.yaml节点或用户的msp,其下面都是包含5个文件夹:组织的msp下面包含3个文件夹:...

2019-03-12 23:10:11 406

原创 mac系统中利用VMware Fusion安装ubuntu-18.04-server-amd64的超级详细的图文记录

mac系统中利用VMware Fusion安装ubuntu-18.04-server-amd64的超级详细的图文记录1 系统镜像下载地址2 VMware Fusion(mac版的虚拟机)操作与设置3 开始安装Ubuntu-18.04-server4 设置远程连接5 ubuntu-18.04-server设置静态IP1 系统镜像下载地址ubuntu-18.04下载地址:官网下载:https:/...

2019-03-11 16:53:41 2687 2

原创 Michael.W谈hyperledger Fabric第11期-手动搭建Fabric网络之启动网络与功能调试二

Michael.W谈hyperledger Fabric第11期-手动搭建Fabric网络之启动网络与功能调试二7 背书策略7.1 定义背书策略的关键字7.2 限定组织成员8 链码的初始化9 查询账本10 背书节点11 发起交易7 背书策略链码安装后需要进行初始化,且只需要初始化一次。在做链码初始化之前,我先讲一下背书策略的概念。举个很生动的例子:假如你要结婚,那么在结婚前应该买车买房。如果...

2019-03-11 12:39:38 490 9

空空如也

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除