区块链开发(一)Windows平台搭建基于以太坊的区块链开发环境
引言
Ethereum(以太坊)是一个使开发人员能够建立和发布下一代分布式应用的公共区块链平台。 通过其专用加密货币以太币(Ether)提供去中心化的虚拟机(称为“以太虚拟机”Ethereum Virtual Machine)来处理点对点合约。具体可以访问
https://ethereum.org/ 来了解更多相关信息!
环境搭建
下载可执行文件
访问 https://geth.ethereum.org/downloads/. 出现如图所示
点击基于Windows平台,可下载文件 geth-windows-amd64-1.7.3-4bb3c89d.exe
然后双击后会生成目录
点击图中的geth.exe即可!
配置语言环境
由于源码是基于go语言开发,需要配置go语言的环境,这里可以通过choco 进行安装,如果没有choco的环境可以通过 访问链接 https://chocolatey.org 进行安装choco. 然后重新打开一个dos窗口执行如下命令
C:\Windows\system32> choco install git
C:\Windows\system32> choco install golang
C:\Windows\system32> choco install mingw
安装完毕后,设置环境变量。
下载go-ethereum
在F盘创建一个目录ethereum ,然后通过进入此目录执行
git clone https://github.com/ethereum/go-ethereum
cd go-ethereum
go get -u -v golang.org/x/net/context
go install -v ./cmd/… #编译geth
至此环境已经安装完毕,但是需要测试是否可以用!
初步探索
准备创世区块配置文件
以太坊支持自定义创世区块,要运行私有链,我们就需要定义自己的创世区块,创世区块信息写在一个json格式的配置文件中。首先将下面的内容保存到一个json文件中,例如genesis.json。
{"config": {"chainId": 15,"homesteadBlock": 0,"eip155Block": 0,"eip158Block": 0},"coinbase" : "0x0000000000000000000000000000000000000000","difficulty" : "0x40000","extraData" : "","gasLimit" : "0xffffffff","nonce" : "0x0000000000000042","mixhash" : "0x0000000000000000000000000000000000000000000000000000000000000000","parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000","timestamp" : "0x00","alloc": { }
}
cmd进入上面创建的目录,然后执行指令
geth –datadir data init genesis.json
上面的命令的主体是geth init,表示初始化区块链,命令可以带有选项和参数,其中–datadir选项后面跟一个目录名,这里为data,表示指定数据存放目录为data,genesis.json是init命令的参数。运行上面的命令,会读取genesis.json文件,根据其中的内容,将创世区块写入到区块链中。
启动私有链节点
geth –datadir “./” –nodiscover console 2>>geth.log
如图所示
然后执行如下可以挖坑、交易等操作!
> eth.accounts
[]
> personal.newAccount("123456")
"0xacc9150f4d8c5664bd98a51c3aca63f5b5938fd5"
> eth.accounts
["0xacc9150f4d8c5664bd98a51c3aca63f5b5938fd5"]
> miner.start()
null
> miner.stop()
true
> eth.accounts
["0xacc9150f4d8c5664bd98a51c3aca63f5b5938fd5"]
> eth.blockNumber
0
> personal.newAccount("12345")
"0xa6b519c11b19fd73d08262a8e964ccda3509c015"
> user1=eth.accounts[0]
"0xacc9150f4d8c5664bd98a51c3aca63f5b5938fd5"
> user2=eth.accounts[1]
"0xa6b519c11b19fd73d08262a8e964ccda3509c015"
> eth.getBalance(user1)
0
> eth.getBalance(user2)
0
> miner.start()
null
> miner.stop()
true
> eth.coinbase
"0xacc9150f4d8c5664bd98a51c3aca63f5b5938fd5"
> miner.setEtherbase(user1)
true
> eth.coinbase
"0xacc9150f4d8c5664bd98a51c3aca63f5b5938fd5"
> eth.getBalance(user1)
区块链开发(一)Windows平台搭建基于以太坊的区块链开发环境相关推荐
- 干货|破解遗传算法——CryptoPups旺财,基于以太坊的区块链游戏(分享实录)
CryptoPups旺财是一个类似谜恋猫的游戏,即将推出新的手机中文版.本文将通过CryptoPups旺财来分享基于以太坊的区块链游戏. 1 游戏结构和技术概述 其实我个人认为谜恋猫跟传统的游戏比起来 ...
- 干货|破解遗传算法——CryptoPups旺财,基于以太坊的区块链游戏(分享实录)...
CryptoPups旺财是一个类似谜恋猫的游戏,即将推出新的手机中文版.本文将通过CryptoPups旺财来分享基于以太坊的区块链游戏. 1 游戏结构和技术概述 其实我个人认为谜恋猫跟传统的游戏比起来 ...
- 基于以太坊的智能合约开发教程Solidity modifier
基于以太坊的智能合约开发教程Solidity modifier pragma solidity ^0.4.0;contract modifierTest{address owner;uint publ ...
- 开发基于以太坊的区块链底层平台,秘猿科技想做共识数据时代的Oracle
"与其说区块链是比特币的底层技术,不如说比特币是区块链技术的第一个成功的应用."秘猿科技的创始人谢晗剑这样看待区块链和比特币的关系. 秘猿科技是一家从事底层区块链平台开发和共识算法 ...
- 在windows平台搭建基于nginx的直播服务器
1.nginx简介 Nginx本身是一个非常出色的HTTP服务器,FFMPEG是非常好的音视频解决方案.这两个东西通过一个nginx的模块nginx-rtmp-module,组合在一起即可以搭建一个功 ...
- 如何在geth中创建genesis.json_基于以太坊的私有链搭建,mist+geth实现
以前让学生做毕业设计,今天有人问起来,就写一个小教程,说一说基于eth的私有链如何搭建.非常简单. 一.geth,mist 客户端下载 1.这里我给大家介绍下,以太坊客户端,以太坊客户端主要分成两类. ...
- 2018-11-08 微信小程序上做基于以太坊的区块链Dapp
1.以太坊开发环境搭建 a.Geth 节点的安装 下载:https://www.ethereum.org/cli b.创建一个配置文件 genesis.json 用于创建创世块和设置网络 c ...
- 基于以太坊的测试链发布一个智能合约
1,创建账户 使用METAMASK钱包来进行操作,具体的创建过程请自行查阅.创建好的账户如下图所示,账户余额显示为0 详情下面显示对应账户的地址,这个是最关键的信息 首先选择左上角头像旁边的按键,切换 ...
- 基于以太坊的区块链浏览器搭建
区块链目前发展很火,有很大发展前景,本文主要是在本地私有链搭建成功后,利用web3.js.AngularJS和servlet对搭建的私有链上区块信息包括地址.区块信息.交易信息等信息的展示. 效果展示 ...
最新文章
- 在Ubuntu 16.04.5 LTS上利用python 2.7版本的pillow库拼接近千张图片实录
- Ueditor编辑旧文章,从数据库中取出要修改的内容
- 大连评职称英语计算机,假如 职称英语和中级职称的工商管理、经济基础都考过了,辞职了还有地方给评中级经济师吗?大连的...
- Delphi 中Tform的visible属性详解
- Angular 不同种类 Module 的介绍
- 栈和队列之LinekedList(双端队列)
- 项目实践中Linux集群的总结和思考
- 排名前16的Java工具类
- Python学习之路和隐藏特征
- Vim引申以及Linux下彩色进度条实现
- RIP协议路由环路及解决方案
- 四位共阴极数码管使用经验
- c语言结构体stamp是什么意思,stamp是什么意思
- 论文:YOLOX: Exceeding YOLO Series in 2021
- mysql根据日周月分组计算
- 正则表达式( 形容词、转义符号、补充)
- android中的长度单位介绍(dp,sp,px,in,pt,mm)
- 2022.10.30 英语背诵
- STM32学习——入门小项目
- (Note)七彩虹30系列显卡——《一键超频》按键