- 博客(21)
- 收藏
- 关注
原创 智能合约安全陷阱和开发建议
Solidity作为一种图灵完备的高级语言,可以支持逻辑比较复杂的智能合约的编写。一般情况下,Solidity开发者可以根据自己的意愿和预期开发一个智能合约项目。同时也不能保证,没有黑客攻击的存在。因此呢,确保安全性在Solidity开发中极为重要。今天我们要介绍的常见智能合约安全陷阱包括如下:函数可重入跨函数资源共享整数溢出漏洞gas限制和循环tx.orign和msg.sender...
2019-07-09 17:17:23
3152
原创 波场java-tron3.6 fullnode节点广播交易前的流程分析
本篇文章介绍fullnode节点收到用户发送的过来的交易之后的处理流程,一般用户通过http接口将签名好的交易发送到fullnode节点, fullnode节点会对交易进行相关的检查, 然后执行交易,如果执行的结果没有问题, 就会广播交易。当然其他节点收到这笔广播的交易之后也会做相同的操作。1 fullnode http 处理函数 //java-tron/src/main/java/org/...
2019-07-09 17:01:34
7662
7
原创 TRON的节点配置文件中vm.minTimeRatio和vm.maxTimeRatio的含义
sr节点: 超级节点,负责出块,全网只有27个超级节点fullnode节点: 从sr节点同步区块这篇文章主要介绍深入分析TRON的节点配置文件中vm.minTimeRatio和vm.maxTimeRatio这两个标志的意义。这两个标志的表示的是节点(包括sr和fullnode)验证区块中智能合约交易的时间比例(时间容忍度)。什么是时间容忍度?在tron中,sr节点打包一个智能合约交...
2019-06-22 00:23:48
1375
1
原创 solidity0.5.x笔记(4)-单位和全局变量
货币单位一个常量的数字,可以使用后缀wei,finney,szabo或ether来在不同面额中转换。如2 ether == 2000 finney的结果是true。1 ether==10^3 finney1 ether==10^6 szabo1 ether==10^18 wei注意:不含任何后缀的默认单位是wei时间单位seconds,minutes,hours,days,...
2019-04-30 22:46:07
648
原创 solidity0.5.x笔记(3)-其他
变量类型—特殊的运算符deleteSolidity中有个特殊的操作符delete用于释放空间,因为区块链做为一种公用资源,为避免大家滥用。且鼓励主动对空间的回收,释放空间将会返还一些gas。delete关键字的作用是对某个类型值a赋予初始值。比如如果删除整数delete a等同于a = 0。删除基本类型对于基本类型,使用delete会设置为对应的初始值:bool b = true;//f...
2019-04-30 22:45:43
486
原创 solidity0.5.x笔记(2)-引用类型
引用类型的数据位置不同于之前值类型,引用类型占的空间更大,超过256字节,因为拷贝它们占用更多的空间。由此我们需要考虑将它们存储在什么位置内存(memory,数据不是永久存在的)或存储(storage,数据永久的保存在数据块上)引用类型数据位置分类memorystoragecalldatamemory存储位置同我们普通程序的内存类似。即分配,即使用,越过作用域即不可被访问,等待被...
2019-04-30 22:45:17
797
原创 solidity0.5.x笔记(1)-值类型
值类型和引用类型的区别Solidity变量类型分为两大类——值类型、引用类型值类型:变量的存储空间存的是变量的数据引用类型:变量的存储空间存的是变量数据所在的存储空间的地址**注意:**值传递和引用传递。值类型的变量,赋值是简单的值传递,即两个变量占有独立的存储区域。引用类型赋值传递的是变量的引用,即两个变量指向同一存储区域值类型——布尔 (bool)bool: 只有两种值true...
2019-04-30 22:44:03
775
原创 Fabric实战(13)Fabric链码调试(容器外)
链码调试本文章所有操作基于的操作系统版本是:ubuntu16.04 64位本文章基于的Fabric网络环境是《Fabric实战(2)运行一个简单的fabric网络(容器外)》1 开发环境链码调试1.1 容器之外运行Chaincode第一步:注册需要调试的chaincode设置peer节点的运行模式可以通过修改配置文件或者添加环境变量的方式修改Peer节点的启动模式。配置文件可以...
2019-03-25 16:57:50
3117
原创 Fabric实战(12)Fabric CA-账号服务器
1 Fabric-ca的编译和安装第一步:安装依赖sudo apt-get install libtool libltdl-dev第二步:下载源代码并编译cd $GOPATH/src/github.com/hyperledger/git clone http://gerrit.hyperledger.org/r/fabric-cacd fabric-ca/#编译server和...
2019-03-25 13:44:19
1350
原创 Fabric实战(11)SDK编程接口
1 Fabric接口协议和功能Fabric的Peer节点和Orderer节点都提供了基于Grpc协议的通信接口,通过这些接口可以和Peer以及Orderer节点进行交互。1.1Grpc协议简介Grpc是由Google开发的一款语言中立、平台中立、开源的远程过程调用RPC系统。目前Grpc支持JAVA、GO、C、C++、Node.js、Python、Ruby、Objective-C、PHP、C...
2019-03-25 13:44:07
2386
原创 Fabric实战(10)链码(chaincode)开发-shim包API
1 golang版本的chaincode的代码1.1 chaincode源代码结构下面看一最简单的chaincode代码以及相关的解释://包名//一个chaincode通常是一个golang源码文件,这个包名必须是mainpackage main//导入包//chaincode需要引入一些Fabric提供的系统包,这些系统包提供了chaincode和Fabirc进行通信的接口。...
2019-03-25 13:43:53
7924
3
原创 Fabric实战(9)链码(chaincode)开发-chaincode相关命令
本文章所有操作基于的操作系统版本是:ubuntu16.04 64位本文章基于的Fabric网络环境是《Fabric实战(2)运行一个简单的fabric网络(容器外)》1 chaincode基本概念Fabric中智能合约也叫chaincode,开发语言可以是Go、Java、Node.js等语言,其中GO语言使用最为广泛和稳定2 chaincode相关的管理命令Usage: peer...
2019-03-25 13:43:42
1777
原创 Fabric实战(8)Fabric模块配置参数详解-peer
peer模块是Fabric中最重要的模块,也是在Fabric系统使用最多的模块。peer模块在Fabric中被称为节点模块,主要负责存储区块链数据、运行链码、提供对外服务接口等作用。1 peer模块命令和参数Usage: peer [flags] peer [command]Available Commands: chaincode #操作链码,相关子命令: install...
2019-03-25 13:43:32
2421
原创 Fabric实战(7)Fabric模块配置参数详解-orderer
orderer模块主要负责对交易进行排序,并将排序好的交易打包成区块。1 orderer模块的命令和参数usage: orderer [<flags>] <command> [<args> ...]Hyperledger Fabric orderer nodeFlags: --help #显示帮助信息Commands: help [&l...
2019-03-25 13:43:14
1734
1
原创 Fabric实战(6)Fabric模块配置参数详解-configtxlator
configtxlator模块可以把区块链的二进制文件转换成JSON格式文件,便于阅读。1 configtxlator 命令参数configtxlator模块包含三个命令,执行命令configtxlator --help如下所示:Commands:usage: configtxlator [<flags>] <command> [<args> ...]...
2019-03-25 13:42:09
973
原创 Fabric实战(5)Fabric模块配置参数详解-configtxgen
1 configtxgen命令参数configtxgen模块用来生成orderer的初始化文件和channel的初始化文件,configtxgen的参数如下:Usage of configtxgen: -asOrg string 所属组织,也就是为某个特定组织生成配置 -channelID string channel名称,如果不指定默认是"testchainid...
2019-03-25 13:41:56
1422
原创 Fabric实战(4)Fabric模块配置参数详解-cryptogen
cryptogen模块主要是用来生成组织结构和账号的文件,任何Fabric系统的开发通常都是从cryptogen模块开始的。在Fabric项目中,当系统设计完成后的第一项工作就是根据系统设计编写cryptogen的配置文件,然后通过这些配置文件生成相关的证书文件。cryptogen模块所生成的配置文件是Fabric项目的基石。1.cryptogen模块命令说明cryptogen模块是通过命令行...
2019-03-25 13:41:07
1159
原创 Fabric实战(3)Fabric模块详解
本文章所有操作基于的操作系统版本是:ubuntu16.04 64位本文章基于《Fabric实战(2)运行一个简单的fabric网络(容器外)》的实验环境进行。
2019-03-25 13:40:48
1722
原创 Fabric实战(2)运行一个简单的fabric网络(容器外)
本文章所有操作基于的操作系统版本是:ubuntu16.04 64位上一节中我们成功安装Fabric之后,就可以启动相关模块开始工作了,但是Fabric的配置和启动过程比较繁琐,在后续文章中会介绍详细的模块使用方法,在这之前我们先搭建一个简单的Fabric网络,这个网络虽然简单,但是包含了fabric的核心组成部分。docker容器可以很方便的部署fabric节点,但是却不能很容易的调式fa...
2019-03-25 13:40:29
1525
4
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人