以太坊的开发与测试(1)

以太坊(Demo)开发测试----全网最全细节

以太坊?区块链?智能合约?

学习一个新的技术栈总是让人感到头疼,最近需要做一个关于以太坊的试验。博主长期不写代码了(本来也不怎么写,嘿嘿),那更是头疼的不行,以前主要写写C++、C语言什么的。这个以太坊开发又是web3、js、前端什么的,我真的不会啊啊啊啊啊啊啊。

说实话,我是压根不想动的,毕竟写代码什么的最烦了,我只想当个只会BB的 “嘴炮架构师” ,并且只想指挥别人干活,人生最大理想 ----- “不劳而获”。但是,但是,但是,没有办法,最为最底层的码农怎么能不干活呢?毕竟,饭总是要吃的吧!

废话不多说,本人最喜欢学习新的东西,之前大概看了看这个以太坊,也曾尝试搭个环境浅尝辄止。但是,学技术的都知道,你要是想要真正的掌握一个技术,必须要认认真真的使用该技术做一个什么小项目啊,实验啊,才能说是大略掌握这个技术。

所以这一次为了真正的好好体会一下以太坊技术,我决定从0开始研究一个区块链的小项目,然后,好好的理解一下这个以太坊技术。

这个小项目就是《区块链技术-进阶与实战》蔡亮 李启雷 梁秀波 著的这本书的几个实验项目。
这是他们项目源码的地址:https://github.com/Blockchain-book/Ethereum-Score-Hella

安装一个Linux虚拟机

VM 15.5 pro 在win 10 平台下建立一个linux Ubuntu 18 虚拟机作为基本开发环境。
1.虚拟机安装 & 安装VMtool
https://jingyan.baidu.com/article/3c48dd34f353fde10ae3587a.html
2.替换阿里源
https://developer.aliyun.com/mirror/
3.更新系统

安装Nodejs,npm

  1. 安装 npm nodejs
    nodejs 为项目运行提供环境,相当于是web服务器;npm 为我们提供相关环境的包管理服务;
    sudo apt-get install nodejs
    sudo apt-get install npm
    更新
    sudo npm install npm -n -g
    sudp n stable
    以太坊的开发与测试(1)_第1张图片

安装GO语言

现成的安装方法:
https://www.cnblogs.com/swlj/articles/11836198.html

安装以太坊GO客户端 geth

官方安装方法:
https://github.com/ethereum/go-ethereum/wiki/Building-Ethereum
选择自己的系统版本,抄就好了!!

编写创世文件

{
    "config": {
        "chainId": 15,
        "homesteadBlock": 0,
        "eip155Block": 0,
        "eip150Block": 0
    },
    "difficulty": "1",
    "gasLimit": "210",
    "alloc": {
    }
}

这就是以太坊区块链的创世文件,一个文件定义一个条链;

创建私链

geth --datadir ~/geth/data init ~/geth/genesis.json
以太坊的开发与测试(1)_第2张图片

geth --datadir ~/geth/data --nodiscover --rpc --rpcapi eth,web3,personal

以太坊的开发与测试(1)_第3张图片
已经显示有一个本地节点出现,然后这个交互式程序就进入了查找其他节点的循环当中;/geth/ 即为你区块链的相关文件地址

开启一个新的终端,我们开启geth客户端连接到这条区块链中:
geth attach ~/blockchaintest/data/geth.ipc
以太坊的开发与测试(1)_第4张图片
创建账户 并 挖矿
在这里插入图片描述
从这个锤子的标志看,我们已经挖到了矿,并且以太坊区块链块数现在为1,账号1 挖到了500…000 Wei 。

转账操作:
eth.sendTransaction({from:eth.accounts[0],to:eth.accounts[1],gas:10,‘gasPrice’:web3.toWei(5,‘gwei’),“value”:“10000”})

在这里插入图片描述
报错了,需要私钥或者解锁账户,然而我没记当时开启账户的私钥,尴尬。

Testrpc 安装

Testrpc 是一种方便的客户端,专门用来测试智能合约,可以减免挖矿的过程,直接将消息打包入区块,便于测试。

sudo npm install -g ethereumjs-testrpc
以太坊的开发与测试(1)_第5张图片

安装truffle

sudo npm install -g truffle

你可能感兴趣的:(区块链)