
区块链
皓阳当空
这个作者很懒,什么都没留下…
展开
-
区块链记账原理
简述区块链(1.0)是一个基于密码学安全的分布式账本,是一个方便验证,不可篡改的账本。 通常认为与智能合约相结合的区块链为区块链2.0, 如以太坊是典型的区块链2.0哈希函数在讲区块链记账之前,先说明一下哈希函数。 哈希函数:Hash(原始信息) = 摘要信息 原始信息可以是任意的信息, hash之后会得到一个简短的摘要信息哈希函数有几个特点:同样的原始信息用同一个哈...原创 2018-06-27 17:55:53 · 1067 阅读 · 1 评论 -
Solidity-匿名方法
一:匿名方法一个合约可以有一个匿名函数。此函数不能有参数,也不能有任何返回值。当我们企图去执行一个合约上没有的函数时,那么合约就会执行这个匿名函数。此外,当合约在只收到以太币的时候,也会调用这个匿名函数,而且一般情况下只会消耗很少的gas,所以当你接受到以太币后,想要执行一些操作的话,你尽可以把你要的操作写到这个匿名函数里,因为这样做成本非常便宜。二:实例pragma so...原创 2018-08-19 19:20:56 · 795 阅读 · 0 评论 -
Solidity-修改器
前言:合约发布工具及版本:mist v0.9.3一:修改器修改器可以用来改变方法的行为,比如在方法正式执行之前,检查方法是否满足条件,如果满足条件,则执行方法,不满足则可以抛出异常等。 可以理解为python语言中的装饰器二:实例pragma solidity ^0.4.18;contract modifierDemo { address publi...原创 2018-08-21 10:56:12 · 412 阅读 · 0 评论 -
Solidity-继承
一:继承使用“is”去继承一个合约,子类可以访问父类的除private限制的属性和方法。 包括internal方法和变量,注意:不可以使用‘this’来访问。 构造函数参数传递二:实例pragma solidity ^0.4.18;contract F{ uint internal u = 10; function test() public returns(...原创 2018-08-25 14:12:06 · 368 阅读 · 0 评论 -
Solidity-自毁
一:自毁selfdestruct(address recipient): 销毁当前合约,并且把当前合约的余额发送指定地址二:实例pragma solidity ^0.4.18;contract selfdestructDemo{ uint internal u = 10; function test() returns(uint){ retu...原创 2018-08-25 14:13:23 · 2308 阅读 · 1 评论 -
Solidity-call、delegatecall
一:call、delegatecallcall delegatecall 可以调用已部署的合约中的方法call:调用某个合约中的方法,执行结果会影响被调用合约(此某个合约)的中的变量(必须要知道某个合约的address) delegatecall:调用某个合约中的方法,执行结果会影响调用者(本合约)中的变量(必须要知道某个合约的address)二:实例pragma soli...原创 2018-08-25 14:28:02 · 873 阅读 · 0 评论 -
Solidity-方法
一:方法相关的修饰词定义方法的格式:function name(<parameter types>) {public|private|internal|external} [constant][payable] [returns(<return types>)]{...}external: 可以被其他合约调用,但是在自身合约内不能直接调用,需要thi...原创 2018-08-19 18:43:41 · 297 阅读 · 0 评论 -
Solidity-通过new创建合约
一:通过new创建合约(Creating Contracts via new)合约可以使用new关键字创建新合约。必须事先知道要创建的合约的完整代码,因此递归创建依赖(recursive creation-dependencies)是不可能的。二:实例pragma solidity ^0.4.24;contract A { uint public x; uin...原创 2018-08-19 17:47:05 · 4548 阅读 · 0 评论 -
Solidity-获取区块属性信息
一:区块属性blockhash(uint blockNumber) 在0.4.22版本,将block.blockhash(uint blockNumber) returns (bytes32)替换block.coinbase (address): 当前块所属旷工地址block.difficulty (uint): 当前块难度block.gaslimit (uint): 当前块汽油上...原创 2018-08-19 12:28:25 · 6051 阅读 · 0 评论 -
geth常用命令及加快下载速度配置
查看连接状态 net.listening查看连接节点数 net.peerCount查看自己伙伴的网络信息 admin.peers查看自己的网络信息 admin.nodeInfo静态节点 如果有一个节点,你一直想要和它保持链接,那么你可以把那个节点配置成你的静态节点 ● 配置方法 ➢ /static-nodes.json 把节点信息写入这个文件,格式如下: [ “en...原创 2018-07-29 12:08:47 · 1591 阅读 · 0 评论 -
以太坊添加静态节点
如果有一个节点,你一直想要和它保持链接,那么你可以把那个节点配置成你的静态节点 即:在你的数据文件存放目录下,添加文件static-nodes.json,并向此文件中写入你要添加的节点的信息● 配置方法 ➢ /static-nodes.json 把节点信息写入这个文件,格式如下:[ "enode://f4642fa65af50cfdea8fa7414a5def7bb7991...原创 2018-07-29 12:13:37 · 5583 阅读 · 3 评论 -
以太坊开发环境搭建(go+geth+ganache+remix)
一:环境说明1.ubuntu16.04 64位 2.golang (1.10.3) 3.geth (1.8.12) 4.ganache (ganache-1.2.1-x86_64.AppImage) 5.remix 二:安装golang、安装geth参见以太坊单节点私链搭建(go+geth+Etherum Wallet) 博文中的 【二:安装golang】、【三:安装...原创 2018-07-26 16:16:53 · 2950 阅读 · 0 评论 -
发布合约到私链
一:环境说明节点1: 1.ubuntu16.04 64位 (ip:172.16.29.11) 2.golang (1.10.3) 3.geth (1.8.12) 4.Etherum Wallet 节点2: 1.ubuntu16.04 64位 (ip:172.16.29.12) 2.golang (1.10.3) 3.geth (1.8.12) 4.Ether...原创 2018-08-18 18:30:12 · 506 阅读 · 0 评论 -
Solidity-投资者
一:合约功能1.添加投资者到mapping 2.设置投资者的资金 3.做事件监听二:编写合约pragma solidity ^0.4.0;contract StructDemo{ struct Funder{ address add; uint amount; } mapping (uint => Funder)...原创 2018-08-18 20:14:08 · 359 阅读 · 0 评论 -
Solidity-Delete用法
一:delete说明delete操作符可以用于任何变量,将其设置成默认值0。 如果对动态数组使用delete,则删除所有元素,其长度变为0。 如果对静态数组使用delete,则重置所有索引。 如果对map类型使用delete,什么都不会发生。 但如果对map类型中的一个键使用delete,则会删除与该键相关的值。二:案例1pragma solidity ^0.4.20;c...原创 2018-08-19 11:33:31 · 603 阅读 · 0 评论