Ethers.js和web3.js 有何区别?哪个更好
番外:
在chrome控制台中输入上面的语句,就会打开小狐狸钱包(如果在空白页是不会生效的)
window代表当前窗口,里面有很多成员变量(资源)
装这个插件, 可以把一个页面当成一个网站
很多这样的插件啊,npx应该也是干这事得
视频中先不用vue或者react这些框架,而是写原生的js
按上面这样写,就会弹出小狐狸钱包的地址啥的~
https://www.bilibili.com/video/BV1vt4y1T7dX/
前端调用合约的过程
正片:
Ethers.js和web3.js是两个常用于与以太坊区块链交互的JavaScript库,它们各有特点和用途,以下是这两者的主要区别和对比:
1. 设计理念和简洁性
- Ethers.js:设计更为简洁和模块化,提供了更轻量级的API。它旨在提供简洁、一致的接口,易于理解和使用。
- Web3.js:相对而言更为复杂,API涵盖广泛。它是以太坊原生提供的库,功能全面,但可能在使用上不如Ethers.js那样直观。
2. 社区和支持
- Web3.js:作为较早推出的库,拥有更大的用户基础和社区,社区支持和资源相对丰富。
- Ethers.js:近年来快速增长,尽管社区相对较小,但支持力度在不断增强,许多新项目和开发者倾向于使用Ethers.js。
3. 性能和大小
- Ethers.js:库的大小较小,加载速度更快,适用于需要快速响应和性能考量的应用。
- Web3.js:库较大,加载时间可能较长,尤其是在移动设备或网络条件较差的环境下。
4. 功能和API
- Web3.js:提供了更多直接与以太坊节点通信的底层API,能够执行更多复杂的操作。
- Ethers.js:API设计更为现代和用户友好,但在某些高级功能上可能不如Web3.js全面。
5. 错误处理和文档
- Ethers.js:错误处理更加人性化,异常和错误信息通常更清晰。官方文档被认为是组织得很好,易于新手学习和理解。
- Web3.js:错误处理和异常可能不太清晰,文档虽然全面但有时可能显得过于复杂。
哪个更好?
选择Ethers.js还是Web3.js取决于具体的项目需求和个人偏好。如果你需要一个轻量级、易于学习且设计简洁的库,Ethers.js可能是更好的选择。相反,如果你需要更丰富的功能和底层控制,或者项目已经在使用Web3.js,那么继续使用Web3.js可能更合适。对于新项目,许多开发者倾向于选择Ethers.js,因为它的设计和开发体验更为现代化和友好。
slither和mythril有何区别?哪个更好
Slither 和 Mythril 是两款流行的以太坊智能合约安全分析工具,它们各自具有不同的特点和优势。了解这两者之间的差异可以帮助开发者根据自己的需要选择更适合的工具。
1. 分析方法
- Slither:Slither 是由 Trail of Bits 开发的一个静态分析工具。它通过构建智能合约的抽象语法树(AST)来检测代码中的安全问题和漏洞。Slither 能够快速识别合约中的常见问题,如重入攻击、错误的可见性设置、不当的委托调用等。
- Mythril:Mythril 是一种综合分析工具,结合了静态分析和符号执行技术来检测智能合约的安全问题。它模拟合约执行过程中可能的各种状态和条件,从而识别出潜在的漏洞,如整数溢出、未受保护的自杀函数、以及其他安全漏洞。
2. 性能和效率
- Slither:由于是基于静态分析,Slither 的执行速度通常较快,能够在较短时间内分析大量代码。
- Mythril:结合了静态分析和动态分析的符号执行,因此在执行深度和全面性方面更胜一筹,但这也可能导致分析速度较慢,特别是在处理较大或较复杂的合约时。
3. 使用易性和输出
- Slither:Slither 的输出通常比较直观,易于理解,提供的信息可以直接指导开发者修复代码中的问题。
- Mythril:Mythril 的输出可能更加详细,包括可能的攻击路径和漏洞证明。然而,这也可能使得其输出对于非专家用户来说较难解读。
4. 社区和支持
- Slither 和 Mythril 都有活跃的社区支持和持续的开发更新。Slither 由著名的安全公司 Trail of Bits 维护,而 Mythril 则由 ConsenSys Diligence 支持,这是两个在区块链安全领域内具有高度信誉的组织。
哪个更好?
选择 Slither 还是 Mythril 取决于你的具体需求:
- 如果你需要快速、直观的分析结果,并且关注于常见的安全问题和编码错误,Slither 可能是更好的选择。
- 如果你需要进行深入的安全审计,特别是在合约逻辑较为复杂时,需要全面理解所有可能的执行路径和状态,Mythril 可能更适合。
最终,很多专业的安全审计团队会选择结合使用多种工具来实现最佳的覆盖率和分析深度。这种组合方式可以充分利用每个工具的优势,提高发现和解决智能合约漏洞的能力。
好的,我将原原本本地整理以下内容,不遗漏也不总结:
web3.0、DApp开发最需掌握的十八个工具
本视频将为您介绍从事web3.0开发,产品设计和运营工作,最需要掌握或者了解的一些代码库、开发工具或者辅助网站。通过我们前面几期的视频,我们已经了解了DApp和传统Web App之间的区别,以及DApp的系统架构。**一个DApp最核心的部分就是智能合约,DApp通过智能合约实现了与区块链的交互。根据统计数据,目前运行在以太坊上的DApp,占据了所有DApp的90%的份额,再加上兼容EVM的公链,比如BSC等上面的DApp,这个比例会更大。**所以我介绍的内容多数是基于以太坊的DApp开发和产品设计的相关代码库、开发工具或者辅助网站。
第一、MetaMask。MetaMask是web3从业者必备的工具之一,MetaMask也称之为小狐狸钱包,它提供了管理数字资产所需的一切功能,它是浏览器连接区块链的通道。无论是开发人员、产品经理、运营人员都需要使用钱包产品。钱包产品虽然有很多种,但MetaMask无疑是使用量最大、最受信任的一个,它的源码都是开源的,接受一切审计。MetaMask是一个浏览器插件,在任何支持插件的浏览器都可以安装使用,比如Chrome、Firefox、微软Edge。凡是DApp的从业者,无论是开发人员、产品经理、运营人员,无论是前端链端还是后端,都应当安装和学会使用MetaMask的钱包,它是进入web3.0的通道和起点。它的官网在屏幕上,关于MetaMask的安装和使用,我已经专门准备了视频教程,欢迎学习使用。
第二、Ganache。Ganache是准备从事开发工作的人,或者初级开发者,学习web3开发的必备工具之一。作为开发人员,在开发和调试程序过程中,不可能在以太坊主链上做测试,因为在主链上操作需要花费真金白银,而且也不安全,搞不好会把钱包的资产搞没了。还有一个原因,区块确认可能会很慢,查询区块链信息和日志不方便。所以最好有一个本地的以太坊区块链环境,这样调试程序就会非常方便。Ganache就是为了解决这个问题产生的,它模拟了以太坊主链的所有功能,可以快速启动一个个人以太坊区块链。它是集成开发框架Truffle套件的一部分,它的官网在屏幕上。准备从事DApp开发工作的小伙伴,或者初级开发者都应当安装和学会使用Ganache。关于Ganache的安装和使用,我已经专门准备了视频教程,欢迎学习使用。
第三、Remix。智能合约是部署在区块链上的一段二进制代码,体积一般很小,有很多非常有名的智能合约,也就几百行代码,但就是这么少的代码却是DApp的核心所在,可能赚取了你想象不到的财富。 我们通常使用更容易让人理解的Solidity语言,来编写智能合约,然后将其编译为二进制代码。Remix就是用来编写和编译Solidity语言的智能合约的工具,并且还能把智能合约部署到以太坊上,进行测试和运行。Remix的优点是简单直观,可以在线使用,不需要在电脑上安装。所以Remix非常适合于初级开发者学习使用,高级开发者也经常用它来做一些验证、实验工作等。准备从事DApp开发工作的小伙伴,或者初级开发者,都应当会使用Remix。作为产品设计和运营人员,需要具备智能合约的有关知识,并能够简单使用Remix,因为这会非常有助于你理解web3领域,知晓整个的工作流程。Remix可以直接在线使用,无需安装,它的官网在屏幕上。关于Remix的安装和使用,我已经专门准备了视频教程,欢迎学习使用。以上三个MetaMask、Ganache和Remix,是进行DApp开发的入门级工具和最基本的组合,我们的教程系列也只使用了这三个开发工具。
第四、web3.js库。web3.js是以太坊官方提供的一个JavaScript库,由以太坊基金会开发维护,它封装了以太坊的JSON RPC API,提供了一系列与区块链交互的JavaScript对象和函数。Web前端和链端,通常会使用web3.js库来连接以太坊网络。举个例子来说,我们通过浏览器使用一个DApp,需要使用MetaMask钱包进行付款或者转账交易,如何自动调出已经安装的钱包,并完成这笔交易呢?那就是在前端的页面中嵌入web3.js库,通过web3.js库来操作钱包,调用智能合约与区块链进行交互。同样地,链端也往往有一些链上或者链下工作,需要通过web3.js库与区块链进行交互,比如扫链监听、链上事件、预言机等等。web3.js是前端和链端开发人员必须熟练掌握和使用的JS库。产品设计和运营人员只需了解就可以了,这有助于你理解开发工作,便于衔接,尤其是对于产品经理而言,不要设计出前端根本无法实现的DApp产品。web3.js其实非常简单,就像其他语言一样,10%的常用功能,就能实现90%的需求,你需要掌握的接口函数就是常见的很少的几个,其他接口,随用随学就可以。web3.js的官方文档在屏幕上,我的视频教程也会讲到相关内容,欢迎关注。
第5 Ethers.js库
Ethers.js库是非官方提供的一个JavaScript库,它与web3.js库的功能和使用方法基本相同。DApp前端和链端也经常会使用Ethers.js库代替web3.js库来连接以太坊网络。Ethers.js的优势在于紧凑小巧,同时又包含大量测试案例,他提供了实用的新手入门文档,因此新用户也可使用Ethers.js,使用起来简单直观。并且该库在近两年越来越受欢迎,下载量和在项目中的使用量也不断增加。DApp开发集成环境Hardhat默认集成了Ethers.js库。Ethers.js包含JavaScript和TypeScript中的实用程序函数,以及以太坊钱包的所有功能。Ethers.js也是前端和链端开发人员必须熟练掌握和使用的JS库,产品设计和运营人员只需了解就可以。Ethers.js的官方文档见屏幕,我的视频教程也会讲到相关内容,欢迎关注。
第6 DApp浏览器 State of the Dapps https://www.reddit.com/r/StateOfTheDApps/ 好像是凉了?
State of the Dapps可以查看目前市场上所有DApp的现状,如作者、活跃用户、交易数量等数据。这是产品经理开阔思路、借鉴产品设计,运营人员获取运营数据的重要来源。开发人员也可以通过这个网站了解当前DApp开发的现状和最新的产品以及技术方向。State of the Dapps还提供了DApp动态排名、最热门DApp、最新DApp以及各个公链的占比数据等等,非常实用,网址见屏幕。
第7 OpenZeppelin
OpenZeppelin是一个非常有名的web3基础设施服务的提供商,他提供了大名鼎鼎的开源OpenZeppelin智能合约库,这是开发安全,高效的智能合约的基础库。OpenZeppelin库最早只是为了解决智能合约安全的一个库,比如SafeMath可以防止整数溢出漏洞攻击。OpenZeppelin库已经变得很强大,功能丰富,基本实现所有的ERC开箱即用,不用开发人员再去造轮子了。比如ERC20可用于发行同质化的代币(俗称发山寨币),ERC721可用于发行非同质化的代币,也就是NFT。OpenZeppelin目前已发展成为知名的基础服务提供商和安全审计公司,生意非常红火,基本是安全行业的第一名,而且发展前景广阔。OpenZeppelin库是从事智能合约开发、智能合约审计师、链端开发人员等必须掌握的一个库,产品设计人员和运营人员了解即可。关于web3基础设施开发是一个非常有前途的赛道,也诞生了很多知名公司,属于闷声发财,专为挖金子的提供矿泉水小铲子,国内的漫雾,派顿,以及链安,都属于这一类公司。OpenZeppelin库是一个开源项目,开源地址见屏幕,我的视频教程也会讲到相关内容,欢迎关注。
第8 预言机Oracle
这里的oracle不是指数据库公司Oracle,而是一种第三方服务,**中文翻译为预言机。预言机是将现实世界和区块链打通的一种机制,它监听区块链事件,为区块链注入数据。最典型的是喂价服务,比如自动化交易所链上的智能合约进行交易撮合时,代币该如何定价,这个定价就必须得参考各大交易所的当前实时价格。这对区块链本身来说是办不到的,它与现实世界是平行的,没有融合。预言机就可以打通链上和链下,使两个世界融合,它就能为智能合约提供实时价格服务。**另外还提供随机数服务,这个问题非常有趣,你可以参考我的视频《智能合约安全之随机数攻击》。这一细分领域也属于web3基础设施服务,代表公司就是知名的ChainLink,专门提供预言机服务,占据90%的市场。这是一家很早就通过链上发行代币融资的初创公司,最终成为这一领域的领头羊。凡是web3领域从事DeFi有关的开发,都或多或少可能会使用他们的服务。 他们的接口链上注入数据其实就是一笔交易,需要花gas费,所以这并不是一个免费服务。ChainLink在GitHub上的地址见屏幕。这部分内容产品设计人员和运营人员了解即可,但对于链端人员是必须掌握和熟练使用的一项技能。当然也非常简单,关于预言机的原理使用和开发,在我的开发系列的视频中会专门做一期,欢迎关注。
因为本期视频的内容比较多,我会分成两个部分发布。我会将从事web3开发、产品设计运营必须掌握和使用的工具一一为您讲解,助力您更快地进入精彩纷呈的web3.0领域。最后请记得点赞,您的鼓励是我继续创作的动力,我将继续推出后续的web3.0开发教程。
以下是对原文进行合理整理后的内容:
本视频将为您介绍从事web3.0开发、产品设计和运营工作时,最需要掌握或了解的一些代码库、开发工具或辅助网站。上一期视频已经介绍了MetaMask、Ganache、Remix、Web3.js、Ethers.js以及ChainLink等内容,这一期继续这个话题。
第9 区块链浏览器
区块链浏览器提供了区块链数据的可视化界面,通过区块链浏览器,你可以非常直观地查看区块链上的每一个区块、每一笔交易以及账户地址等信息。每一条公链都会有自己的区块链浏览器,比如以太坊、BSC等都有自己的区块链浏览器。以太坊上的区块链浏览器最为著名的就是Etherscan,它的使用频率非常之高,网站地址见屏幕。从Etherscan上除了可以查看每一个区块、每一笔交易信息,还能查看到平均gas price、以太币实时价格、出块速度等信息。比如gas price这项数据就非常重要,如果你提交的交易设置的太小,得不到确认,也就是俗称的被卡住了。所以在交易中设置合理的gas price,既能够省钱,又可以尽快地被确认。Etherscan还有一个非常有用的功能,就是可以查看智能合约的源码。大多数知名的智能合约都是公开源码,接受大众审计的,因为只有源码公开,人们才会相信你的合约没有漏洞。而且Etherscan还会进行审计,帮我们确认链上部署的合约和公开的源码是一致的。所以Etherscan对于开发人员非常重要,对于产品和运营人员查找一些数据也非常有用。审计人员可以去审计这些合约,找找漏洞报告给所有者,也许你能领取到一笔丰厚的奖金。当然对于黑客、套利者、安全人员等更是一座宝藏,只要耐心研究这些数据,或许你从此会走上财务自由之路。这两点也是黑客项目和科学家们的财富源泉,地址见屏幕。
第10 Truffle
Truffle是DApp开发、测试和部署的集成化环境,通常配合VS Code使用,这是DApp开发前端链端或者全栈开发人员的必备工具之一,前面我们介绍的Ganache就是它的套件之一。这是DApp开发人员使用的工具,产品经理运营人员了解即可。另外对于没有DApp开发经验、没入门或者刚入门的伙伴们可以使用上集视频介绍的三件套即可,一切水到渠成,不要一开始就上难度。
第11 Hardhat
Hardhat也是DApp开发、测试和部署的集成化环境。它是一个基于JavaScript和Solidity的开发框架,可以快速提升应用程序的开发速度。Hardhat比Truffle集成度更高,目前看起来更受欢迎。这也是DApp开发人员使用的工具,产品经理运营人员了解即可。一般web3开发岗位的招聘要求中,都会有熟练使用Truffle或者Hardhat两个框架,你都可以试用一下,至于应该选择哪一个,你可以自己把握,全凭个人喜好。
第12 Infura
我们知道去中心化的应用App最核心的能力就是能够与区块链进行交互。第一个就是存储私钥,有了这个私钥,你才能处理你自己的加密资产。第二个就是封装了与以太坊节点交互的接口,也就是RPC API使用起来更方便、更易理解。Infura就是一个能够提供以太坊节点RPC API服务的厂商,而且是最大的最有影响力的。事实上,使得接入以太坊网络更容易使用。Infura不仅提供了免费的以太坊节点RPC API服务,还提供了IPFS API服务,以及整合了多个交易所的加密币行情API服务,网站见屏幕。Infura背后是自建了很多的节点,组成了一个以太坊节点集群。Infura自建的节点占以太坊网络全部节点的5%到10%,它要是咳嗽一声,以太坊网络全身都不舒坦。你可以免费或者付费使用Infura的节点,而不用自己搭建以太坊节点了,因为搭建以太坊节点的成本还是很高的,还得进行日常维护。Infura可以免费使用,如果你需要的话,可以去注册一下,生成属于自己的API。当然对于大多数人来说,可能并不需要。Infura也有付费服务,收费标准在每月50美元至1000美元不等。这也属于闷声发财型的区块链基础服务提供商。不过对于需求较小的开发者或者项目而言,Infura还是十分友好的,开发者可以免费在Infura中创建三个项目,每日使用Infura的API服务提交10万次请求。所以现在的Infura和Alchemy就是一家人。以上内容大家了解即可,实际的DApp设计开发或者运营,大多数场景下可能用不到。
第13 社交和媒体工具
从事web3设计运营或者开发工作,免不了与世界各地的同行们进行交流。当然在国内使用微信、QQ,甚至哔哩哔哩、微博也都行,但是与国外同行交流可能就需要另外一些工具。DC前面三个字不必说,分别对标我国的微博、微信、抖音,唯独DC好像没有对标者。DC也就是Discord,这个可能对于大多数人比较陌生,主要针对游戏玩家、教育人士、朋友及商业人士。Discord用户可以在软件或者网站上的聊天频道,通过文本、图片、音频和视频进行交流。Discord最早是为游戏玩家们之间交流设计开发的,但现在已经广泛应用于各行各业,它的社群非常强大,可以有几十人到几万人不等。web3从业者会经常使用Discord社群进行交流沟通,他们往往在自己的联系方式上都有一个DC号。一些开源社区或者道也通常以此作为日常联系的工具,它也成为web3运营人员必备工具之一,因为你可以在这里轻而易举地找到你的目标群体,往往还是一窝一窝的web3产品和开发人员,也可以再次找到志同道合的人。初次使用Discord可能比较迷惑,感觉比较杂乱,通常对一个项目而言,你可以先关注announcement、general、dev等几个频道,然后再慢慢探索。
第14 AMM(Automatic Market Maker)
AMM是automatic market making的缩写,中文就是自动做市商,再通俗一点就是去中心化的交易所DEX。AMM能根据简单的定价算法自动计算出买卖价格,我们可以把它想象为一个进行买卖交易的机器人,它解决了传统交易所过渡到去中心化交易所DEX中出现的成本和效率问题。
现在web3这个领域最靠谱的几个方向,有基建、DeFi、GameFi,还有正被炒作的NFT。基建范围太广了,安全、预言机、数据分析等等,合理合法的赚钱,而且很踏实。以后我会专门开个话题再谈这些。我们只说DeFi,区块链技术在这个方向上,应该来说真正找到了用武之地,可以广泛应用于金融行业,而不是很多人理解的只是狭隘的炒币。
我查了一下区块链领域的富豪榜,数据来自于2021年的胡润全球富豪榜,区块链行业共有17位10亿美金富豪上榜,主要来自交易所投资者和矿工,总财富为770亿美元。排名第一的是Coinbase的布莱恩·阿姆斯特朗,做的是交易所。排名第二的是FTX的山姆·班克曼-弗里德,做的是交易所。排名第三的是币安的赵长鹏,做的是交易所。全都是做交易所的,你就知道这个方向有多赚钱了。
在2021年横空出世的Uniswap平台,凭借几百行的一个智能合约,直接抢了他们的饭碗,也就是上面所说的自动做市商。其实Uniswap平台创建于2018年,只是爆发点在2021年。他们只有十几个人,却干翻了几百人甚至几千人的中心化交易所,自然雪花白银滚滚而来,这就是智能合约的魅力。Uniswap合约最核心的内容就是它的定价策略,而Uniswap的定价策略的算法,那就是简单到无以复加、令人发指的地步,它遵循一个简单的数学公式:x*y=k。Uniswap的成功,引来了许多的模仿者,他们也照样吃香的、喝辣的,比如薄壳, PancakeSwap等。
Uniswap合约对于链端开发者,或者说智能合约开发者从事DeFi的是必读合约之一,也是DeFi方向招聘的要求之一。 Uniswap合约属于设计和编写智能合约中难度较高的一个,除了需要精通Solidity语言,还需要一些区块链金融和数学方面的基本知识。当然Uniswap合约也没那么难,因为关于Uniswap合约的原理、源码分析以及如何部署配置,我将陆续推出相关视频,助力您走入DeFi领域,请锁定关注。
这一部分的内容主要是针对智能合约开发者、有志于从事这个方向的设计人员,产品经理和运营就需要了解其原理、工作方式,甚至于简单搭建,这对于你开展工作还是很有必要的。
关于从事web3.0开发、产品设计和运营工作的18个工具,还有后续视频。如果您不介意的话,可以点一下赞,您的鼓励是我创作的动力,我将持续输出web3领域更多有价值的内容。
原文链接: https://dashen.tech/2024/11/23/Web3常用开源库介绍/
版权声明: 转载请注明出处.