小言_互联网的博客

[区块链笔记7] 以太坊(Ethereum)系统学习

531人阅读  评论(0)

什么是以太坊

以太坊Ethereum是一个基于公共区块链的分布式计算平台,可用于构建基于区块链的分布式应用。
它使用专用的加密货币–以太币(Ether-简称Eth)来支撑应用运行。
以太坊还提供了对数字货币进行编程的能力,即智能合约,开发人员可以利用此能力,开发基于区块链的分布式应用,例如,博彩、游戏等应用

什么是以太币

比特币网络中有比特币,以太坊网络中的虚拟货币就是以太币。
以太币的用处在于防止网络被滥用,和作为报酬。
我们在网络上部署的智能合约的操作是需要网络来提供计算功能,当然这就需要支付一定的价钱。在以太坊网络中我们需要支付的是叫gas的东西,就是使用以太币来支付。

以太币的主要单位是以太(Ether或eth),也就是一个以太币。它的最小但是是wei。
一个以太币=10的18次方个wei

智能合约

自己理解的智能合约就是通过编程来实现的以太币的流动相关操作。他不需要人为干预就可以执行各种操作。并且提供了可追踪性。
当前比较流行的用于编写智能合约的语言就是solidity
可以说以太坊网络的精华部分就是以太币和操作以太币的智能合约

分布式应用(DApp)

普通的应用是:前端+后台服务器
分布式应用是:前端+智能合约(区块链网络)

账号(地址)

以太坊网络中账号分外部账号和合约账号。
外部账号就是普通用户的账号地址。合约账号就是每个合约的地址。
也就是说每个用户以及每个合约都有地址。只要有地址,就可以存以太币。

以太坊虚拟机

学过计算机组成的应该知道汇编语言虚拟机、操作系统虚拟机、高级语言虚拟机的概念。
这里的以太坊虚拟机的概念类似,也就是可以运行高级语言的一种虚拟的机器。

当我们写好solidity后,通过以太坊虚拟机上的编译器编译生成可执行的字节码程序,然后就部署到以太坊虚拟机网络中,分配到不同的区块,并且每个区块都有不同的地址,这里的地址就上上面提到过的账号(地址)

网络节点

这个地方摘抄一下百度来的

以太坊(Ethereum)网络是一个公共的区块链网络,网络中包含2种网络节点:
全节点、轻节点
全节点 包含了从初始区块开始的全部区块,这些区块中包含了所有的交易历史记录,这些信息是区块链完整性的证据,可用于区块和交易的校验。通常矿工节点应该是全节点。

轻节点 只包含区块头形成的链,为节省空间,去除了区块体。这些类型的节点主要用于电子钱包,电子钱包必须是轻量级的,因此不能存储整个区块链。轻节点不会用来校验区块或交易,但区块链是一个网络,如有必要轻节点可以向全节点请求区块数据。

轻节点的优势在于,可以更快地启动和运行,可以在计算/内存受限的设备上运行,例如手机。

挖矿

以太坊(Ethereum)与其他公共区块链一样,使用工作量证明机制确保区块链网络正常运行。

矿工进行工作量证明计算,即挖矿。

智能合约开发

目前主要用solidity静态高级语言来编写智能合约。
利用truffle框架来编译、部署、测试。
利用Ganache来进行本地区块链环境搭建

利用truffle把智能合约部署到Ganache

在之前已经做过了,这里只贴一个链接
https://blog.csdn.net/weixin_42172261/article/details/106915121

truffle测试模块

测试脚本需要写在test目录下。

//把合约分配给testContract变量
const testContract = artifacts.require('Test');
contract('testContract', (accounts) => {
	//暂时理解为1个it就是一个测试,当前先不测试的用xit
	it('test success, equal', async() => {
		const tContract = await testContract.deployed();
		const value = await tContract.getX();
		assert.equal(value, 5);
	})
})

到这里突然想起一件事来,在truffle console下面使用testContract变量就不可以,在这里就可以。实在搞不懂为什么。
在truffle console下,需要使用合约的名字才能访问,而使用在迁移文件中定义的变量名就不可以。
有大佬知道怎么回事麻烦告知一下。

然后命令truffle test, 下面是成功和不成功的两个结果

智能合约搭建到前端

贴链接:https://blog.csdn.net/weixin_42172261/article/details/106961815


转载:https://blog.csdn.net/weixin_42172261/article/details/106954719
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场