web3.0的简单入门与项目介绍

这篇具有很好参考价值的文章主要介绍了web3.0的简单入门与项目介绍。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

web3.0 是什么?

1.简介

Web3.0是通过区块链等技术实现更加智能化、去中心化、安全可靠的应用。

Web3.0的主要特点包括:

去中心化:Web3.0将数据和应用从中心化的服务器转移到分布式的节点上,实现去中心化的应用。

安全可靠:Web3.0采用了区块链等技术,实现了去中心化、不可篡改、安全可靠的应用。

Web3.0的应用场景包括智能合约、去中心化应用(DApp)、物联网、人工智能等领域。

2.需要涉及的学习内容

  1. 区块链技术:去中心化的项目一般基于区块链技术实现,需要了解区块链的概念、原理和常见的实现方式,例如以太坊、EOS 等。

以太坊区块链采用的是一种叫做“以太坊账户模型”的设计,每个账户都有一个唯一的地址,可以通过地址进行标识和访问。以太坊账户分为两种类型:外部账户和合约账户。合约账户则是智能合约的执行代码,可以接收和处理交易请求,进行复杂的业务逻辑处理。

外部账户是一种标准的以太坊账户,由 20 个字节的地址表示。外部账户的私钥保存在用户的钱包中,用户可以使用钱包软件对其进行管理,例如创建、导入、备份、转账等操作。

合约账户则是一种特殊的账户类型,包含了智能合约的执行代码。每个合约账户都有一个唯一的地址,由 20 个字节表示,但不能像外部账户一样通过私钥进行转账。相反,合约账户的代码必须定义一个或多个公开可调用的函数,用户可以通过发送交易请求来调用这些函数,合约代码会根据交易请求进行相应的处理,并将结果返回给发送方。

当用户发送交易请求时,需要指定目标地址,如果目标地址是一个外部账户,则表示进行转账操作,交易的金额会从发送方的账户中扣除,并转入目标地址的账户中;如果目标地址是一个合约账户,则表示调用合约函数,交易的数据会包含调用函数的参数和返回值,合约代码会根据参数进行处理,并返回结果给发送方。因此,合约账户的代码可以实现非常复杂的业务逻辑和交互操作,例如管理数字资产、执行投票决策等。

以太坊区块链的外部账户和合约账户是以不同的方式进行工作的,外部账户用于简单的转账操作,而合约账户则可以实现复杂的业务逻辑和交互操作。

外部账户(左),合约账户(右):

web3.0的简单入门与项目介绍,web3.0,区块链,react.js,前端

每个区块中包含了多个交易记录,通过哈希算法进行链接,形成一个不可篡改的链式结构,保证了交易记录的透明性和可追溯性。

在以太坊网络上,每个交易都会生成一个唯一的事务哈希(Transaction Hash,也简称 TX Hash)。TX Hash 是一个长字符串,通常由 64 个十六进制字符组成。它是以太坊网络中交易的唯一标识符,可以用于查询交易的状态、检查交易是否已经被打包进区块以及其他相关操作。

TX Hash 是由交易的发送者创建的,它由交易的各种细节信息计算得出,并在网络上广播。一旦 TX Hash 被广播出去,矿工节点会将其加入到内存池中等待打包进区块。

一旦交易被打包进区块,TX Hash 就成为了区块的一部分,并被永久记录在区块链上。此时,你可以使用 TX Hash 查询交易的状态、确认交易是否已经被处理以及其他相关信息。

TX Hash 是以太坊网络中交易的唯一标识符,它用于标识交易的状态、查询交易是否被处理以及其他相关操作。

web3.0的简单入门与项目介绍,web3.0,区块链,react.js,前端

  1. 智能合约:智能合约是区块链项目的核心,需要了解智能合约的概念、编写方式、安全性等。

我是使用 Remix-Ethereum这个开发工具来编写,他是基于 以太坊区块链编写Solidity

3.Solidity

