自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

转载 深入理解Python异步编程(上)

前言 很多朋友对异步编程都处于“听说很强大”的认知状态。鲜有在生产项目中使用它。而使用它的同学,则大多数都停留在知道如何使用 Tornado、Twisted、Gevent 这类异步框架上,出现各种古怪的问题难以解决。而且使用了异步框架的部分同学,由于用法不对,感觉它并没牛逼到哪里去,所以很多同学...

2019-03-08 15:06:22 182 0

转载 【以太坊基础系列-005】数据保存levelDB

LevelDb日知录之一:LevelDb 101   说起LevelDb也许您不清楚,但是如果作为IT工程师,不知道下面两位大神级别的工程师,那您的领导估计会Hold不住了:Jeff Dean和Sanjay Ghemawat。这两位是Google公司重量级的工程师,为数甚少的Google Fel...

2019-01-12 16:08:07 218 0

转载 【以太坊基础系列-004】深入浅出以太坊MPT(Merkle Patricia Tree)

1 Trie树 Trie树,又称前缀树或字典树,是一种有序树,用于保存关联数组,其中的键通常是字符串。与二叉查找树不同,键不是直接保存在节点中,而是由节点在树中的位置决定。一个节点的所有子孙都有相同的前缀,也就是这个节点对应的字符串,而根节点对应空字符串。一般情况下,不是所有的节点都有对应的值,...

2019-01-12 16:05:28 156 0

原创 【以太坊代码分析系列001-获取合约pure,view数据的流程】

简单说明 本文基于geth 1.8.19的代码 测试合约代码 pragma solidity ^0.4.20;contract Counter {     uint count;         function Counter() public   ...

2019-01-08 14:55:55 157 0

转载 【智能合约系列010-solidity编译器修改(增加指令以及扩展函数)】

todo

2019-01-08 14:53:12 117 0

转载 【智能合约系列009-如何做智能合约审计?】

研究报告【Finding The Greedy, Prodigal, and Suicidal Contracts at Scale】)指出,目前在以太坊中,有89%的智能合约代码都或多或少存在安全漏洞/隐患,这显然是一个非常惊人的调查结果,对社区而言也是一个巨大的风险因素。而随着智能合约的增多乃...

2019-01-08 14:51:50 135 7

转载 【智能合约系列008-solidity事件】

在介绍事件前,我们先明确事件,日志这两个概念。事件发生后被记录到区块链上成为了日志。总的来说,事件强调功能,一种行为;日志强调存储,内容。 事件是以太坊EVM提供的一种日志基础设施。事件可以用来做操作记录,存储为日志。也可以用来实现一些交互功能,比如通知UI,返回函数调用结果等1。 事件 当...

2019-01-08 14:51:06 115 0

转载 【智能合约系列007-我们来教你如何跳过以太坊的坑】

2018年4月25日上午,火币Pro发布公告,虚拟币SMT项目方反馈25日凌晨发现其交易存在异常问题,经初步排查,SMT的以太坊智能合约存在漏洞。火币Pro也同期检测到TXID为0x0775e55c402281e8ff24cf37d6f2079bf2a768cf7254593287b5f8a0f6...

2019-01-08 14:50:38 192 0

转载 【智能合约系列006-重入攻击(Reentrancy attack)】

solidity漏洞类型学习笔记(一) 以下代码内容皆参考于RICKGRAY师傅之前的文章《以太坊智能合约安全入门了解一下》,在此记录我在复现中发现的一些问题和学习记录。 Reentrancy - 重入 首先我们先参考代码实现一个类似公共钱包的代码, 1 2 3 ...

2019-01-08 14:40:15 407 0

转载 【智能合约系列005-以太坊短地址攻击】

0x00 基础知识 EVM虚拟机在解析合约的字节码时,依赖的是ABI的定义,从而去识别各个字段位于字节码的什么地方。关于ABI,可以阅读这个文档: https://github.com/ethereum/wiki/wiki/Ethereum-Contract-ABI 一般ERC-20 TOKEN标...

2019-01-08 14:39:41 68 0

转载 【智能合约系列004-以太坊安全之 Parity 第二次安全事件漏洞分析】

