开发基于以太坊的DApp,都要会哪些技能?

图片来源网络

前言:

对于一个新手来说,想开发DApp,最头痛是不知道怎么去学?怎么入手?应该去学点什么?好,作为一个踩过坑的我,接下来给大家聊聊我目前知道的吧,这篇文章理论偏重,下篇文章开始会给大家写点实战点的。

文:谦益

能看到这篇文章的应该对区块链的一些基础知识有一定了解了,比如:

  • 区块链是啥?
  • 以太坊是啥?
  • 公链和私链的区别
  • Truffle是啥?
  • solidity是啥?

我就当做你们对上面的已经了解了,不了解的可以看我以前写过的笔记或者网上查找相应的资料。

一、web3.js是啥?

如果你想开发一个DApp,可能网上看到最多的是web3.js之类的,有人就开始疑问了,他是做什么的?其实他就是一个js库,和jQuery库类似。

好了,回到DApp开发上,先来说说DApp的运作流程,DApp我个人的理解,他的本质其实是一个H5 网页,也可以说是一个H5 App。

当你操作这个网页时,比如转账呀,这时网页的js会去调取对应的方法,这个方法会去调web3.js里面对应的方法。

二、这个web3.js里面做了什么呢?

要想知道web3.js里面做了什么,就得先知道下面的几个点

  • 1、如果想在区块链里转账,我们正常逻辑是怎么做的?如果没有DApp我们得,先下载一个以太坊官方提供的钱包,再登录我们的账号,再选择转账输入要转账的用户点击发送。
  • 2、以太坊账号与账号之间转账数据传输是怎么发送的?如果是采用的HTTP服务,我们是否可以像传统API那样,发个POST请求就转账了。答案当然不是了,以太坊区之间的传输采用的是RPC服务,关于RPC服务如果不懂的,可以自行网上找资料,你可以理解他是一个类似HTTP服务那样,起了一个固定的端口监听别人的请求,而传输过来的数据格式则是固定的json格式,可能像这样的:
curl --data
{
"jsonrpc":“2.0”,
"method":“eth_sendtransaction”,
"params"[{
    "from":"0xeb85a5",
    "to":"0x6ff93",
    "data":"0xcddddd"
}]
"id":8}
localhost:8123

这里你先不管,里面这些参数是什么意思,当以太坊的节点拿到拿到这样的json数据请求就会处理转账了,然后再广播给所有节点。至于为啥要采用RPC服务这里不展开讨论。

好了,知道上面两点再回到DApp 的web3.js做了什么的问题上。

其实web3.js里面就是对这些固定的操作,比如获取账号信息,转账,还有调取合约等功能做了封装,而怎么调取这些功能,就是通过调用以太坊的 JSON RPC API 完成的。

看到这里是不是就有点DApp的开发思路了,对没错。如果你的DApp所有数据存在以太坊里面,你可以不用再写后台,就一个纯H5网页就能做出一个DApp,但是实际开发中并不是这样,继续往下看。

三、需要学习go语言么?nodejs呢?

我们现在需要做一个养宠物的DApp,我们不同基因的宠物他有不同的的特性,这些特性,我们该怎么处理?

写在js代码里面 ,那后期如果想加些特性,就得更新代码,那随着特性越来越多代码会越来越多,不利于维护,往往做法是把某种基因的特性存到我们自己的服务器里面,通过请求我们提供的API去拿到这些特性。有人会说,这又变成中心化了,没错,目前由于一些技术瓶颈,还不能做到100%去中心化。

上面说的是把宠物的特性单独存起来了,而一些宠物的交易,或者交配等这些操作,是需要调取合约的,web3.js里面又封装好了调合约的方法,是不是这些操作有让网页的js自己处理呢?也可以,不过有部分人觉得这样不利于维护,有了另一种做法,把DApp和传统H5 APP一样,DApp只负责展示,所有数据像后台去拿。于是便有了nodejs,go,java版本的SDK,而这些SDK里面其实做的事应该也是和web3.js类似。

写在后面的话

我也是才开始学习以太坊才2周左右,可能对一些理论,一些概念理解不是很准确,或者是有误的。发文只是想分享下我最近的学习心得,让一些比我晚起步的少踩一些坑,如果你发现有哪里不对的,欢迎留言我会积极修正和接纳。

谢谢你耐心的看完了。

参考文档

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,362评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,330评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,247评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,560评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,580评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,569评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,929评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,587评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,840评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,596评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,678评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,366评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,945评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,929评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,165评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,271评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,403评论 2 342

推荐阅读更多精彩内容

  • 中本聪作为一个老派C++程序员 编程水平并不高明 但运气不错——Vitalik Buterin 如果说比特币是...
    007胡明阅读 751评论 2 1
  • 起风的时候想你 下雨的时候想你 你在的时候想你 你不在了 依旧想你... 看完虐心的韩剧 又接着看另一部 虐心的韩...
    狐狸的爱阅读 246评论 0 0
  • 她到底在想什么,她对我的真实态度是什么?她对于这件事到底真实的看法是什么?在我们日常生活工作.学习交流中 我们很想...
    花好月圆_4c8c阅读 92评论 0 1
  • 原因: 1 编译器 是 煞笔2. 在 CollectionView 创建 之前注册,应该创建后注册
    爱喝农药de清凉阅读 5,382评论 0 0
  • 今天我新买了一个玩具,是一个鲨鱼小汽车,还有一个小匙。上边发的图片就是小钥匙,它有很大的技能,鲨鱼汽车背后...
    rx任曦阅读 249评论 0 0