LavaFlowZCFY

过渡到Web3—分布式开发介绍

原文链接: hackernoon.com

过渡到Web3—分布式开发介绍

从web2转向web3开发者值得信赖的教程 第一期

首先发表于JAKK 开发博客系列

欢迎来到系列博客的第一篇,该系列旨在使web开发者以尽可能简单的方法基于Ethereum构建分布式应用和智能合约。

我们会通过一个示例项目展示如何构建,测试,保护和部署受Ethereum区块链智能合约支持的分布式式应用。


这个系列关注的是什么?

2017年1月,我在上网浏览技术动态时偶然发现了怪异的Ethereum。我不知道该怎么读这个词,但对它有了很深的印象。

2017年3月,我开始理解这个深奥的分布式概念并在JAKK找到一份工作,致力于在分布式基础上推动音乐产业转变。在过去的六个月里有两件事开始变得明朗:

  1. 这里有很多复杂的流程和糟糕的想法

  2. 这里有多得吓人的web开发者需要推动生态发展

我写这个系列的动机已经明了:分布式开发使web拥有难以想象甚至更多的潜能。通过降低准入门槛,开发者们会构建整个生态,这会促使更多奇思妙想,工具的迭代和高质量产品出现。

最近一项调查显示缺乏指导正在困扰web3开发者。

那么这个系列是写给谁的?

如果你是一个了解分布式前景的web/JavaScript开发者,想主动学习如何基于web3构建应用,这个系列绝对适合你。当然,对已有教程或Truffle/Meteor样板不理解并正在寻找一个更简单切入点的人同样适合这个系列。

在深入讲解前,先了解几个概念

大部分教程将许多不相关的术语混为一谈,并试图教授未来的web3开发者错综复杂的类似维塔利喜欢什么早餐的经济学密码。这个系列不会这样做。

从众多技术栈中分辨并确立每个人的职责很关键。这样的开发者不会在思考中迷失,他们开始思考应用可以在哪什么地方使用这套技术栈。

Web3

Web3相当于下一代的互联网。Ethereum生态已经提出这个概念,并一致解释其为分布式的网络。简单来说,web3就是没有集中式服务器和数据库的web2。如果计划开始,web3会成为网络的一部分,web3开发者会又一次成为web开发者。

这样,分布式仓库会成为基础设施的选择之一,就像现在MongoDB VS Firebase 或者 REST VS GraphQL-你的EC2入口也许会被Ethereum替代,而你的标准配置可以储存在Swarm

Web2.0的改变将是渐进式的,我们将逐渐看到后端使用类Web3.0 的组件如Bitcoin,BitTorrent和Namecoin。这个趋势会持续下去,同时真正意义上的Web3.0版本Ethereum有可能会被那些内容型网站采用,像笔记类网站和交易类网站。

http://gavwood.com/web3lt.html (23 April 2014)

Dapp

Dapp就是分布式app。对我们这样上了年纪的开发者会比较难理解:没有服务器。然而,“后端”代码运行在一个分布式的端到端的节点网络上,前端代码则由分布式的CDN提供。

Web2 → Web3

Blockchain

你可以把区块链想象成一个只能增长的数据库,不是储存在一个单独的服务器上,而是分散于一个节点网络中,每个节点都存储了网络的全部事务记录。

正如它的名字一样,一个区块链是数据包的不可改变的记录,包含了一个能证明与区块链相关的一些让人喜爱的操作集。

在比特币区块链中,这些事务都是纯资金的(X给Y共计N个比特币)。在Ethereum区块链中,可以通过使用包含事务处理规则的程序计算出一系列事务类型。

Lauri Hartikka写了一篇非常棒的关于区块链迷你实现的文章,里面就介绍了这种尚不成熟的技术。

Ethereum

Ethereum是基于区块链的分布式计算平台,通过智能合约提供脚本化功能。Dapp可以利用Ethereum和相关连的技术,这个系列会持续关注这些技术。

然而这并不意味这些技术一定会被使用:BitTorrent,Popcorn Time 和 Tor这些分布式应用就未使用Ethereum技术。

Smart Contract

Ethereum环境的智能合约是在一个公共节点的全球网络上计算得出的脚本 - EVM(Ethereum 虚拟机器)- 并且可以从区块链读/写事务。智能合约可以被认为是一个为Dapp定制的分布式计算平台;与数据仓库通过HTTP API联系,不基于集中式服务器。

分辨Dapp和智能合约很重要:实际上,计算数据和服务渠道连接是一个Dapp很大的组成部分,就像你拥有的普通app,一个Dapp可以实现零连接计算。


web3发展现状

JavaScript的框架之争持续了数年,并见证了无数试图隐藏web开发细微差别的尝试。没有任何一个框架取得胜利 - 事实是函数库因为流行和备受青睐获胜。

在Web3时代的开始,框架已经出现一种大型化各端统一的趋势。倾向于Meteor和Truffle框架限制了人们学习web3组件原始知识的机会,从长远看项目的可维护性不容乐观。

对比之下,自动操作复杂,彼此分离且重复性的与Dapp运行和智能合约有关的工具可以促进良好的练习和更友好的学习曲线。

新兴危险同样存在,在追逐“新型互联网”概念时,一旦丢弃Web 2.0\的糟糕部分,我们就会失去近来的技术进步。最近的web3生态中,编程库和前端构造模式的回归非常频繁。

构建一个web3项目

对于一个web3项目有两点很重要:Web3.js(一个Dapp与Ethereum区块链和智能合约相连接的途径)和TestRPC(你的本地Ethereum区块链)。Web3.js是最先进的Ethereum库,而TestRPC是近来实现本地node运行的最简便方法。

这个教程和示例代码会使用Web3.js和TestRPC和最简单易得的工具来减少认知负载。我们会在下面的文章中开始构建一个示例项目,但你可以在评论中提任何问题和所观察到的结果,也可以在META网络自由频道与JAKK和其他web3开发者私聊。

下一期…

我们会讲解如何设计,编写,保护和应用智能合约。


拓展阅读


项目更新

由热衷于分布式应用的人们维护的一个很棒的项目副产品代码已经开源。这让挖掘数据以求得灵感和锻炼变成了机遇 - 我的意思不是让你为开源贡献!

在JAKK我们正在构建META网络和协议,最近在探索预期收益中使用了合作伙伴的数据。来看看我们的代码吧,可以和我们聊聊你发现的任何东西!

TwitterFacebook联系我们 .


最初载于 blog.jaak.io _ 2017.10.12_

是昙花一现还是引发持续热潮?

为了支持我们,你可以私信我们更喜欢哪篇文章。

Go to the profile of Luke Hedger

Luke Hedger