去中心化web3.0系统开发方案定制详情

2022-11-09 11:20:59 浏览数 (1)

Web 3.0提出了一种去中心化的替代方案,建立在点对点的模式上。在去中心化网络中,这种直接点对点网络的原则被应用于网站和网络应用。在这种点对点的模式下,访问网站的人越多,服务新用户的能力就越大,减少了对少数中心化玩家的依赖。在这种情况下,任何一个中心化机构要想阻止或控制互联网上的信息流,难度将大大增加。

有了这一点,web 3.0就改变了当前中心化网络造成的权利的不平衡,并将信息发布的权力重新交到个人手中。而这正是互联网先驱们对互联网的最初构想。

组成 web3js 的另外 5 个模块分别是:

  1. web3-eth : 使 web3.js 的用户可以与以太坊区块链进行交互,比如:
    1. web3.eth.getBalance 的作用是获得指定区块的某个地址的以太坊余额
    2. web3.eth.signTransaction 的作用是对交易签名
    3. web3.eth.sendSignedTransaction 的作用是将签名的交易发送到以太坊区块链。
  2. web3-shh : 使你可以与 Whisper 协议进行交互。Whisper 是一个消息传输协议,其目的是轻松广播消息以及进行低层异步通信。
  3. web3-bzz : 使你可以与 Swarm 交互。Swarm 是一个去中心化存储平台和内容分发服务,它可以用来为去中心化应用存储图片或视频等文件。
  4. web3-net : 使你可以与以太坊节点的网络属性进行交互。
    1. web3.*.net.getID 返回网络 ID
    2. web3.*.net.getPeerCount 返回连接到节点的对等点数
  5. web3-utils :提供实用程序函数,这些函数可在以太坊去中心化应用以及其他 web3.js 模块中使用。实用程序函数可以重复使用,使代码编写更轻松,在 JavaScript 和其他编程语言中很常见。Web3-utils 包含实用程序函数,这些函数用于转换数字、验证值是否满足特定条件以及搜索数据集。
    1. web3.utils.toWei 将以太转换为 Wei
    2. web3.utils.hexToNumberString 将十六进制值转换为字符串
    3. 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)
}

0 人点赞