Solidity由Ethereum团队开发,是web3中最常用的智能合约编程语言。 该语言是图灵完整的面向对象的。这些特点是该语言在很大程度上受到C++、Python和JavaScript的影响而产生的。

建立在EVM兼容的区块链上,开发者可以使用Solidity创建Ethereum原生的dApps,部署智能合约,用于投票、交易管理和多签名钱包等无数用途。

ACCOUNT是GAS USED的两倍

3.配合的开发工具

测试环境:Ganache

正式环境:Metamask

项目简介

本项目于2021年12月12日创立,前端框架使用 vue3+ts、 组件库使用 antd,使用Truffle 框架开发web3应用,区块链使用Solidity+web3.js

项目描述: 区块链技术,使用Web3.js+Solidity编写智能合约代替了传统的web 2.0中的接口,利用 Metamask插件进行登录去中心化账号。Web 3.0安心筹——基于区块链服务网络(BSN)的个人大病求助服务平台,推动慈善公益公开透明化。平台将患者信息上链,交易数据上链,捐助金审批上链等,通过智能合约最大程度上保障捐助资金安全和公开透明

web3.0的简单入门与项目介绍,web3.0,区块链,react.js,前端

主要工作:

前端运用Web3.js进行区块链中接口的调用替代了传统的前后端接口模式,去中心化使得开发更为便捷,所有交易记录公开透明。

web3.0的简单入门与项目介绍,web3.0,区块链,react.js,前端

项目配置(使用truffle这个web3框架)

配置顺序:

1. 首先需要配置好`node`、`npm`、`yarn`,安装`ganache`,`chrome`,`chrome`安装插件`MetaMask`
2. 安装 truffle,`yarn global add truffle`
3. 打开`ganache`软件
4. 在`ganache`软件上选择 quickstart,单击右上角齿轮图标进行设置
5. 在 workspace 标签页中 add project 选中 `./truffle-config.js`,server 标签卡将端口改为8545。
6. 单击右上角 save and restart。
7. 选中 ganache 软件中最上面 contracts 选项卡,将 crowdFunding 合约的地址复制,找到`./crowdfunding/src/api/contract.ts`文件的第7行,将 0x 开头的地址覆盖为刚刚复制的地址。
8. 切换到 finalWork 文件夹下
9. 输入:`truffle compile`
10. 输入:`truffle migrate`
11. 将`./build/contracts/CrowdFunding.json`复制到`./crowdfunding/src/api/`目录下
12. 切换到`./crowdfunding/`目录下
13. 输入:`yarn`
14. 安装完毕后输入:`yarn serve`
15. 浏览器中访问:`http://localhost:8080`
16. 在`metamask`中选择连接 localhost:8545 的本地网络,并且从 ganache 中导入几个账户进去,就可以开始测试了。
解释:
  • 1.truffle compile 是 Truffle 框架提供的命令行工具,用于编译 Solidity 智能合约。在开发以太坊 DApp 时,智能合约是 DApp 的核心,它定义了应用的业务逻辑和数据结构。在 Truffle 中,智能合约通常位于 contracts/ 目录下,使用 Solidity 语言编写。当对智能合约进行修改后,需要重新编译合约以生成 ABI(Application Binary Interface)和二进制代码,这样才能进行后续的部署、测试和交互。需要注意的是,truffle compile 命令默认使用 solc 编译器来编译合约。可以通过在 truffle-config.js 中设置 compilers 属性来更改编译器选项,例如选择使用不同版本的 solc 编译器、使用外部编译器等。
  • 2.在编写 Solidity 智能合约时,通常需要使用 Solidity 编译器将 Solidity 代码编译为字节码,然后将字节码部署到以太坊网络上。在 Solidity 编译过程中,会生成一个 JSON 文件,它包含了智能合约的元数据和 ABI(应用程序二进制接口)信息。
  • 3.truffle migrate 是 Truffle 框架提供的命令行工具,用于将 Solidity 智能合约部署到目标区块链网络上。在开发以太坊 DApp 时,智能合约是 DApp 的核心,它定义了应用的业务逻辑和数据结构。truffle migrate 命令会执行部署脚本,并将智能合约部署到目标网络上。在执行部署脚本之前,需要确保已经完成了编译工作,即已经生成了相应的 ABI 和二进制代码。部署脚本通常位于 migrations/ 目录下,使用 JavaScript 语言编写,它可以执行一些初始化操作,例如将合约地址保存到配置文件中,或者初始化合约的状态。
  • 4.这些部署文件是 JavaScript 脚本,用于执行智能合约的部署操作。在 Truffle 中,每个部署文件都对应着一个智能合约的部署过程,以数字开头的文件名来表示部署顺序,例如 1_initial_migration.js。在部署文件中,开发者需要指定要部署的智能合约名称、部署者账户地址、部署者账户的私钥、要使用的网络配置等。部署文件通常使用 Truffle 提供的 artifacts.require() 方法来加载已经编译好的智能合约,然后使用部署者账户调用 deploy() 方法来将合约部署到目标网络上。部署成功后,合约的地址会被保存到配置文件中,以便在后续的测试和交互中使用。
  • 5.artifacts.require() 方法可以接收一个参数,即智能合约的名称。在调用 artifacts.require() 方法时,它会从 build/contracts/ 目录中读取对应的 JSON 文件,并返回一个包含了智能合约 ABI 和二进制代码的 JavaScript 对象。开发者可以通过这个对象来执行智能合约的部署、测试和交互等操作。需要注意的是,artifacts.require() 方法返回的 JavaScript 对象中,包含了智能合约的 ABI 和二进制代码,但不包含合约的地址。在部署智能合约后,合约的地址会被保存到配置文件中,开发者需要手动读取该地址并将其与智能合约对象进行关联。
  • 6.build/contracts/ 目录下对应的 JSON 文件在编译时是不包含 networks 字段的,但在智能合约部署成功后,Truffle 会自动更新 networks 字段,将合约在不同网络上的部署情况记录下来

