关于区块链的一些思绪

关于区块链升级,是一件很容易引发争议的事情。有感而发。 对于常规的思维来说,区块链智能合约升级应该是一件再普通正常不过的事情。但对于区块链本身来说,秉承一种代码即是法律的理念,而法律是不能轻易更改的(如若随意更改,则丧失法律的权威性,沦为当权者的玩物,与人人平等,去中心化的理念背道而驰)。 以太坊...

2018-12-14 10:39:08

阅读数:3893

评论数:1

eosio.cdt心得

写在前面 从eos v1.3.0更新开始,eosio提倡使用eosio.cdt工具来编译智能合约,以提高智能合约的执行性能等。其中相较于旧的工具,eosio.cdt更新了不少语法。 asset 实现完善了不少,使得代币相关的实现更加严谨。 默认初始化的asset内的symbol为空,值为零。在作a...

2018-11-15 18:43:11

阅读数:321

评论数:0

eosio.msig合约源码分析

eosio.msig 接口 propose approve unapprove cancel exec 数据结构 eosio.sudo

2018-11-12 16:57:27

阅读数:79

评论数:0

bitcoin-memorypool源码分析

涉及的bip bip68 交易输出会锁定一段时间不允许消费 bip125 如果mempool已经有相同交易输入的交易,具备更高手续费(小费)的新加入交易会替换掉旧的交易。 ctxmempoolentry 存储一个交易的相关信息和其他在mempool中与这个交易有关的祖先、后裔交易的数据。 每当...

2018-11-04 17:10:50

阅读数:29

评论数:0

system合约源码分析

写在前面 system合约是EOS区块链最核心的智能合约,分析其源码可以一窥EOS的精妙之处。 接口 // *** native.hpp *** newaccount updateauth deleteauth linkauth unlinkauth canceldelay onerro...

2018-09-27 16:00:09

阅读数:146

评论数:0

交易校验与交易脚本

校验与脚本 交易校验是基于对脚本语言的执行结果的判断。 交易校验引擎依赖于两种类型的脚本: * unlocking script * locking script 当一个交易被校验有效时,每个输入的unlocking script会与对应的locking script一起被执行,以...

2018-09-10 19:40:56

阅读数:194

评论数:0

POW

概念 对于单向散列函数,输出是不可知的。但在假设输出结果是随机平均分布的情况下,可以预先计算出特定范围的结果的可能性,推导要计算出满足特定条件的结果所花费的工作量。 在比特币的区块链实现中,POW是一种保护区块链网络,维持通货稳定的手段。因为对比特币来说,一个非常重要的原则是维持每10分钟生成...

2018-09-02 21:05:43

阅读数:101

评论数:0

merkle tree(hash tree)

merkle tree即为hash tree,以下都用hash tree表示。 hash tree使得可以对大型数据结构的内容进行有效且安全的校验。 hash tree是hash list和hash chain的一般化形式。 hash trees 主要用于p2p网络中保证数据的完整性。 ...

2018-08-26 17:34:13

阅读数:148

评论数:0

visitor

意图 表示一个作用在对象结构中元素的操作。 visitor模式使得可以在不改变各元素的类的前提下定义作用于这些元素的新操作。 适用性 一个对象结构(一个代理类)包含很多提供不同接口的类对象,而你想对这些对象实施一些依赖于其具体类的操作。 需要对对象结构中的一个对象进行多种不同且互不相关的...

2018-08-19 20:05:27

阅读数:56

评论数:0

base58

Base58 is a subset of Base64, using upper- and lowercase letters and numbers, but omitting some characters that are frequently mistaken for one anoth...

2018-08-05 15:32:25

阅读数:92

评论数:0

密钥与地址

私钥(private key) 理论 创建一个bitcoin密钥可以比作在 1 到 2 的256次方之间随机选择一个数。 更确切地说,设 n = 1.158 * 1077,略小于2的256次方,私钥是 1 到 n-1 的任意一个数。对于 n ,是ECC(椭圆曲线加密算法)中有限集的阶...

2018-08-05 15:27:47

阅读数:101

评论数:0

进程控制

fork 创建子进程,也可理解为创建当前进程的拷贝(copy on write),新进程被视为原进程的子进程。 调用fork后,父子进程都会继续原来的执行流。 调用fork后,父进程返回的是子进程ID,子进程返回的是0。 同步问题 对于fork以后,父子进程共用相同的文件,子进程使用...

2018-04-24 19:15:14

阅读数:20

评论数:0

进程环境

main func 当内核启动C程序时,是通过一种exec函数启动的,是一个特殊的start-up routine,在main函数调用之前。该routine会被链接器设定为可执行程序的入口点。 ISO C 和 POSIX.1 规定,argv[argc]是一个null指针。 进程终止 有...

2018-04-24 19:14:46

阅读数:45

评论数:0

IOCP原理

简介I/O完成端口是为多处理器系统处理多重异步I/O请求线程模型。 I/O完成端口就是与线程池配合使用的。APICreateIoCompletetionPort 创建IOCP和关联一个或多个句柄到端口上。 GetQueuedCompletionStatus 等待或从IOCP队列中取出完成包(c...

2017-12-06 16:54:28

阅读数:83

评论数:0

epoll

简介linux下的可拓展Io事件驱动机制。性能性能复杂度:O(1)。 相较于poll的优点: * 不会重复把文件描述符传入内核,节省性能消耗。 * 支持任意个描述符而不是有限。#触发模式 * 边沿触发(edge-triggered):阻塞等待新事件。 * ...

2017-12-06 16:49:09

阅读数:35

评论数:0

二叉搜索树(binary search tree)

性质 设 x 是二叉搜索树中的一个结点。如果 y 是 x 左子树中的一个结点,那么 y.key ≤ x.key。如果 y 是 x 右子树中的一个结点,那么 y.key ≥ x.key。 特性期望高度:height = O(lgn)基本操作平均时间复杂度:Operations = Θ(lgn)操...

2017-12-02 20:13:28

阅读数:80

评论数:0

快速排序(quick sort)

Pseudo CodeQUICKSORTif (p < r)  q = PARTITION(A, p, r)  QUICKSORT(A, p, q-1)  QUICKSORT(A, q+1, r) PARTITIONx = A[r] i = p -1 for j = p to r...

2017-10-13 10:02:40

阅读数:92

评论数:0

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