Parity 多签钱包的第二次漏洞发生于 2017年11月07日,不同于 17年7月19日那次,本次不是资产被黑客盗走,而是合约底层被破坏,导致资产就在那,但却永远也取不出,就像驾船到太平洋最深处,投下一枚硬币,硬币就在那,但你可能再也无法找到它。        本次漏洞导致约 50万枚以太币被...

2019-01-08 14:38:32 102 0

转载 【智能合约系列003-以太坊安全之 Parity 第一次安全事件漏洞分析】

截止目前,Parity 多重签名钱包共发生过两次安全事件,第一次发生在 2017年07月19日,涉及 Parity 1.5 及以上版本,造成 15万以太币约 3000万美元被盗,第二次发生在 2017年11月07日,致使约 50万枚以太币被锁在合约中无法取出,当时价值大约 1.5亿美元,本篇先对发...

2019-01-08 14:38:03 145 0

转载 【智能合约系列002-TheDAO悲剧重演,SpankChain重入漏洞分析】

前言 在10月8日,区块链项目方SpankChain在medium上发表了一篇文章, 并表明其受到了攻击,导致损失了160多个ETH和一些Token,这次攻击事件,相对来说损失金额是较小的,约4万美元,不过值得一提的是:这次攻击事件的起因与2016年闹得沸沸扬扬的TheDAO事件如出一辙!一共被...

2019-01-08 14:21:26 312 1

转载 【智能合约系列001-美链BeautyChain (BEC) 溢出漏洞分析】

一、Token地址: https://etherscan.io/address/0xc5d105e63711398af9bbff092d4b6769c82f793d 二、BEC智能合约源码 我们不需要看完以下所有代码,重点关注第三节要分析的内容。 pragma solidity ^0.4...

2019-01-08 14:21:16 178 0

原创 【以太坊系列-010】通过truffle以及ganache进行代币功能调试

说明:     环境使用ubuntu1804-desktop版本。 1 truffle以及ganache 1) Truffle   Truffle 是最流行的开发框架,能够在本地编译、部署智能合约,使命是让开发更容易。   Truffle 需要以太坊客户端支持,需要支持标准的JSON R...

2019-01-08 14:20:54 678 0

原创 【以太坊系列-009】在ethereum private chain上进行oraclize的调用操作

说明:      本人使用的是 ubuntu1804-server版本(不要使用live-server,存在缺少部分包。)      在私链中容易遇到问题,本人第一次成功是通过truffle+ethereumjs-testrpc。      私链上不熟悉的人,操作会比较麻烦,容易出问题,并且文档...

2018-11-27 19:04:48 398 0

转载 【以太坊系列-008】oraclize介绍

Introduction Oracle service builds the bridge between blockchain and the real world, and we are going to introduce an oracle service called Oraclize...

2018-11-27 18:54:16 240 0

原创 【以太坊系列-007】solidity一些函数修饰说明

solidity一些函数修饰说明 一、函数可见性分析 public - 任意访问 private - 仅当前合约内 internal - 仅当前合约及所继承的合约 external - 仅外部访问(在内部也只能用外部访问方式访问) 二、函数的限制访问 在Solidity中constant、...

2018-11-27 17:18:59 67 0

原创 【以太坊系列-006】ethereum solidity智能合约在geth控制台上的操作(mapping实践)

   说明,本文基于已经部署好的etherum环境,在geth控制台上操作以下命令。文中用到的命令,可以参考该系列的其他文档。 1、解锁账号 > personal.unlockAccount(eth.accounts[0], "lyh001", 300) #...

2018-11-27 17:17:13 516 0

原创 【以太坊系列-005】使用solc编译solidity智能合约,并生产web3deploy格式的代码

说明 本文主要介绍,只通过solc来进行智能合约的部署,更简单的方式是通过remix直接生成。 该场景是用于用户自己修改了solc编译器,remix无法使用的情况。 1、 代码结构 # cat counter.sol pragma solidity ^0.4.20; contract C...

2018-11-17 14:42:55 363 0

原创 【以太坊系列-004】从源码搭建etherum,solidity编译环境