主要功能

产品首页救助列表展示

web3.0的简单入门与项目介绍,web3.0,区块链,react.js,前端

发起筹款

web3.0的简单入门与项目介绍,web3.0,区块链,react.js,前端

救助者捐助资金

web3.0的简单入门与项目介绍,web3.0,区块链,react.js,前端

在筹款成功后,被救助者发起请求使用资金

web3.0的简单入门与项目介绍,web3.0,区块链,react.js,前端

等待捐助者审核是否同意资金使用

web3.0的简单入门与项目介绍,web3.0,区块链,react.js,前端

半数捐助者审核同意通过后,资金转到患者账户

web3.0的简单入门与项目介绍,web3.0,区块链,react.js,前端

个人中心信息页面

web3.0的简单入门与项目介绍,web3.0,区块链,react.js,前端

结束

这是我的第一次web3.0分享,很开心能给各位做这次分享!github项目地址(已开源)文章来源地址https://www.toymoban.com/news/detail-690451.html

到了这里,关于web3.0的简单入门与项目介绍的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 使用 React、Web3.js 和 Metamask 构建 Web3 dApp 身份验证

    我相信您和我一样对 Web3 充满热情。本文介绍了一种新的区块链开发登录方法:使用 MetaMask 扩展的一键式加密安全登录流程,所有数据都存储在我们自己的后端。它还可以保护我们的数据和加密货币的安全。 在这里,我们将构建一个允许用户使用 MetaMask 登录的身份验证解决

    2024年02月04日
    浏览(63)
  • Web3和区块链入门——Web3历史和Web3是什么?

    大家好,我是无用,今天跟大家聊下Web3历史和Web3什么。 Web3历史 Web3.0一词最初由英国计算机科学家蒂姆·伯纳斯-李(著名的万维网之父)在1998年提出,但是他那个时候所说的Web3.0是自己所提出的语义网络,他认为语义网络是下一代互联网发展的主流方向。 不过我们现在所说

    2024年02月12日
    浏览(64)
  • 【区块链】走进web3的世界-对于前端来说,web2与web3的区别

    web3离不开几个概念,智能合约、区块链、前端交互     1、智能合约可以直接与区块链中的区块进行交互;     2、前端通过web3.js/ethers.js等npm库可以和智能合约进行交互; 说的直白点,web3与web2对于前端来说,只是对接的对象发生了变化,从后端API接口改为了智能合约。这

    2023年04月16日
    浏览(49)
  • 连接区块链节点的 JavaScript 库 web3.js

    通过前面的文章我们可以知道基于区块链开发一个DApp,而DApp结合了智能合约和用户界面(客户端),那客户端是如何与区块链进行连接交互的、如何调用智能合约的、如何发送一个交易到区块链、如何获取区块链上的数据,这就是本文要介绍的 web3.js。 如下图,区块链网络

    2024年02月15日
    浏览(57)
  • web3小白入门:区块链的了解

    记录web3学习的过程,从小白开始 所有的web3相关的学习内容都会更新在github,github地址 这篇文章主要说明区块链的一些概念 Web3 是以区块链技术为核心,构建新一代的去中心化互联网组件,再基于它们来构建我们想要提供的服务、应用。 虽然在实际开发中不太可能写区块链,但

    2024年02月05日
    浏览(46)
  • 使用 Web3.js 连接以太坊节点并查询区块链数据

    Web3.js 是一个用于连接以太坊网络的 JavaScript 库。在本文中,我们将介绍如何使用 Web3.js 来连接以太坊节点,并且查询以太坊区块链上的数据。 1. 安装 Web3.js 首先,我们需要安装 Web3.js。在命令行中,输入以下命令: 2. 连接以太坊节点 在使用 Web3.js 之前,我们需要先连接到以

    2023年04月26日
    浏览(52)
  • 给Web3应用新增区块链数据(Web3项目一实战之六)

    当您在浏览首页以卡片形式来展示区块链列表数据(Web3项目一实战之五)时,不禁发问,既然首页读取了 区块链 列表数据,那么,那些列表数据总得在哪个页面进行添加进去吧!绝不会凭空冒出这许多数据的。 没错,如您所想,也正是您所猜测的那般, DApp 与传统 App 一样

    2024年02月05日
    浏览(45)
  • 前端Vue项目调用页面web3.js:连接metaMask钱包,(查询钱包ETH余额,查询代币余额,ETH转账,代币转账,代币授权,查询授权数量,计算价格)等功能

    这里分享下相关文档 1.web3.js中文文档 https://learnblockchain.cn/docs/web3.js/getting-started.html 2.metamask官方文档:https://docs.metamask.io/ 第一种方法:连接钱包 源码: 第二种方法: 连接钱包 安装依赖直接可以使用 源码: 其他功能: 1、在 mounted 中自动检测浏览器是否安装MetaMask钱包 2、查询

    2024年02月11日
    浏览(51)
  • Web3 React项目Dapp获取智能合约对象

    上文Web3 整理React项目 导入Web3 并获取区块链信息中,我们在react搭建的dapp中简单拿到了我们区块链中的账号授权信息 那 我们继续 先终端运行 将ganache环境起起来 然后 我们运行 dapp 拿到授权列表 回到上文结束的一个状态 然后 我们发布一下自己的智能合约 在我们的项目终端

    2024年02月06日
    浏览(52)
  • 【区块链 | Solidity】Solidity开发教程:用Web3.js构建第一个Dapp

    Web3.js 使用的实用介绍 原文 作者:wissal haji 欢迎订阅《Solidity智能合约零基础开发教程专栏》系列文章。 如果你一直在跟着这个系列学习,那么你已经掌握了编写自己的智能合约。 因此,今天给大家介绍一下构建去中心化应用的全貌,并向大家介绍一下web3.js,这是构建da

    2024年01月24日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包