译文出自:登链翻译计划
译者:aisiji
校对:Tiny熊
一份帮你入门的资源清单
特别感谢RNG主持了产生本文的谈话。RNG是一个由游戏玩家、游戏开发者、区块链开发者、电竞爱好者、元老级爱好者、NFT爱好者以及几乎所有喜欢和这些人混在一起的古怪集体。
最近,有人在论坛上说,希望我为学习区块链的开发者推荐资源,于是我整理了这篇文章。
这不是一篇聊关于区块链优势和劣势的文章,只是一篇学习指南而已,给想要学习区块链的人一点帮助,也可以了解到开发区块链应用的步骤。不是所有东西都应该在区块链上。
外面有很多不同的资源,就像任何技术栈的选择一样,事情可能会变得很有意见。特别是对于这个领域的新人来说,仍然需要引导到正确的工具。我将尝试在我的意见和一般清单之间找到一个中间地带。
其实我们可以找到很多资源,然而就像任何技术栈的选择一样,可能会遇到一些比较片面或者有偏见的意见,特别对于这个领域的新人来说,更需要正确的引导。我会努力尝试选一个比较中立的清单推荐。
你想在哪条链上构建?
这其实并不重要--接下来我要聊的是以太坊上的工具和资源。其中有些与其他一些链兼容,有些不兼容。我个人认为,如果你是第一次学习区块链应用,学习如何为以太坊编写和部署可能是最好的开始,即使你的目标是在不同的链上构建。因此,这里的列表是以以太坊为重点的。
A警告
以太坊是变化非常快的,你知道三年前React的代码和现在有多不同吗?相比React,以太坊的变化要大的多。Solidity的发展速度很快,而且有时候还会出现突破性的变化。随着EIP不断的探索更优的定价机制,gas优化也在不断的变化。伴随不断的发现和推广新的模式,也就不断的出现新的bug,从而不断的解bug。今天你看到是这样的,到明天也许就不是这样了。即便如此,如果你学会了solidity0.5,你仍然具备理解0.7的能力,不仅如此,会让0.7变得更容易,而不是更难。
编写智能合约
giphy.gif
要创建一个dapp,你首先需要具备写智能合约的能力,并且还要可以让其他东西与之通信。我先假设那些与合约通信的东西,无论是前端、API、或者其他任何什么,都是用JavaScript编写的。JS有大量的库可用,我觉得大多数主流语言都有与Ethereum通信的库,但是我个人对JS的系统了解的最多。
值得一提的是你可以不用写合约直接创建一个dapp。在公链上,你可以在别人的合约上创建app。你想为Uniswap创建一个前端吗?Uniswap是不会阻止你的。因为商标的原因,你不能以Uniswap团队的身份创建前端,但你可以说:“嘿,这是我的Uniswap前端,它可以做Uniswap前端能做的一切,更酷的是,每个月付我5美元你就可以使用它。”这样是完全没有问题的。通常,我们假定你至少具备在Ethereum上开发智能合约的一般知识。如果你看不懂合约,那么你很难写出一个与Uniswap合约的接口。
Solidity是一种智能合约语言,你可以从它开始学习。Vyper是一种超级酷的语言,我还有一个用Vyper写的PR,但是它不是你的起点。Solidity有更大的社区,这意味着更多的资源,并且当你卡住的时候可以有更多的人可以求助。
A股收盘:深证区块链50指数上涨0.27%:金色财经消息,A股收盘,上证指数报3597.43点,收盘上涨0.84%,深证成指报14421.2点,收盘上涨1.39%,深证区块链50指数报3750.19点,收盘上涨0.27%。区块链板块收盘上涨1.36%,数字货币板块收盘上涨1.74%。[2022/1/12 8:44:05]
Cryptozombies可能仍是嵌入Solidity最好的工具,虽然我觉得它并没有好好维护。这是一个制作类似Cryptokitties游戏的教程。(有一个游戏制作教程,是Vyper的一个阶段工作,点击这里查看)
我发现,Solidity文档是非常易读的,虽然我通常对阅读文档有心理障碍。特别是“SoliditybyExample”部分,对于理解Solidity的不同元素非常有帮助。
VisualStudioCode有很好的Solidity工具,据我所知,Atom也有一些不错的工具。我觉得Vim迫切需要一个新的维护者,我对Emacs不了解,但我肯定它也有一些支持者。
最后:有很多通用的合约,可以直接拿来用,而不需要自己写。你听说过制作属于自己的ERC20代币或者NFT吗?你可以直接用一个经过审计的、可靠的、开源的模板,在模板的基础上创建,而不是从头开始写。黄金标准OpenZeppelin,这里是他们的合约库,他们也有自己的npm包。
智能合约沙盒。
?
Solidity之后,我们要讨论的是合约沙盒。假设你已经写了一个合约,你现在想要测试一下,看看他是否正常工作。你该怎么做呢?没错,你不会想要把所有的”Helloworld.“或者草案合约都部署到主网上。虽然有测试网,但一般工作流也不会直接上测试网。取而代之的是开发链,这是你可以根据需要在自己机器上运行的虚拟链。它可以帮你看到你的合约是否在编译,并且可以测试合约的函数、变量以确保都按照预期正常工作。不过开发链有一些限制——一个简单的例子,假如你正在开发与DAI交互的程序,这意味着除了部署自己的合约外,每次运行时都会在开发链上部署一个克隆Maker(DAI).这是伟大的第一步。
主要工具:
Remix,如果你只处理合约而没有其他(没有前端)。Remix也可以连接测试网和主网,是一个非常强大的工具。它会有一个学习曲线,刚开始可能看起来像在胡言乱语,但是一旦你掌握了编译和部署,你就可以用它做很多事。
Ganache,和Hardhat--我们将在一分钟内详细讨论这两个框架。它们是更大的框架的一部分,可以单独用于合约,但当你有一个完整的应用程序时又会大放光彩。
总结一下,传统的合约部署包含以下步骤。首先,合约需要被编译,从Solidity(或其他语言)转化为JSON串。你会注意到一种特别的JSON——ABI,这是合约内容概要的JSON,这种JSON多被应用于开发中。然后到实际的部署了,需要通过一个交易把合约字节码发送到链上。为了可以与合约交互,你还需要知道它在链上的地址,并且你还需要它的ABI。Etherscan是一个从链上读取合约信息的非常有用的工具。假如你知道合约地址,但是不知道它的ABI,通常都可以在Etherscan找到。
框架
?
这给我们带来了围绕合约制作一个用户界面的问题。一旦你部署了,你的合约将如何被交互?在某些情况下,仅仅在链上有一个合约就足够了,任何参与互动的人都可以使用类似Remix的东西来与之互动,但通常不会。我首先假设你的项目中有某种图形用户界面。如果是这种情况,你会想要一个框架。区块链框架将把你的合约整合到前端项目中,把你的合约编译成可以被前端理解的JSON,提供旋转开发链的能力,以及部署合约。
北京将建立运用区块链等技术的数据金融科技平台:9月7日,《北京国际大数据交易所设立工作实施方案》正式发布,确定了北京国际大数据交易所的五大功能定位,其中包括新技术驱动的数据金融科技平台。北京市金融监管局副局长郝钢介绍,建立新技术驱动的数据金融科技平台,充分运用区块链等多方安全计算等技术,发挥交易所线上交易、智能评估、智能撮合和风险提示的功能。(21世纪经济报道)[2020/9/8]
最流行的框架是。许多教授dApp开发的在线资源也教授Truffle。Truffle可以编译,以Ganache的形式公开开发链工具,以及更多。
既然如此,我推荐。与Truffle类似,你可以编译合约,并获得对开发链的访问。不过,还有更多。Solidity没有开箱即用的console.log,但Hardhat基本上做了他们自己的黑客EVM,可以让你登录你的合约。根据我的个人经验,Hardhat的编译问题也比较少。(看着你,node-gyp。)也有更多的便利设施。在你去尝试建立你自己的Hardhat环境之前,让我们来谈谈web3库,然后我有一个建议,这应该会使你更容易。
web3库是在非区块链代码和区块链之间搭建桥梁的半官方术语。用于实例化合约对象的JavaScript代码在哪里,然后在该合约上调用一个函数?实际上,你到底用什么函数来连接到链上?很明显,JS没有内置这个功能。这就是web3库的作用。它们暴露了所有你需要做的事情的函数。JavaScript中最突出的两个库是Web3.js17和Ethers.js。我个人认为后者更容易操作,并建议你也这样做。一个建议是,目前的Ethers的文档仍在编写中。如果你在查找或理解v5的文档时遇到困难,也可以搜索。搜索的功能更强大,而且有更多的代码片段)。)
我不知道有什么资源能真正放大到web3库的熟练程度,但我在最后给出的建议也涵盖了web3。
你需要合约、框架环境和web3库,这已经是很多了。如果有什么能把这些整合到一个环境中来管理它们,那不是很好吗?
一个管理它们的环境
自然是有的。Scaffold-Eth有一个开箱即用的环境,在React应用的背景下设置了Hardhat和一大堆其他东西。Web3.js和Ethers都是通过同一个yarn安装来安装其他的依赖项。这是迄今为止最简单的入门方式,因为它几乎没有任何配置。Scaffold里有很多东西,包括自定义钩子和组件。甚至还有一个自定义合约组件,为你提供了与合约交互的近乎无障碍的方式,这与Remix非常相似。编译完合约后,只需在App.jsx中放入一个<合约名称="YourContract/>组件,其中名称是合约的名称。AustinGriffith在Scaffold的旧版本上有一个三分钟的超级超级模式的演练here,还有一个更长的演练here。
围绕它还有一个超级友好的Telegram频道,在GitHub的README中列出。我强烈推荐它。这就像在Webpack和Babel中挣扎的人与Create-React-App的区别。
我想谈的最后一件事是区块链栈中的另一个细节。区块链是一个由节点组成的网络,每个节点都存储着区块链的历史。你的React应用是如何接入网络的?虽然web3库确实暴露了一个web3提供者,但它如何知道节点的位置,以及如何查询它们?答案是,它不知道。你需要运行你自己的节点,或者连接到一个运行它们的服务。这就是最终完成的桥梁--你的JavaScript使用web3库来发送一个链上理解的命令,该命令通过web3提供者发送到网络,然后,viola,你在与区块链对话。
观点:区块链技术将加速气象环境社会化观测:近日,中国气象局印发《便捷式自动气象观测仪分级技术规范(试行)》,鼓励观测技术创新发展。有业内人士表示,气象环境数据一旦上区块链,时间和内容均公开透明且难以篡改,上链的内容也将逐步具有法律效力,可溯源追责,这就为不同机构进行数据交换和共享提供了信任基础,用技术解决了信任问题。区块链技术还会鼓励更多的社会团体、企业和用户加入社会化观测系统,通过对气象数据上链、创建仲裁节点剔除不良数据、气象数据的分布式存储,贡献气象环境数据来获取相应的数字经济权益。(环球网)[2020/6/9]
区块链节点
虽然我推荐运行自己的节点,甚至还写了一篇长文关于安装Geth,我不得不承认使用服务是更普遍的做法。我会折中一下,给你一些关于两者的信息。出于各种原因,我推荐Nethermind来运行你自己的节点。为了能够做到这一点,你需要一个固态硬盘,它应该有至少500GB的空间。你可以用4GB内存进行同步,但可能至少要有8GB。这些都是为主网计算的,测试网需要的空间要小得多,而且可能用更少的内存就能搞定。如果你还在做高强度的图形工作,你可能已经有了更多的内存,你可以很容易地调整Nethermind使用多少内存。Nethermind是用.NET写的,但我在*nix系统上没有遇到任何问题。在服务方面,Infura是最著名和最广泛使用的,尽管新来的Alchemy也值得好好看看。
我把这个推到这里,之前没有提到的原因之一是,它有点不伦不类。就你的实际开发而言,无论你是否运行你自己的节点或使用服务,当你实例化一个web3对象并需要知道将其连接到什么时,对你的代码库的实际影响大约是半行。
钱包
同样,你可能要在你的浏览器上安装MetaMask来测试钱包的交互。你也可以使用其他钱包,但在我看来,MetaMask仍然是国王。
接下来的事情
一旦你掌握了这些基本知识,你会很快遇到一篮子新的问题和关注。我不可能在这里涵盖所有的问题,我自己并不了解所有的问题,也没有足够的知识来明智地解决其他问题,但我会试着谈一谈接下来你可能要关注的一些事情。
分散的文件存储
对区块链的写入是昂贵的。你要为你在链上写入或更改的每一点信息付出代价。不仅如此,每一个与链同步的节点都必须在同步时执行你放在链上的东西。这使得代码有了一些有趣的优化,但它也让你思考什么应该放在链上。链的作用很差,就是数据存储。
比方说,你有一个有用户档案的平台。你不希望在链上存储他们的简历和头像。那它应该放在哪里?一些集中的服务器?(Cueoverlydramaticmusic:)如果恶意的一方可以任意改变用户的头像,那么整个平台去中心化的意义何在!?别担心,仍然有去中心化的方式来存储数据。去中心化的文件存储也依赖于去中心化的点对点网络,就像区块链。(现在的一些人还与他们自己的区块链沟通,但这既不是这里也不是那里)。不过,他们专门拿数据来存储。现在它们中最引人注目的是Filecoin,尽管我个人也会提到Swarm和Sia。Swarm尤其如此。不同的供应商可能有不同的优势,这取决于你需要存储什么样的数据,你需要什么样的功能,等等。
Layer2解决方案
以太坊本身已经到了交易成本过高,或开采时间过长的地步了。此外,在主网上,隐私可能是一个困难的冒险。Layer2的解决方案已经被开发出来,以缓解拥堵问题,有些还提供了更强大的隐私保证。我们正处于一个百家争鸣的L2s阶段。有大量的看起来强大的、可用于市场的解决方案。Reddit希望有一个L2来投放一些平台内的货币,并收到了20多份材料。我无法比较和对比现有的平台--我缺乏信息和知识。如果你想让我挑出一个来先看看,我会推荐StarWare的Cairo或用它构建的东西。
动态 | 荷兰组织FairChain与联合国合作进行区块链实验 以帮助厄瓜多尔农民:荷兰组织FairChain基金会与联合国开发计划署合作进行了一项区块链实验。在由厄瓜多尔可可制成的黑巧克力或牛奶巧克力棒包装中,消费者可以扫描二维码将区块链代币捐赠给厄瓜多尔的农民,也可将代币作为下次消费的折扣,以此推动厄瓜多尔可可销售和帮助厄瓜多尔农民改善经济状况。(Fast Company)[2019/10/7]
预言机
有时你想根据链外发生的事情在链上做一些事情。比方说,如果以太币的美元价值超过一定数额,你就想卖掉它。美元不在链上,那么区块链怎么会知道呢?你可以写一个机器人来调查价格,并在满足条件的情况下执行交易,但假设你需要在智能合约中拥有这些信息--合约应该如何知道?这就是预言机所要解决的问题。
不幸的是,那些看起来很简单的解决方案不一定是充分的。Samczsun,一个相当传奇的以太坊白帽子,最近放出一篇文章关于预言机攻击。其结果是要小心你在那里做的事情。
也有预言机服务。Chainlink几乎可以肯定是其中最有名的,但要确保它能满足你的需要。Samczsun在他的文章中对这个问题的论述比我可能的要好,所以我就把你引到那里。
终于有了一个类似结论的东西
我们在这里还可以谈一谈:链上治理,可升级性,安全性,以及更多。正如你所知道的,我主要是通过主观的方式来挑选主题。这篇文章绝不是详尽无遗的,尽管我认为它可以给一个置身事外的开发者提供良好的方向。随着你越来越熟练,你将能够轻松地找到自己的方向。以太坊社区的一个重要方面是它的许多人都很友好。好好利用,但也要把它发扬光大。总有一天,会有另一个开发人员试图摸索这些奇怪的区块链东西,也许你会是那个在Twitter上收到他们的DM或在EthereumStackExchange上看到他们的问题的人。有了强大的以太坊,就有了保持以太坊强大的责任,或类似的东西。
资源清单
我将在这里放上一堆资源,包括上面提到的那些,以及一些教程。
首先,我应该链接到更全面的资源。我的目标是列出足够多的资源,以满足初学者的需要,但又不至于多到让人不知所措。这里有许多我将探讨的资源。ConsenSys保留了一个资源清单这里,它被链接到/r/ethdev的这个主题中,这意味着那里的评论甚至有更多。我也要向ethereum.org喊话,因为他们有一个非常棒的开发门户,他们正在不断努力改进。
核心资源
Soliditydocs
Vyperdocs
Remix
Contraktor
Eth95
OpenZeppelin(GitHub,npm)
Truffle
Hardhat
Web3.js
Ethers
Scaffold-Eth
Nethermind
Infura
Alchemy
教程
EattheBlocks
Dapp大学
过去有很好的Udemy课程,不知道现在是否有什么。
动态 | Saleforce加入全球区块链货运联盟:Saleforce在一份声明中表示已经加入了全球区块链货运联盟,这是一个货运和物流公司组织,正在探索如何在其行业中使用数字分类账技术。[2018/8/18]
Ethernaut-我推荐使用NicoleZhu的excellentwalkthroughs
Cryptozombies
vyper.fun
资源
ethereum.org
StackExchange
/r/ethereum
/r/ethdev
Twitter-它确实是一个了不起的地方,可以看到正在发生的事情,与社区成员联系,并建立对性的抵抗,你可以使用hive.one获得一个良好的开端。
WeekInEthereum
众多的播客,我甚至不打算去尝试
EthGlobal在2020年的虚拟黑客大会上做得非常好,这是一个与其他以太坊开发者会面和互动的好方法,尤其是当你在自学时。
这次真的要结束了
5fbd1ab05d0fa2a2570a3d1b_conclusion
唷!这是个很长的清单。我希望这是一个很好的概述,足以让你开始并走上你的道路。你很快就会找到你自己的道路。
本翻译由CellETF赞助支持。
来源:https://www.linumlabs.com/articles/a-guide-for-developers-interested-in-learning-blockchain-development
参考资料
登链翻译计划:https://github.com/lbc-team/Pioneer
aisiji:https://learnblockchain.cn/people/3291
Tiny熊:https://learnblockchain.cn/people/15
RNG:http://discord.gg/rnglife
Cryptozombies:https://cryptozombies.io
这里:https://vyper.fun
Solidity文档:https://learnblockchain.cn/docs/solidity/
OpenZeppelin:https://openzeppelin.com/
这里:https://github.com/OpenZeppelin/openzeppelin-contracts
npm包:https://www.npmjs.com/package/@openzeppelin/contracts
Remix:https://remix.ethereum.org
Ganache:https://www.trufflesuite.com/ganache
Truffle:https://learnblockchain.cn/docs/truffle/
Hardhat:https://hardhat.org/
NomicLabs:https://nomiclabs.io/
Etherscan:https://learnblockchain.cn/docs/etherscan/
Web3.js:https://learnblockchain.cn/docs/web3.js/
Ethers.js:https://learnblockchain.cn/docs/ethers.js/
Scaffold-Eth:https://github.com/austintgriffith/scaffold-eth
here:https://youtu.be/ShJZf5lsXiM
here:https://youtu.be/_yRX8Qi75OE
一篇长文:https://betterprogramming.pub/run-an-ethereum-node-on-linux-late-2019-b37a1d35800e
Nethermind:https://www.nethermind.io/
Infura:https://infura.io
Alchemy:https://alchemyapi.io
MetaMask:https://metamask.io
Swarm:https://swarm.ethereum.org/
收到了20多份材料:https://www.reddit.com/r/ethereum/comments/hbjx25/the_great_reddit_scaling_bakeoff/
StarWare:https://www.reddit.com/r/ethereum/comments/hbjx25/the_great_reddit_scaling_bakeoff/
放出一篇文章:https://samczsun.com/so-you-want-to-use-a-price-oracle/
Chainlink:https://starkware.co
这里:https://github.com/ConsenSys/ethereum-developer-tools-list/blob/master/README.md
这个:https://www.reddit.com/r/ethdev/comments/9jw839/long_list_of_ethereum_developer_tools_frameworks/
ethereum.org:https://ethereum.org
Soliditydocs:https://learnblockchain.cn/docs/solidity/
Vyperdocs:https://vyper.readthedocs.io/en/stable/
Remix:https://vyper.readthedocs.io/en/stable/
Contraktor:https://ethcontract.watch/
Eth95:https://eth95.dev/
OpenZeppelin:https://openzeppelin.com/
GitHub:https://github.com/OpenZeppelin/openzeppelin-contracts
npm:https://www.npmjs.com/package/@openzeppelin/contracts
Truffle:https://learnblockchain.cn/docs/truffle/
Hardhat:https://learnblockchain.cn/docs/hardhat/getting-started/
Web3.js:https://learnblockchain.cn/docs/web3.js/
Ethers:https://docs.ethers.io/v5/
Scaffold-Eth:https://github.com/austintgriffith/scaffold-eth
Nethermind:https://nethermind.io/client
Infura:https://infura.io/
Alchemy:https://infura.io/
EattheBlocks:https://www.youtube.com/channel/UCZM8XQjNOyG2ElPpEUtNasA
Dapp大学:https://www.youtube.com/channel/UCY0xL8V6NzzFcwzHCgB8orQ
Ethernaut:https://ethernaut.openzeppelin.com
excellentwalkthroughs:https://hackernoon.com/ethernaut-lvl-1-walkthrough-how-to-abuse-the-fallback-function-118057b68b56
Cryptozombies:https://cryptozombies.io
vyper.fun:https://cryptozombies.io
ethereum.org:https://vyper.fun
StackExchange:https://ethereum.stackexchange.com/
/r/ethereum:https://www.reddit.com/r/ethereum/
/r/ethdev:https://www.reddit.com/r/ethdev/
hive.one:https://hive.one/ethereum/people
WeekInEthereum:https://weekinethereumnews.com/
EthGlobal:https://ethglobal.co/
CellETF:https://celletf.io/?utm_souce=learnblockchain
免责声明:作为区块链信息平台,本站所发布文章仅代表作者个人观点,与链闻ChainNews立场无关。文章内的信息、意见等均仅供参考,并非作为或被视为实际投资建议。
本文来源于非小号媒体平台:
登链社区
现已在非小号资讯平台发布105篇作品,
非小号开放平台欢迎币圈作者入驻
入驻指南:
/apply_guide/
本文网址:
/news/10353609.html
免责声明:
1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险
2.本文版权归属原作所有,仅代表作者本人观点,不代表非小号的观点或立场
上一篇:
每周编辑精选WeeklyEditors'Picks
标签:ETHHTTTPSTHEeth价格今日行情HTT币https://etherscan.iotogetherbnb完整攻略图文
Gate.io第七期云算力产品将于今日上线,静态年化收益高达104%。无需购买矿机,您就可以通过挖矿获得数字货币.
1900/1/1 0:00:00任何新事物的诞生和发展都会经历一个被质疑的过程,比特币如此,DEFI如此,如今的NFT也是如此.
1900/1/1 0:00:00亲爱的大币网(Dcoin)用户:大币网(Dcoin)已恢复TRC20的充值,暂停期间给您带来的不便,敬请谅解,感谢您对大币网(Dcoin)的支持!风险提示:数字货币属创新型投资品,价格波动较大.
1900/1/1 0:00:00亲爱的用户:XEC节点升级完毕,HomiEx现已恢复XEC的充值和提现。暂停期间给您带来的不便,敬请谅解!风险提示:虚拟货币投资是一种高风险的投资方式,它是7×24小时的交易方式,所以不会有收盘.
1900/1/1 0:00:00近年来,云计算已成为数据中心部署增长的主要来源。少数几个基于超大规模云的数字平台,在其能力和影响力上都获得了持续的增长.
1900/1/1 0:00:00来源:Coinlist博客编译:链捕手CoinMarketCap数据显示,目前加密市场中共有6000多种代币。这大约是世界上所有不同法定货币的35倍.
1900/1/1 0:00:00