使用ubuntu1804(由ubuntu-18.04.1-server-amd64.iso安装)环境 说明:  本文主要介绍基于ubuntu1804的环境,由源码构建etherum,以及solidity的编译环境。 1, 安装go mkdir -p /home/001_code/001_g...

2018-11-16 17:53:12 245 0

转载 【以太坊系列-003】以太坊智能合约 —— 最佳安全开发指南

1基本理念 以太坊和其他复杂的区块链项目都处于早期阶段并且有很强的实验性质。因此,随着新的bug和安全漏洞被发现,新的功能不断被开发出来,其面临的安全威胁也是不断变化的。这篇文章对于开发人员编写安全的智能合约来说只是个开始。 开发智能合约需要一个全新的工程思维,它不同于我们以往项目的开发。因为...

2018-11-16 10:30:27 75 0

转载 MySql-Undo及Redo详解

00 – Undo Log Undo Log 是为了实现事务的原子性,在MySQL数据库InnoDB存储引擎中,还用Undo Log来实现多版本并发控制(简称:MVCC)。 - 事务的原子性(Atomicity) 事务中的所有操作,要么全部完成,要么不做任何操作,不能只做部分操作。如果在执行的过程...

2018-11-02 10:19:31 231 0

原创 【以太坊系列-002】Remix 搭建与简单使用,并支持外部访问

remix是基于浏览器的在线编译器,鉴于网络问题,可能存在登不上去的问题,因此 ,可以搭建自己本地的Remix。     本文是基于virtalbox的ubuntu1804的虚拟机环境,配置是1核2GB内存(建议内存越多越好)。 官方在线编译器 https://ethereum.github...

2018-10-27 11:54:31 475 1

原创 【以太坊系列-001】基于以太坊的私有链环境搭建-以及搭建过程的问题记录

本文是基于virtalbox的ubuntu1804(ubuntu-18.04.1-server-amd64,不要使用live-server安装)的虚拟机环境,配置是1核2GB内存(建议内存越多越好)。 本文基于网上的文档,加上自己安装部署过程遇到的问题,进行了整理。 安装geth apt-...

2018-10-27 11:48:25 103 0

转载 如何设置MySQL同步(Replication)

MySQL 提供了数据库的同步功能,这对我们实现数据库的冗灾、备份、恢复、负载均衡等都是有极大帮助的。本文描述了常见的同步设置方法。 一、准备服务器 由于MySQL不同版本之间的(二进制日志)binlog格式可能会不一样,因此最好的搭配组合是Master的MySQL版本和Slave的版本相同或...

2018-10-24 15:42:28 124 0

转载 【以太坊基础系列-003】环形签名

前言 在密码学中,环签名是一种数字签名,其可以由每个具有密钥的一组用户的任何成员完成。因此,使用环签名签名的消息由特定人群中的某一人签署。环签名的一个安全属性是若要确定哪个组成员的密钥用于产生签名在计算上是不可行的。环签名与群签名类似,但在两个关键方面有所不同: 1. 无法撤销单个签名的匿名性...

2018-10-20 11:08:43 197 0

转载 【以太坊基础系列-002】数字签名

  导读 在现实社会中,签名作为签名者身份的一种证明,签名代表对签名文件的认可,不可抵赖。理论上签名是可信、不可伪造的。现在网络环境越来越广泛,有大量的信息通过网络传播,并且会保存在上面。这些电子数据显然无法人工签名,数字签名就孕育而生。本文将介绍什么是数字签名、数字签名的特性与相关技术。 ...

2018-10-20 11:03:01 223 0

转载 【以太坊基础系列-001】merkle树

merkle树     区块链中的每个区块都包含了产生于该区块的所有交易,且以Merkle树表示。     默克尔树(又叫哈希树)是一种二叉树,由一个根节点、一组中间节点和一组叶节点组成。最下面的叶节点包含存储数据或其哈希值,每个中间节点是它的两个孩子节点内容的哈希值,根节点也是由它的两个子节...

2018-09-28 08:55:39 962 0

转载 Percona XtraDB Cluster(PXC)——架构原理

Percona XtraDB Cluster(PXC):Percona XtraDB Server +WSREP API(write set replication patches)  +  Galera(galera library) 转自:http://blog.chinaunix.net/...

