矿工是区块链节点中的一个角色,矿工与区块链是包含与被包含的关系。

账本的内容是所有节点所维护的那条公链中的区块以及该区块的相关信息。

区块可能由一些功能模块生成,在众多相同节点且相同的时间流逝中,A节点有可能诞生一个区块1,B节点也有可能诞生一个区块1,在同一条链中,相同区块号的区块最终只能挑选一个串接到链中。使用共识算法来解决选取那个区块上链

常见的共识算法:

  • PoW,BTC, 区块链1.0
  • PoS,ETH 区块链2.0
  • DPos,代表者是柚子EOS,区块链3.0
  • PBFT,联盟链常用

PoW(Proof of Work,工作量证明)的字面意思是谁干的活多,谁的话语权就大,在一定层面上类似于现实生活中“多劳多得”的概念。

比特币挖矿就是通过计算符合某一个比特币区块头的哈希散列值争夺记账权

Solidity学习

Solidity语言是一种编写智能合约的区块链语言

基本框架

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.4; // 声明语言版本,^表示,编译的版本小于等于0.9.0,0.8.4表示编译的版本大于0.8.4
contract HelloWeb3{ // contract 合约名称表示创建一个合约
string public _string = "Hello Web3!";
}

部署

在编写好具体的智能合约代码之后,使用Solidity编译后,即可部署在以太坊区块链上运行

通常,如果要部署到公链上,需要支付一笔部署的费用,费用会根据智能合约内容的多少而改变,在学习Solidity的过程中,可以使用Remix在线IDE来模拟模拟部署

变量类型

  • 数值类型:2. 数值类型 | WTF Academy

    pure 可以用来存储一种行为,这种行为与合约的数据无关

    view 可用用来存储一种使用合约数据的行为,但是无法改变合约的数据

    payable 表示该函数行为可以给合约转入ETH

    没有决定函数权限和功能的关键字,也就是默认,表示一种可以使用和修改合约数据的行为

  • 引用类型

  • 映射类型

  • 函数类型

常用的库合约

image-20240217161706768

import

image-20240217161745511