区块链
区块小白龙
这个作者很懒,什么都没留下…
展开
-
solidity学习笔记(九)transfer转账
转账方法需要申明payabletransfer转账pragma solidity ^0.4.6;contract TestTransaction{ function deposit() payable { address acc = 0x15Ee9687310EF47b59F2e6060d3b7AD90e6a09E5; acc.transfer(...原创 2018-12-31 11:37:57 · 6348 阅读 · 0 评论 -
solidity学习笔记(十)sender转账
transfer转账余额不足,会异常sender转账余额不足返回false使用send要检查转账结果,深度限制1024所以使用tansfer更安全pragma solidity ^0.4.6;contract TestSender{ function deposit() payable returns(bool) { // 消息发送人的地址 ...原创 2018-12-31 15:15:24 · 658 阅读 · 0 评论 -
solidity学习笔记(十一)string
string使用“”或者‘’表示,是可变长度的字节数组一个汉字对应三个字节数据或者字符对应一个字节不能通过length获取长度或者修改,需要先转化为数组再做修改pragma solidity ^0.4.6;contract TestString{ string _name; function TestString() { _name = "xiao...原创 2018-12-31 15:25:26 · 364 阅读 · 0 评论 -
solidity学习笔记(十八)动态、固定字节数组以及string之间的转化
1.固定大小的数组之间的转化pragma solidity ^0.4.6;contract TestCharge{ bytes2 public b = 0x6c11; // bytes 大小使用bytes32的32决定 function bLength() returns(uint){ return b.length; } funct...原创 2019-01-05 10:22:32 · 821 阅读 · 0 评论 -
solidity学习笔记(十二)固定长度字节数组
一个字节八位pragma solidity ^0.4.6;contract TestFixBytes{ // 一个字节 八位 固定大小数组内容和长度都不可修改 bytes9 a = 0x6c111122ab9;// bytes1 b = 0x69;//105 function test1() constant returns(bool){ r...原创 2018-12-31 16:41:44 · 357 阅读 · 0 评论 -
solidity学习笔记(十四)string转化bytes
pragma solidity ^0.4.6;contract TestString2Bytes{ string public _name="xiaowu"; function getLength() returns(uint){ return bytes(_name).length; } function setFirstBy...原创 2019-01-04 07:35:55 · 2022 阅读 · 0 评论 -
solidity学习笔记(十五)特殊字符或者汉字字节大小
pragma solidity ^0.4.6;contract TestTeShu{ string public name="@!$F"; string public name2 = "小吴";//0x40212446 function getBytes() returns(bytes){ return bytes(name); } ...原创 2019-01-04 07:36:08 · 896 阅读 · 0 评论 -
solidity学习笔记(十六)可变长度字节数据
长度和内容都可以修改pragma solidity ^0.4.6;contract TestCreateBytes{ bytes public b = new bytes(1); function getLength() constant returns(uint){ return b.length; } function ...原创 2019-01-04 07:36:21 · 466 阅读 · 0 评论 -
以太坊源码学习(一)区块结构
区块结构type Block struct { header *Header //区块头 uncles []*Header //防止攻击的 transactions Transactions //交易列表 // caches hash atomic.Value size atomic.Value // Td is us...原创 2019-01-13 21:40:52 · 445 阅读 · 0 评论 -
以太坊源码学习(六)geth源码debug以及遇到的问题记录
1.debug使用的idea是golang 参考https://blog.csdn.net/KeenCryp/article/details/811035662.win7环境执行debug时遇到的问题cc1.exe: sorry, unimplemented: 64-bit mode not compiled in参考https://blog.csdn.net/mecho/ar...转载 2019-01-24 09:59:52 · 613 阅读 · 0 评论 -
以太坊源码学习(二)geth启动
geth命令cmd/main/main.gofunc main() { if err := app.Run(os.Args); err != nil { // app是三方包,用于接收客户端命令 fmt.Fprintln(os.Stderr, err) os.Exit(1) }}func init() { // init方法先于main方法执行...原创 2019-01-19 15:51:22 · 552 阅读 · 0 评论 -
以太坊源码学习(三)交易
internal/ethapi/api.go// SendTransaction will create a transaction from the given arguments and// tries to sign it with the key associated with args.To. If the given passwd isn't// able to decryp...原创 2019-01-20 09:44:25 · 387 阅读 · 0 评论 -
solidity学习笔记(七)地址支持的运算符
支持<= ,<,==,>=,>pragma solidity ^0.4.6;contract TestYunSun{ address address1=0x692a70d2e424a56d2c6c27aa97d1a86395877b3a; address address2=0x692a70d2e424a56d2c6c27aa97d1a86395877b...原创 2018-12-31 11:03:46 · 234 阅读 · 0 评论 -
solidity学习笔记(六)this和指针
this指的是当前的合约对象原创 2018-12-31 10:55:25 · 2047 阅读 · 0 评论 -
fabric学习纪要(一) 1.0.0环境搭建(各种环境问题,弄了两周才跑起来)
fabric 环境问题很多,弄了好久,按步骤来这篇文章可行,记录下还有一点心得:如果你遇到问题,实在解决不了,环境初始化重来,fabric要求比较干净的环境一、装GO语言下载最新版的go打开Terminal,输入命令(以下命令都是以root管理员的角色进行的)su输入密码:*****wget https://storage.googleapis.com/golang/go1...转载 2018-12-03 10:28:13 · 315 阅读 · 0 评论 -
以太坊原理分析(二)以太坊区块结构和账户体系
1、引言 区块链的本质是一个分布式的数据库。因此不同时刻的用户数据的写入对应着不同的状态。比特币使用UTXO来表示状态的转移,而以太坊使用账来表示状态的转移。2、账户 以太坊中存在两种账户,分别是外部账户和合约账户。外部账户EOA:一般自然人分配的账户,被私钥控制且没有任何代码与之关联。合约账户CA:给智能合约分配的账户,被合约代码控制且有代码与之关联。...转载 2018-12-27 11:01:24 · 2062 阅读 · 0 评论 -
solidity学习笔记(二)布尔型
boool型很好理解,会简单运算即可pragma solidity ^0.4.4;contract Bool { bool _f; constructor() public{ _f = false; } function testB() constant public returns(bool){ if(!_f){...原创 2018-12-28 07:32:04 · 143 阅读 · 0 评论 -
solidity学习笔记(十三)动态大小字节数组
不知道大小时使用string或者bytes在知道大小时使用bytes1-bytes32,降低存储成本原创 2019-01-04 07:35:45 · 245 阅读 · 0 评论 -
solidity学习笔记(十七)可变数组push
pragma solidity ^0.4.6;contract TestPush{ bytes public name = new bytes(2); // 会增加长度 function pushName(byte b) public{ name.push(b); }}原创 2019-01-04 07:38:19 · 2920 阅读 · 0 评论 -
solidity学习笔记(一)类
solidity语言类java,面向对象,相同的特性和方法抽象出来,放在一起,简单的类如下:// constaract 合约,相当于class ConstaractDemo extend Constractcontract ContractDemo { uint public _age; string _name; address _owner; ...原创 2018-12-25 14:42:46 · 285 阅读 · 1 评论 -
以太坊原理分析(一)以太坊工作(交易)原理
简介不管你们知不知道以太坊(Ethereum blockchain)是什么,但是你们大概都听说过以太坊。最近在新闻里出现过很多次,包括一些专业杂志的封面,但是如果你们对以太坊到底是什么没有一个基本的了解的话,看这些文章就会感觉跟看天书一样。 所以,什么是以太坊?本质上,就是一个保存数字交易永久记录的公共数据库。重要的是,这个数据库不需要任何中央权威机构来维持和保护它。相反的它以一个“无信任”的...转载 2018-12-25 15:25:50 · 6320 阅读 · 1 评论 -
solidity学习笔记(三)参数传递
值类型:布尔boolean、 整型Integer、 地址address、 定长字节数组byte、枚举 Enums 、函数 指针类型:不定长字节数组 bytes 、字符串string 、数组array 、结构体Struts参数类型:stroage和memory 方法形参默认是memory(值传递),可使用stroage(指针传递),在使用stroage修饰形参时方法必须是intern...原创 2018-12-31 09:42:51 · 1988 阅读 · 0 评论 -
solidity学习笔记(四)地址
地址20字节,每个字节8位地址是40个十六进制字符,以0x开头地址二进制为160位,可以用uint160存储二进制,比如F=15=1111二进制pragma solidity ^0.4.6;contract Test{ address _owner; uint160 _ownerUnit160; function Test(){ //_o...原创 2018-12-31 10:28:17 · 218 阅读 · 0 评论 -
solidity学习笔记(五)sender
msg.sender 消息的发送者,对应当前交易里面的from pragma solidity ^0.4.6;contract TestMsg{ address public _owner; uint public _number; function TestMsg(){ _owner = msg.sender; _nu...原创 2018-12-31 10:41:16 · 271 阅读 · 0 评论 -
以太坊源码学习(五)提交交易之交易池
/internet/ethapi/api.go// submitTransaction is a helper function that submits tx to txPool and logs a message.func submitTransaction(ctx context.Context, b Backend, tx *types.Transaction) (common....原创 2019-01-20 16:10:44 · 579 阅读 · 0 评论