2018-09-26 09:29:42 1049 1

转载 MySql悲观锁和乐观锁的使用

MySql悲观锁和乐观锁的使用       该文转载自: https://blog.csdn.net/yanghan1222/article/details/80449528        现在我有一个购买商品的需求,我们知道当我们购买商品时,后台会进行减库存和增加购买记录的操作。我们分别在...

2018-09-26 09:27:55 70 0

转载 linux下开启SSH,并且允许root用户远程登录,允许无密码登录,SSH密钥登陆改为密码登陆

参考:http://blog.csdn.net/jia0511/article/details/8237698 1. 允许root用户远程登录 修改ssh服务配置文件 sudo vi /etc/ssh/sshd_config 调整PermitRootLogin参数值为yes,如下图: ...

2018-09-19 13:08:35 5993 0

转载 深入理解overlayfs(二):使用与原理分析

在初步了解overlayfs用途之后,本文将介绍如何使用overlayfs以及理解该文件系统所特有的一些功能特性。由于目前主线内核对overlayfs正在不断的开发和完善中,因此不同的内核版本改动可能较大,本文尽量与最新的内核版本保持一致,但可能仍会存在细微的出入。 内核版本:Linux-4.1...

2018-09-08 11:14:42 901 0

转载 docker 存储驱动之overlay2

overlay2 overlay2原生支持128层,这提供docker build和docker commit更好的性能支持  在执行完docker pull ubuntu后,可以看到 $ ls -l /var/lib/docker/overlay2 total 24 drwx------...

2018-09-08 10:56:12 190 0

转载 docker 存储驱动之overlay

overlay OverlayFS是一个类似于AUFS 的现代联合文件系统,但更快,实现更简单。Docker为OverlayFS提供了一个存储驱动程序。  * 注:OverlayFS是内核提供的文件系统,overlay和overlay2是docker提供的存储驱动 设置存储方式 编辑/etc...

2018-09-08 10:54:51 141 0

转载 Docker之Linux UnionFS

UnionFS UnionFS是一种为Linux,FreeBSD和NetBSD操作系统设计的把其他文件系统联合到一个联合挂载点的文件系统服务。它使用branch把不同文件系统的文件和目录“透明地”覆盖,形成一个单一一致的文件系统。这些branches或者是read-only或者是read-wri...

2018-09-08 10:35:40 402 0

转载 KMP算法最浅显理解

说明 KMP算法看懂了觉得特别简单,思路很简单,看不懂之前,查各种资料,看的稀里糊涂,即使网上最简单的解释,依然看的稀里糊涂。  我花了半天时间,争取用最短的篇幅大致搞明白这玩意到底是啥。  这里不扯概念,只讲算法过程和代码理解: KMP算法求解什么类型问题 字符串匹配。给你两个字符串,寻找...

2018-09-01 14:05:02 61 0

转载 Mysql MVCC实现原理解析

  MVCC(Multi-Version Concurrency Control | 多版本并发控制)  InnoDB通过为每一行记录添加两个额外的隐藏的值来实现MVCC,这两个值一个记录这行数据何时被创建,另外一个记录这行数据何时过期(或者被删除)。但是InnoDB并不存储这些事件发生时的实...

2018-08-22 18:27:36 2345 0

转载 轻松理解MYSQL MVCC 实现机制-(1)

1. MVCC简介 1.1 什么是MVCC MVCC是一种多版本并发控制机制(Multi-Version Concurrency Control)。 1.2 MVCC是为了解决什么问题? 大多数的MYSQL事务型存储引擎,如,InnoDB,Falcon以及PBXT都不使用一种简单的行锁机制...

2018-08-22 09:02:34 86 1

翻译 深入理解SELECT ... LOCK IN SHARE MODE和SELECT ... FOR UPDATE

概念和区别 SELECT ... LOCK IN SHARE MODE走的是IS锁(意向共享锁),即在符合条件的rows上都加了共享锁,这样的话,其他session可以读取这些记录,也可以继续添加IS锁,但是无法修改这些记录直到你这个加锁的session执行完成(否则直接锁等待超时)。 SELE...

2018-08-20 19:32:44 305 0

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