- 博客(318)
- 收藏
- 关注
转载 go语言常用函数:copy
转自 copy函数用于将内容从一个数组切片复制到另一个数组切片。如果加入的两个数组切片不一样大,就会按其中较小的那个数组切片的元素个数进行复制。slice1 := []int{1, 2, 3, 4, 5} slice2 := []int{5, 4, 3} copy(slice2, slice1) // 只会复制slice1的前3个元素到slice2中 copy(slice1, sli...
2018-04-09 16:24:20
1031
原创 Cygwin 和MinGW 的区别
CygwinCygwin的目的是提供运行于Windows平台的类Unix环境(以GNU工具为代表)为了达到这个目的,Cygwin提供了一套抽象层ddl,用于将部分Posix(POSIX标准定义了UNIX操作系统应该为应用程序提供的接口标准)调用转换成Windows的API调用,实现的相关功能。这里面最基本的模拟层就是那个cygwin1.ddl。MinGWMinGW是用于进行Wind...
2018-04-09 08:49:59
538
原创 gcc和g++的关系
参考自 gcc 最开始的时候是 GNU C Compiler, 如你所知,就是一个c编译器。但是后来因为这个项目里边集成了更多其他不同语言的编译器(包括C、C++、Objective-C、Fortran、Java、Ada和Go语言的前端,也包括了这些语言的库(如libstdc++、libgcj等等)),GCC就代表 the GNU Compiler Collection,所以表示一堆编译器的合集...
2018-04-09 08:34:38
391
原创 编辑 bashrc 和 profile来设置用户的环境变量/工作环境
\ 全局空间 用户空间 login /etc/profile ~/.profile no-login /etc/bash.bashrc ~/.bashrc
2018-04-09 07:37:09
849
原创 ubuntu下解压rar文件
安装ubuntu 下rar解压工具安装方法:压缩功能sudo apt-get install rar解压功能sudo apt-get install unrar使用可以直接在UI界面使用了rar x test.rar更多其他压缩
2018-04-09 07:27:15
85660
6
转载 Ubuntu 16.04安装sublime text3
https://jingyan.baidu.com/article/64d05a023cd849de55f73be4.html
2018-04-09 07:21:23
1039
原创 关于以太坊账户(外部账户&合约账户)的nonce值
简介nonce值的存在主要是因为它是基于account的,不同于基于utxo的比特币。nonce值主要用来防止重放攻击。外部账户每发送一笔交易nonce加一。合约账户每创建一个合约nonce加一。而合约调用其他合约属于内部调用,因此nonce值不变。nonce使用的几条规则当nonce太小(小于之前已经有交易使用的nonce值),交易会被直接拒绝。 当nonce太大,交易...
2018-04-02 10:47:33
4469
1
原创 数据库索引
数据库索引到底是什么,是怎样工作的?假设我们有一个数据库表 Employee, 这个表有三个字段(列)分别是 Employee_Name、Employee_Age 和Employee_Address。假设表Employee 有上千行数据。现在假设我们要从这个表中查找出所有名字是‘Jesus’的雇员信息。我们决定使用下面的查询语句:SELECT * FROM Employee WH...
2018-04-01 11:04:35
195
原创 以太坊的remix下运行环境的三种选项
参考自 Remix has 3 different environment options that can be used to deploy/test Solidity contracts: JavaScript VM, Injected Web3, and Web3 Provider. This option can be changed under the Environment dro...
2018-03-31 06:00:48
4393
转载 临界区,互斥量,信号量,事件的区别
转自四种进程或线程同步互斥的控制方法临界区: 通过对多线程的串行化来访问公共资源或一段代码,速度快,适合控制数据访问。互斥量: 为协调共同对一个共享资源的单独访问而设计的。信号量: 为控制一个具有有限数量用户资源而设计。事 件: 用来通知线程有一些事件已发生,从而启动后继任务的开始。临界区(Critical Section)保证在某一时刻只有一个线程能访问数据的简便办法。在...
2018-03-29 16:18:11
346
原创 python map()
map()函数接收两个参数,一个是函数,一个是listmap将传入的函数依次作用到list的每个元素,并把结果作为新的list返回。>>> map(lambda x: x*x, [1, 2, 3, 4, 5])>>> [1, 4, 9, 16, 25] ...
2018-03-28 17:00:30
383
原创 geth的端口30303和端口8545
30303端口Geth uses port 30303 for connections to peers. 8545端口You are attempting to attach to a geth RPC endpoint. You’ll first need to make sure you are running geth with –rpc to expose the JSO...
2018-03-28 16:26:40
7467
原创 python的 http/soap设置超时时间
通过web3调用本地light模式的geth的RCP端口8584获取state时相应会比较慢,会出现timeout的问题,通过以下方法解决:# 设置http超时时间为180simport sockettimeout = 180socket.setdefaulttimeout(timeout)...
2018-03-28 16:18:55
971
1
原创 Hyperledger1.0学习之路
看到一个不错的材料,有空我慢慢啃。 https://www.cnblogs.com/aberic/p/7527831.html
2018-03-28 15:59:44
354
转载 以太坊客户端Geth命令用法-参数详解
原文 Geth在以太坊智能合约开发中最常用的工具(必备开发工具),一个多用途的命令行工具。 熟悉Geth可以让我们有更好的效率,大家可收藏起来作为Geth命令用法手册。 本文主要是对geth help的翻译,基于最新的geth 1.7.3-stable版本。命令用法geth [选项] 命令 [命令选项] [参数…]版本:1.7.3-stable命令:account ...
2018-03-28 11:07:01
704
原创 安装并同步geth并开启本地RPC端口8545
安装Ubuntu用户可以选择在线安装的方式,在终端中依次执行以下命令即可:$ sudo add-apt-repository -y ppa:ethereum/ethereum$ sudo apt-get update$ sudo apt-get install ethereum安装完成后执行 geth help 查看geth的用法。同步的几种方式Full同步...
2018-03-28 11:03:54
13873
原创 ImportError: No module named '_tkinter', please install the python3-tk package
sudo apt-get install python3.6-tk
2018-03-28 10:45:36
1288
原创 from web3.main import Web3 ImportError: cannot import name 'force_text'
pip install web3
2018-03-28 10:44:43
1795
原创 cytoolz/dicttoolz.c:17:20: fatal error: Python.h: No such file or directory
python3.6安装cytoolz失败sudo apt-get install python3.6-dev
2018-03-27 22:15:23
2177
原创 Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-wttdx0g1/secp256k1/
easy_install -U setuptools
2018-03-27 22:05:15
4237
原创 Hyperledger的Bucket Tree
简介Bucket Tree是worldstate的组织方式的实现。为了下面描述的目的,worldstate的键被表示成两个组件(chaincodeID and ckey) 的通过nil字节的级联,如:key = chaincodeID+nil+cKey。这个方法的模型是一个merkle-tree在hash table桶的顶部来计算worldstate的加密-哈希这个方法的核心是wo...
2018-03-27 21:48:27
1190
原创 安装Python 3.6 & 对应版本venv
参考自安装python3.61、配置软件仓库,因为python 3.6 新版没有发布到ubuntu的正式仓库中,咱们通过第3方仓库来做。在命令行中输入:sudo add-apt-repository ppa:jonathonf/python-3.62、检查系统软件包并安装 python 3.6sudo apt-get updatesudo apt-get inst...
2018-03-27 17:34:35
3595
原创 const void *a 与 void *const a 的区别
根据这里可以知道: const void *a指的是(*a)取出来的数是常量,而a本身是变量。 void * const a指的是(*a)取出来的数是变量,而a本身是常量。
2018-03-26 18:23:02
4909
原创 不用库函数实现memcpy
#include <stdio.h>#include <assert.h>// const void *src,说明src指向的是常量,再函数内不能通过src修改指向的内容void memcpy_without_lib(void *des, const void *src, int byteLen) { assert((des!=NULL)&&...
2018-03-26 18:18:52
756
原创 面向字节流的TCP
内容TCP是一种流协议(stream protocol)。这就意味着数据是以字节流的形式传递给接收者的,没有固有的”报文”或”报文边界”的概念。从这方面来说,读取TCP数据就像从串行端口读取数据一样–无法预先得知在一次指定的读调用中会返回多少字节(也就是说能知道总共要读多少,但是不知道具体某一次读多少)。为了说明这一点,我们假设在主机A和主机B的应用程序之间有一条TCP连接,主机A上的应用...
2018-03-26 12:53:20
13910
原创 EOS.IO
权威资料共识算法 (DPOS)帐户应用程序的确定性并行执行Token 模型与资源使用治理 (治理是人们在主观问题上达成共识的过程,而这无法完全用软件算法来捕获。)脚本 & 虚拟机 EOS.IO 首先会是一个平台用于协同用户间认证消息的传递。 脚本语言和虚拟机的具体实现与 EOS.IO 技术的设计是分离的。 任何语言或者虚拟主机,只要确定并适合沙盒,带有足够的运行效率均可以...
2018-03-24 18:00:50
911
原创 区块链的区块大小和区块间隔的trade-off
系统能够处理的最大交易数目已经被所选择的两个参数限制了:区块大小和区块间隔。增加区块大小能够改善吞吐量,但是会导致大区块需要更长的时间在网络上传输。减少区块间隔可以减少延迟,但是当系统处于不一致时会导致不稳定,而且区块链也会有改编的风险。为了改善效率,就需要妥协吞吐量和延迟。...
2018-03-21 14:18:22
2259
3
原创 最好的Hyperledger1.0原理架构的讲解
最好的Hyperledger1.0原理架构的讲解,没有之一Network SetupChannels and Ordering ServiceNetwork ConsensusEndorsement Policies
2018-03-21 10:43:21
798
1
原创 闪电网络讲解和思考
最好的讲解: https://lightning.network/的vedio配套ppt: https://lightning.network/lightning-network.pdf简介单向channel全向channel闪电网络RSMC的设计闪电网络的缺陷1. 容易遭受DDoS攻击2018/3/22新闻:闪电网络节点遭受DDoS攻击,20%节点被...
2018-03-20 00:16:18
2262
原创 MAC消息认证码与Hash函数的关系和区别
更多两个是个不同范畴的东西HashA hash is a function that produces a digest from a message. A cryptographically secure hash is for which it is computationally infeasible to generate a message with a given dige...
2018-03-19 16:46:51
7495
1
原创 共识算法-PBFT
步骤:Request: 客户端C往共识网络发交易。从全网节点选举出一个主节点(Leader)Pre-Prepare (主节点广播交易执行的顺序): 每个节点把客户端发来的交易向全网广播,主节点0将从网络收集到多个交易排序后存入列表,确认交易的执行顺序,并将该列表向全网广播,扩散至123 Prepare (共识交易执行的顺序): 每个节点接收到交易列表后,广播给所有非主节点。节点把接收到
2018-03-19 16:36:14
7964
2
原创 拜占庭将军问题的深入思考
拜占庭将军问题的经典解决方案最好的描述资料http://www.8btc.com/baizhantingjiangjun 注:论文中的拜占庭将军问题的两个方法只是解决拜占庭问题的手段之一,等价于PBFT也是解决拜占庭问题的手段之一。PBFT是Practical Byzantine Fault Tolerance的缩写,意为实用拜占庭容错算法。该算法是Miguel Castro (...
2018-03-19 12:58:10
1540
原创 进程间通信(IPC)
转自 进程间通信(IPC,InterProcess Communication)是指在不同进程之间传播或交换信息。IPC的方式通常有 1. 管道(包括无名管道和命名管道) 2. 消息队列 3. 信号量 4. 共享存储 5. Socket 6. Streams 其中 Socket和Streams支持不同主机上的两个进程IPC。以Linux中的C语言编程为例。管道管道,...
2018-03-19 12:37:29
168
原创 操作系统总结
进程1) 试解释操作系统原理中的作业/进程/线程/管程各自的定义 Ans: a. 作业: 作业是用户在一次解决或是一个事务处理过程中要求计算机系统所做的工作的集合,它包括用户程序、所需要的数据集控制命令等。作业是由一系列有序的步骤组成的。作业的完成要经过作业提交、作业收容、作业执行和作业完成4个阶段。在执行一个作业可能会运行多个不同的进程。 打个比方,今天班主任要求我们进行班级大扫除,...
2018-03-17 22:05:23
232
原创 区块链共识算法大汇聚
PoWPoSCasperDPOS简介:Under normal operation block producers take turns producing a block every 3 seconds. Assuming no one misses their turn then this will produce the longest possible ...
2018-03-17 17:01:12
395
原创 ERC20标准
更多 ERC20其实就是token的标准接口,发行ERC20 token需要继承接口ERC20Interface,即contract FixedSupplyToken is ERC20Interfacepragma solidity ^0.4.8; // -----------------------------------------------------------------------
2018-03-13 08:49:50
1513
原创 星火计划:以太坊客户端mist和geth加快区块同步速度的方法
星火计划 1. 在上述页面上下载static-nodes.json即可 2. 把static-nodes.json放到chaindata同一目录下即可
2018-03-13 08:39:43
2591
1
原创 Ethereum/mist项目下Ethereum Wallet和Mist的区别
github页面 参考自Mist DApp Browser (browser)Mist is the browser for decentralized web apps. What Mozilla Firefox or Google Chrome are for the Web 2.0, the Mist Browser will be for the Web 3.0 (which will b
2018-03-13 08:34:47
1400
原创 Danku
简介A new protocol establishes a marketplace for exchanging machine learning models in an automated and anonymous manner for participants.The training and testing steps are done independently to pre...
2018-03-13 07:51:01
289
原创 Ubuntu 16.04 安装 google 输入法
Ubuntu 16.04 安装 google 输入法 1. 在命令行中运行:’sudo apt install fcitx-googlepinyin’ 2. 在 system setting > Language Support 中 Keyboard input method system 选择 fcitx 3. 重启 4. 当你的系统中存在其他的中文输入法时,需要在 Text Entry
2018-03-12 16:27:04
169
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人