Web 3.0提出了一种去中心化的替代方案,建立在点对点的模式上。在去中心化网络中,这种直接点对点网络的原则被应用于网站和网络应用。在这种点对点的模式下,访问网站的人越多,服务新用户的能力就越大,减少了对少数中心化玩家的依赖。在这种情况下,任何一个中心化机构要想阻止或控制互联网上的信息流,难度将大大增加。
有了这一点,web 3.0就改变了当前中心化网络造成的权利的不平衡,并将信息发布的权力重新交到个人手中。而这正是互联网先驱们对互联网的最初构想。
组成 web3js
的另外 5 个模块分别是:
web3-eth
: 使web3.js
的用户可以与以太坊区块链进行交互,比如:web3.eth.getBalance
的作用是获得指定区块的某个地址的以太坊余额web3.eth.signTransaction
的作用是对交易签名web3.eth.sendSignedTransaction
的作用是将签名的交易发送到以太坊区块链。
web3-shh
: 使你可以与 Whisper 协议进行交互。Whisper 是一个消息传输协议,其目的是轻松广播消息以及进行低层异步通信。web3-bzz
: 使你可以与 Swarm 交互。Swarm 是一个去中心化存储平台和内容分发服务,它可以用来为去中心化应用存储图片或视频等文件。web3-net
: 使你可以与以太坊节点的网络属性进行交互。web3.*.net.getID
返回网络ID
web3.*.net.getPeerCount
返回连接到节点的对等点数
web3-utils
:提供实用程序函数,这些函数可在以太坊去中心化应用以及其他 web3.js 模块中使用。实用程序函数可以重复使用,使代码编写更轻松,在 JavaScript 和其他编程语言中很常见。Web3-utils 包含实用程序函数,这些函数用于转换数字、验证值是否满足特定条件以及搜索数据集。web3.utils.toWei
将以太转换为Wei
web3.utils.hexToNumberString
将十六进制值转换为字符串web3.utils.isAddress
校验特定字符串是否为有效的以太坊地址
Contract
代码语言:javascript复制import Web3 from 'web3'
/**
* usage
const contract = getContract(library, abi, address)
contract.methods
.exit()
.send({
from: account,
})
.on('transactionHash', (hash) => {
})
*/
// ethers.Contract(address, abi, library.provider.singer)
export const getContract = (library: any, abi: any, address: string) => {
const web3 = new Web3(library.provider)
return new web3.eth.Contract(abi, address)
}