让我们明白一点:我相信EOS是开发者的天堂。我想帮助其他开发人员和工匠了解EOS以及为什么它是开发和部署去中心化应用程序的良好环境。
演讲大师兼企业家,低语者保罗格雷厄姆曾经说过:“伟大的黑客倾向于聚集在一起”和“像所有工匠一样,黑客喜欢好工具。事实上,这是轻描淡写的。优秀的黑客发现使用糟糕的工具是无法忍受的“,我对这两个陈述完全赞同。
EOS是一个分布式,信任最小化的计算机,如Ethereum,但它为开发人员提供了出色的性能和定制经验。如果开发人员流程朝着具有更好“开发者用户体验”的工具的方向发展,那么我预测EOS将继续积累来自其他平台的智能合约开发人员。
[图片上传失败...(image-6b5c5-1558497915990)]
我写这篇指南的动机A.K.A。 一切都打破了,没有人可以帮助我:
在构建我们的以太网入口智能合约时,我忽略了同时编写上岗指南。在调试运行时问题时,这使我的生活变得一团糟,因为我是唯一一个能够快速修复的人。没有快速的方法来教育另一个关于以太坊智能合约如何运作以及如何使用所有相关工具的开发者。看看Solidity合约很容易,但祝你好运环境{Truffle,MetaMask,IPFS,Ganache,...}。
问题:我们不总是会说同一种语言!
开发智能合约大致类似于构建“集中式”软件应用程序,但有一些新的强大功能需要理解。首先,什么是区块链,为什么我不能随时将更新推送到我的代码?为什么我需要一个帐户来与合约互动?什么是MetaMask?
就个人而言,我发现以下主题对于传统开发人员来说是新的:
- 智能合约:不可变并存储在分布式账本中的软件。合约执行他们的代码告诉他们要做的事情。
- 契约不变性:在部署代码后更改代码并不容易(或免费!)
- 分布式分类帐:没有人拥有且任何人都可以访问的数据库。可能是基于区块链或DAG(DAG是一个完全不同的兔子洞,你应该摔倒🐰)
- 分布式信任最小化计算平台:像计算机,但建立在分布式账本上。
- 可升级性:在部署之前需要考虑升级已部署合约的策略,否则你将烧毁$$。
- 帐户,地址,公钥,私钥:你需要帐户才能与智能合约进行互动。
- 交易:要“召集”智能合约功能,你需要编写并签署交易,以证明你是发件人,就像蜗牛邮件一样!通常你需要在数据包中包含一些$$来吸引邮件更快地发送;)
......这个列表实际上很长,而且直观地理解以太坊如何点击我的脑袋需要相当长的时间。此外,这个空间移动得非常快,即使有了丰富的以太坊经验,在EOS上学习开发也具有挑战性。
因此,本指南的目标是成为一站式开源指南,用于了解EOS如何工作以及如何在其上建立合约。至少,我希望在浏览本指南之后,你将能够在堆栈溢出或Reddit上提出更好的调试问题:D
“EOS开发启动指南”涵盖的内容:
- 什么是“分散式”信任最小化计算机?
- EOS的目标是什么?
- EOS帐户,权限和密钥。
- EOS网络资源:CPU,RAM,NET。
- 从源头安装和构建。
- EOS CLI工具:cleos,nodeos,keosd。
- EOS智能合约:从C++到WASM再到ABI。
- EOS智能合约架构模式。
- 部署:本地节点,testnet和mainnet。
- 有用的开发工具:块探险家,钱包,资源计算器。
- EOS dApps:eosJS + Scatter。
- 测试
- 可升级
- 安全
- 社区
我第一次构建和部署后的EOS论文:
- I. 我看好EOS,因为网络速度快,应用程序可以根据需要购买尽可能多的计算资源。应用程序以投注EOS的形式缴纳税款,而不是交易费用。税收模型与费用模型为开发人员提供了更加精细的控制,以管理他们的应用程序费用,并使免费测试主网络合约:)。需要处理更多交易?在CPU上放置EOS。需要处理更大的交易?在NET上投注。需要更多内存?买Ram。Eos比以太坊有更好的“开发者用户体验”,历史上“跟随开发者”是一个好主意。
- II. EOS将以非线性的方式吸引最好的黑客:“除了有趣的问题,黑客喜欢的是其他优秀的黑客。伟大的黑客倾向于聚集在一起。所以你不会吸引好的黑客与你为他们创造的环境有多大的线性比例。丛生的倾向意味着它更像是环境的广场。因此,所有人都赢了。在任何特定的时间,只有大约十到二十个黑客最想去工作的地方,如果你不是其中之一,你不会只有更少的黑客,你就会有零。“ ”伟大的黑客“ —— 保罗格雷厄姆
- III. 你不能分叉社区。EOS社区对新来者充满热情,非常乐于助人和热情。我在SF的最近的EOS黑客马拉松,简而言之...这是一个爆炸。
我在构建我们刚刚发布的EOS智能合约时写了这本指南!查看我们在fiat.carbon.money的新多币钱包和我们的现场代币。
特别感谢以下EOS社区成员的指导:
- Sam Kazemian,Mahbod Moghadam和Everipedia团队的其他成员。
- Richard Tiutiun(又名:ricktobacco)。
- NSJames和Scatter团队。
======================================================================
分享一些比特币、以太坊、EOS等区块链相关的交互式在线编程实战教程:
- EOS入门教程,本课程帮助你快速入门EOS区块链去中心化应用的开发,内容涵盖EOS工具链、账户与钱包、发行代币、智能合约开发与部署、使用代码与智能合约交互等核心知识点,最后综合运用各知识点完成一个便签DApp的开发。
- 深入浅出玩转EOS钱包开发,本课程以手机EOS钱包的完整开发过程为主线,深入学习EOS区块链应用开发,课程内容即涵盖账户、计算资源、智能合约、动作与交易等EOS区块链的核心概念,同时也讲解如何使用eosjs和eosjs-ecc开发包访问EOS区块链,以及如何在React前端应用中集成对EOS区块链的支持。课程内容深入浅出,非常适合前端工程师深入学习EOS区块链应用开发。
- java比特币开发教程,本课程面向初学者,内容即涵盖比特币的核心概念,例如区块链存储、去中心化共识机制、密钥与脚本、交易与UTXO等,同时也详细讲解如何在Java代码中集成比特币支持功能,例如创建地址、管理钱包、构造裸交易等,是Java工程师不可多得的比特币开发学习课程。
- php比特币开发教程,本课程面向初学者,内容即涵盖比特币的核心概念,例如区块链存储、去中心化共识机制、密钥与脚本、交易与UTXO等,同时也详细讲解如何在Php代码中集成比特币支持功能,例如创建地址、管理钱包、构造裸交易等,是Php工程师不可多得的比特币开发学习课程。
- c#比特币开发教程,本课程面向初学者,内容即涵盖比特币的核心概念,例如区块链存储、去中心化共识机制、密钥与脚本、交易与UTXO等,同时也详细讲解如何在C#代码中集成比特币支持功能,例如创建地址、管理钱包、构造裸交易等,是C#工程师不可多得的比特币开发学习课程。
- java以太坊开发教程,主要是针对java和android程序员进行区块链以太坊开发的web3j详解。
- python以太坊,主要是针对python工程师使用web3.py进行区块链以太坊开发的详解。
- php以太坊,主要是介绍使用php进行智能合约开发交互,进行账号创建、交易、转账、代币开发以及过滤器和交易等内容。
- 以太坊入门教程,主要介绍智能合约与dapp应用开发,适合入门。
- 以太坊开发进阶教程,主要是介绍使用node.js、mongodb、区块链、ipfs实现去中心化电商DApp实战,适合进阶。
- ERC721以太坊通证实战,课程以一个数字艺术品创作与分享DApp的实战开发为主线,深入讲解以太坊非同质化通证的概念、标准与开发方案。内容包含ERC-721标准的自主实现,讲解OpenZeppelin合约代码库二次开发,实战项目采用Truffle,IPFS,实现了通证以及去中心化的通证交易所。
- C#以太坊,主要讲解如何使用C#开发基于.Net的以太坊应用,包括账户管理、状态与交易、智能合约开发与交互、过滤器和交易等。
- Hyperledger Fabric 区块链开发详解,本课程面向初学者,内容即包含Hyperledger Fabric的身份证书与MSP服务、权限策略、通道配置与启动、链码通信接口等核心概念,也包含Fabric网络设计、nodejs链码与应用开发的操作实践,是Nodejs工程师学习Fabric区块链开发的最佳选择。
- Hyperledger Fabric java 区块链开发详解,课程面向初学者,内容即包含Hyperledger Fabric的身份证书与MSP服务、权限策略、频道配置与启动、链码通信接口等核心概念,也包含Fabric网络设计、java链码与应用开发的操作实践,是java工程师学习Fabric区块链开发的最佳选择。
- tendermint区块链开发详解,本课程适合希望使用tendermint进行区块链开发的工程师,课程内容即包括tendermint应用开发模型中的核心概念,例如ABCI接口、默克尔树、多版本状态库等,也包括代币发行等丰富的实操代码,是go语言工程师快速入门区块链开发的最佳选择。
汇智网原创翻译,转载请标明出处。这里是EOS开发启动指南