自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Lich Howger

Lich Howger

  • 博客(52)
  • 收藏
  • 关注

原创 290-BitCoin全攻略六_区块头

BitCoin全攻略六最简单的区块链我们已经写好了我们现在来丰富一下区块头我们可以百度一下比特币的区块结构我们可以看到比特币的Block Header,也就是区块头是这样的Block Header 固定80字节大小,结构如下大小(字节) 名称 数据类型 描述4 version int32_t 版本号32 previous_block_h...

2019-02-27 21:48:37 691

原创 288-BitCoin全攻略四_添加区块

BitCoin全攻略四我们创建完了区块链现在我们来写一个方法往区块链里面添加区块func (bc *BlockChain) AddBlock(data []byte){ //获取前一个区块 lastBlock := bc.Blocks[len(bc.Blocks) - 1] //获取前一个区块的hash值 prevHash := lastB...

2019-02-27 21:47:43 289

原创 287-BitCoin全攻略三_创建区块链

BitCoin全攻略三单个区块的代码已经差不多了现在我们要创建多个区块然后把一个个区块串联起来形成 区块链我们先来写一个结构体,表示区块链然后里面就放的是区块数组type BlockChain struct{ blocks []*Block}然后我们写一个方法去创建区块链func NewBlockChain() *BlockCh...

2019-02-27 21:47:15 356

原创 286-BitCoin全攻略二_计算哈希

BitCoin全攻略二我们看下刚刚写的代码package mainimport "fmt"type Block struct { //1.前区块哈希值 PrevBlockHash []byte //2.当前区块的哈希 Hash []byte //3.数据 Data []byte}func NewBlock(data []byte...

2019-02-27 21:46:29 184

原创 285-BitCoin全攻略一_创建区块

BitCoin全攻略一今天,我们从0开始一点一点的把整个比特币系统写出来打开GoLand创建一个工程就叫BitCoinDemo吧然后我们创建一个src文件夹在src里面创建一个main.go文件这就是我们的主文件了那么我们来定义一下区块的结构type Block struct{ //1.前区块哈希值 PrevBlock...

2019-02-27 21:45:16 476

原创 284-bolt数据库入门

bolt数据库入门我们来使用一下bolt数据库特点:1.轻量级2.开源3.go语言实现4.key-value进行读写我们打开github搜索一下bolt找到bolthttps://github.com/boltdb/bolt我们看下简介Bolt is a pure Go key/value store inspired by Howard C...

2019-02-26 20:48:23 1315

原创 283-ipfs入门

ipfs入门IPFSInterPlanetary File System星际文件系统面向全球的,点对点的分布式版本文件系统特点1.内容可寻址2.版本管理3.点对点超媒体P2P我们看下http存在的问题1.内容无法永远保存 4042.浪费资源3.效率低ipfs init会在home目录下创建.ipfs目录里面存储了所有在i...

2019-02-26 18:55:05 146

原创 282-geth入门

geth入门geth是以太坊的go版本客户端go ethereum --- geth是目前主流的连接以太坊网络的客户端现在我们来搭建一个以太坊私有网络来看下步骤1.准备创世文件genesis.json2.创建文件夹,指定为私有网络数据存储位置3.创建私有链我们先来安装下geth我是ubuntu系统是这样装的$ sudo add-...

2019-02-26 18:41:34 248

原创 281-TruffleReactBox入门二

TruffleReactBox入门二刚刚我们创建好项目然后简单修改了下代码看了一下效果接下来我们来用truffle-contract改写一下这个项目看下步骤1.安装引入truffle-contract那么我们先来安装一下truffle-contractcd client 进入client执行cnpm install tru...

2019-02-26 16:18:33 417

原创 280-TruffleReactBox入门

TruffleReactBox入门我们创建一个目录TruffleReactDemo然后执行truffle unbox react或者sudo truffle unbox react如果不能下载或者下载失败的话那么可以到官网去下载https://truffleframework.com/然后打开boxes这里面都是样板项目,样板文件然后...

2019-02-26 15:18:38 325

原创 279-Truffle入门

TruffleTruffle框架以太坊框架把compile,deploy都封装起来了我们直接调用接口就行了安装npm -install truffle -g创建空项目truffle init再说一个linux给权限的命令sudo chown abc:abc * -R然后会生成一些源代码truffle-config.js之类的...

2019-02-26 10:00:12 180

原创 278-golang垃圾回收

golang垃圾回收在以前,内存管理是程序员开发应用的一大难题传统的系统级变成语言(比如C,C++),程序员必须对内存小心的进行管理操作控制内存的申请和释放稍有不慎就可能产生内存泄漏的问题这种问题不容易发现而且难以定位解决这种问题一般有两种办法1.内存泄漏检测工具 这种工具的原理一般是静态代码扫描 通过扫描程序来检测可能出现内存泄漏的代码段...

2019-02-25 17:08:27 170

原创 277-go语言CGO

go语言CGO什么是CGO简单来说,就是go语言代码中编写c语言代码和调用c语言代码在一些偏底层的业务中用c来编写会比较简单然后在go中调用我们来写几个简单的小例子我们的c语言代码必须写在import "C"的上面,不能有空行比如这样/*#include <stdio.h>int a = 1;char s[30] = "...

2019-02-25 17:02:41 162

原创 276-go语言golang面试题知识点

go面试题1.go语言中的主要关键字,一共25个1.程序声明: 1.import 2.package2.实体声明和定义 1.chan 2.const 3.func 4.interface 5.map 6.struct 7.type 8.var3.流程控制 1.go 2.select 3.break 4.case 5.continu...

2019-02-24 17:25:41 4383

原创 275-golang结构体变量命名以及json

golang结构体变量命名以及json我们先来看一段简单的代码func main() { p1 := Person{"Alice", 20} fmt.Println(p1) bytes, _ := json.Marshal(p1) fmt.Println(string(bytes))}type Person struct { name s...

2019-02-22 11:39:55 1599

原创 274-golang多态浅析

golang多态浅析首先我们说一下什么是多态接口的多种不同的实现方式就是多态比如在java中,两个类实现同一个接口比如这样public interface Person{ public void SayHello();}public class Student implements Person{ public void SayHello()...

2019-02-21 21:02:53 423

原创 273-golang指针浅析

golang指针浅析我们先来看一段简单的代码func main() { person := Person{"Alice", 20} fmt.Printf("%p\n", &person) p1 := &person fmt.Printf("%p\n", p1) fmt.Printf("%p\n", &p1)}type ...

2019-02-21 20:08:05 118

原创 272-ethereum抽奖小游戏四

ethereum抽奖小游戏四把所有逻辑理一遍看看完整代码第一步.先编写solidity合约代码pragma solidity ^0.4.24;contract Lottery{ address public manager; address [] public players; address public winner;...

2019-02-21 18:31:12 230

原创 271-react合约交互

react合约交互我们创建三个文件夹,对js文件进行一个管理1.display display.js2.eth interaction.js loadInstance.js3.utils getWeb3.js首先,我们把web3分离到getWeb3.js里面getWeb3.js文件//web3let Web3 = require...

2019-02-21 17:03:30 409

原创 270-semantic入门

semantic入门Semantic UI 是一款非常优秀的前端开发框架我们可以用semantic快速开发很漂亮的UI我们是用react进行展示所以我们打开semantic的react版本https://react.semantic-ui.com/然后我们需要安装一下semanticnpm install semantic-ui-react --...

2019-02-21 14:10:35 267

原创 269-ethereum抽奖小游戏三

ethereum抽奖小游戏三然后在App.js导入一下let lotteryInstance = require(../loadInstance)然后在class App里面//生命周期函数componentWillMount(){ let manager = await lotteryInstance.methods.manager().cal...

2019-02-21 11:33:11 149

原创 268-ethereum抽奖小游戏二

ethereum抽奖小游戏二我们来写一个把奖金池的奖金全都退回去的功能1.只有管理员可以操作2.彩民人数大于0时才执行3.遍历彩民池,对每一个彩民进行转账,每个地址1ether4.彩民池清零5.期数加一function giveback() public onlyManager{ require(players.length !=0) //遍...

2019-02-20 17:42:41 132

原创 267-react入门

react入门react应用程序骨架(脚手架)安装一下npm install -g create-react-app然后我们创建一个工程create-react-app demols看下目录然后进入到目录里面cd demo我们看到目录里已经有了工程文件了然后我们测试一下npm run start 然后我们就看到react了...

2019-02-20 17:17:50 89

原创 266-ethereum抽奖小游戏

ethereum抽奖小游戏我们先来写合约pragma solidity ^0.4.24;contract Lottery{}我们分析一下需要哪些状态变量1.管理员, 地址2.彩民池, 地址数组3.期数, uint4.赢家, 地址contract Lottery{address public manager;address[] p...

2019-02-20 16:03:06 354

原创 265-ethereum合约交互

ethereum合约交互从以太坊上获取已经部署好的合约实例需要的数据1.ABI2.合约地址const ABI = [{...}]const address = 0xabcd....然后我们还是需要web3来设置网络let Web3 = require('web3')let web3 = new Web3('http://127.0.0.1:75...

2019-02-20 13:33:04 285

原创 264-ethereum测试部署合约

ethereum测试部署合约我们尝试在ganache-cli环境来部署合约先来写一个简单的合约pragma solidity ^0.4.24;contract SimpleStorage { string str; constructor(string _str) public{ str=_str; } ...

2019-02-20 11:48:55 206

原创 263-ethereum正式部署合约

ethereum正式部署合约如果我们要在正式网络部署合约只需要remix和MetaMask就可以了首先我们登录MetaMask里面需要以太币如果我们要部署的合约比较小那么只需要一点点以太币然后我们打开remix新版:http://remix.ethereum.org旧版https://ethereum.github.io/bro...

2019-02-20 11:09:21 148

原创 262-ethereum部署合约

ethereum部署合约我们先来看下文档找到 new contract然后我们看看new web3.eth.Contract(jsonInterface[,address][,options])Creates a new contract instance with all its methods and events defined in its json...

2019-02-19 17:02:11 262

原创 261-ethereum合约应用模块

ethereum合约应用模块现在跟合约进行交互我们创建三个文件1.display.js 负责展示2.interaction.js 负责交互3.utils.js 工具然后我们创建3个文件夹1.eth2.utils3.display分别放不同的东西我们来看下结构用户与App进行交互App控制一个控制模块Controlle...

2019-02-19 17:01:08 206

原创 260-cryptozombies全攻略八

cryptozombies全攻略八第四章.调用和合约函数web3.js有2个方法来调用合约的函数1.call2.sendcallcall用来调用view函数和pure函数值运行在本地节点不会在区块链上创建事务sendsend将创建一个事务并改变区块链上的数据用send来调用非view或pure的函数myContract.metho...

2019-02-19 16:58:51 321

原创 259-ethereum编译合约

ethereum编译合约先来看一下node.js调用以太坊合约过程1.编写合约2.编译合约3.部署合约4.调用合约我们来写一个简单的合约pragma solidity >=0.4.22 <0.6.0;contract SimpleStorage { string str; constructor(string _st...

2019-02-18 20:00:01 185

原创 258-promise异步读写

promise异步读写我们用promise配合async,await来写文件异步读写本来我们的代码是这样的let fs = require('fs');fs.readFile('./data.txt','utf-8',(err, data) => { if (err) { console.log('readFile fa...

2019-02-18 16:41:55 90

原创 257-solidity合约逻辑

solidity合约逻辑我们来理一下逻辑第一步.编写合约--solidity第二步.编译合约用编译器将solidity代码编译出bytecode和ABIABI是不上链的只有bytecode上链第三步.部署合约然后将bytecode部署到区块链上部署后,会返回合约的地址然后想要和合约交互那么要知道1.地址2.ABI通过这两个东西,构造一个...

2019-02-18 15:54:44 262

原创 256-Goland加载node模块

Goland加载node模块打开settings然后找到Languages&Frameworks然后找到JavaScript然后找到Libraries然后右边就是Library库列表然后我们点击download找到node和nodejs然后下载然后下载安装完成后就自动添加到了列表里面我们看到有@types/node@type...

2019-02-17 21:09:09 496

原创 255-cryptozombies全攻略七

cryptozombies全攻略七第一章.Web3.js什么是Web3.js以太坊网络是由节点组成的每个节点都包含了区块链的一份拷贝当我们想要调用一份智能合约的一个方法需要从其中一个节点中查找并告诉它1.智能合约的地址2.想调用的方法3.想传入的参数以太坊只能识别一种叫做JSON-RPC的语言这种语言不好懂Web3.js把查询语句都隐藏起来...

2019-02-16 21:40:58 169

原创 254-cryptozombies全攻略六

cryptozombies全攻略六回顾一下之前的所有代码1.ZombieFactorypragma solidity ^0.4.19;import "./ownable.sol";import "./safemath.sol";contract ZombieFactory is Ownable { using SafeMath for u...

2019-02-16 20:19:56 174

原创 253-node.js调用web3

node.js调用web3let readFileInfo = async() => { try{ let data = await readFilePromise() console.log('data: ', data.toString()) }catch(e){ console.log(e) }}readFileInf...

2019-02-16 20:17:24 414

原创 252-cryptozombies全攻略五

cryptozombies全攻略五第一章.以太坊代币一个代币,在以太坊基本上就是遵循一些共同规则的智能合约也就是它实现了所有其他代币共享的一组标准函数例如transfer(address _to, uint256 _value)balanceOf(address _owner)在智能合约内部,通常有一个映射mapping(address =&g...

2019-02-16 17:27:30 151

原创 251-node.js入门

node.js入门1.旧语法var定义的变量可以修改,而且可以重新定义var a = 10console.log(a)var a = 'hello'console.log(a)2.新语法let:可以修改变量,但是不允许重新定义const 不可以修改,常量let b = 20console.log(b)const c = 'hello'c...

2019-02-16 14:38:22 113

原创 250-MetaMask入门

MetaMask入门MetaMask是一款浏览器插件可以方便地和以太坊进行交互我们可以用谷歌浏览器或者火狐浏览器或者其他浏览器添加这个插件添加完成后第一次打开MetaMask就会让我们创建密码创建完密码然后就点击接受几个协议然后会给我们几个助记词一共是12个这12个助记词就是我们的私钥所以一定要保存好然后在下一页输入我们的助记词也...

2019-02-15 21:13:23 360

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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