探秘区块链系统EOS.IO

这篇文章通过是我自身对区块链,对EOS的理解写的,当然很多观点并不能保证其准确性。本文的目的就是给大家一个高屋建瓴的看法。不妥之处,欢迎指正。

区块链 & EOS的宏观认识

其实还有很多的问题,我写这篇文章,为的是让一个对区块链不了解的开发者也能对EOS有一个宏观的概念。

可以把区块链理解为一个分布式的"数据库",这里分布的意思是区块链网络里的每个节点(运行区块链程序的计算机)。区块链里的数据按块(块只是表述一种数据结构)存储着,一块连着一块,块与块之间都有着一些联系。至于为何要把数据按块保存,这个这里不做赘述,可以简单认为这是最佳选择。区块链的可信性有几点原因: 一方面 公众都可以运行这个“数据库”程序,保存这和其它节点一样的数据;每个节点都可以参与验证数据的正确性:如某某账号有多少钱;每次有一个节点被选中进行新数据块的打包,而被选中是有一定的代价的,这个代价很难被伪造。好了,基于以上的几点原因,再加上多节点之间的一些魔法般的共识算法,保证了每个节点都维护着一份可信的交易记录。这也就是区块链主要做的事吧。试想一下,你想伪造某个账号里面突然多了很多钱,传统的中心化的计算机中,你只要攻破中心服务器就行了,但是现在你攻破几个节点是没用的,因为大部分的节点还是正确的。

我们知道,通常的数据库软件,都有一个client,就是控制台连接;还有,很多数据库可以在其上执行一些脚本语言。比如mongodb的控制台就可以执行javascript;MySQL可以执行SQL语句。区块链上也可以。具体的细节我还不太确定。但可以肯定的是,EOS的node节点可以安装一些智能合约,符合权限的用户可以调用这些智能合约执行,然后改写区块链上面的数据。这里的智能合约就类似于SQL逻辑语句。  所不同的是,SQL逻辑只能改写它连接的那一个数据库,可是智能合约会改写网络上所有等价节点的相关记录。当然,每次这样的改写都是需要一些身份验证的,就像MySQL登录也需要密码一样。 在EOS的文档里,高大上的说,EOS系统可以看做是一个操作系统: This is achieved through an operating system-like construct upon which applications can be built. The software provides accounts, authentication, databases, asynchronous communication, and the scheduling of applications across multiple CPU cores and/or clusters. 好吧,其实也算是吧。 *为了简单,但不保证准确性的说*:EOS和传统的数据库,从宏观的角度说,区别在于EOS的‘SQL’语句虽然只运行在一台计算机(一个节点)上,但是它的改动通过验证后会同步到所有节点。也正是由于这个最大的不同,工程师们在保证数据准确性、安全性等基础上创造了很多高深的,至少是新的概念。

细枝末节

我也基本把区块链、EOS的宏观视角给接受清楚了,虽然吧,如果去看官方文档,不花点时间会觉得挺难理解的,但其实也就是那么回事。现在,稍微想象一下,这个EOS的宏观是怎么样的呢?你应该能看到一个多节点的网络结构,每个节点可以是一台计算机,当然如果一个计算机上面运行多个这个EOS的节点程序也可以的。这个网络上每个节点都互相连接着。此时有n个账户分别向不同的节点提交了一些提前通过验证的‘SQL语句组合’(智能合约)执行请求;然后就是多节点验证、通过、各种安排运行、节点之间同步数据。整个网络,一定的时间段内都有一个领导者,做着较为重要的工作——太具体我还懵逼中。

在EOS中,有三个东西常被涉及到,nodeos、cleos、keosd。nodeos就是数据库的server, cleos就是数据库的client,keosd是干啥的呢?在nodeos的账号中,需要两对公私密钥对。这是很麻烦的,也不好记的。所以就有了keosd这个东西,专门保存公私密钥对的。EOS里还有一个钱包的概念……所谓的钱包/钱包名,就是你某个账户的公私钥保存在keosd中的“位置”。想通过cleos连接nodeos进行一些数据操作,你需要的是一个注册好的账号。其实主要就是合适的公私密钥对。前面说了,公私钥保存在你设的钱包名那里。所以你只要用你的钱包密码解锁那个位置,cleos就自动的帮你把nodeos给连接上去了。这样就能做操作了,也不用你再去管理自己的公私钥。虽然我不确定,但是我想应该就是这样的,假如在某个钱包里,一般是default,保存上千个不同的公私钥对,然后用于多个多个账户。然后……其实就是一个钱包密码掌控了上千个账户。

上面的一段基本说清楚了EOS很多很多基础的东西,具体的操作还需要自行实现。在传统的数据库中,还有一个东西是必须的,就是开发语言的SDK。也就是直接用编程语言连接到nodeos,不要控制台的client  cleos,keosd作为cleos衍生出来的产品,当然也不需要了,完全可以自己做好密钥对的管理。还真有,到nodeos的连接是通过restful实现的,简单说就是发送post、get请求。于是乎,我就有了一个小想法:写一个web服务,自己有一个传统数据库保存各种账号密码信息,eos的账号注册、账号余额展示、转账等等功能。每当一个用户登录到web,它可以进行转账等操作。具体的实现是:web在传统数据库找到客户的eos账号,然后web登录到eos,发送交易请求到nodeos,再返回结果。这样web的客户端就完全是传统意义上的“钱包”了。并且这个web可以帮助管理成千上万的客户。不知道能不能实现吧?

还有一个就是智能合约。eos的智能合约是通过wasm。wasm是一种可以在通用浏览器上面执行的一种预编译的代码。可以认为是一种语言吧,只是人是很难看懂的,直接可以在一些解释器,特别是浏览器上面执行。它的效率一般的会比js快。可以编译到wasm的语言目前有C++、 go、类似typescript的一个、kotlin?  总之,强类型的语言理论上都可以编译到wasm。以后会不会java、c#也来? 可以这么说,mysql上面有一个SQL的解释执行器,nodeos上有一个wasm的解释执行器。想要开发智能合约?官方推荐是C++。

我把区块链、EOS说的那么简单,会不会被打?

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

推荐阅读更多精彩内容