美文网首页
智能合约开发第三课 搭建一个运行的环境

智能合约开发第三课 搭建一个运行的环境

作者: 树哥区块链 | 来源:发表于2019-04-13 23:09 被阅读0次

    智能合约就是在区块链上运行的程序吗,那么首先的问题就是:

    如何把智能合约放在区块链上

    本质上讲,智能合约就是一段代码,这段代码需要在区块链执行至少需要以下三个步骤

    • 编写好一段代码
    • 把它发送的区块链上
    • 打包放入到一个区块中

    我们逐个步骤来描述:

    编写好一段代码

    我们编写的这个代码就叫做智能合约,这个智能合约需要被区块链上的虚拟机上来执行,

    我之前说过,虚拟机的出现,是为了产生一个沙箱环境,让我们的智能合约执行环境和外界环境完全隔离,避免由于不同的操作系统、不同的运行环境而导致执行结果的不同。

    既然程序需要虚拟机来执行,所以智能合约就必须要符合虚拟机来进行编
    译,就需要符合虚拟机的要求。

    不同的虚拟机要求的编译语言不同,例如以太坊的虚拟机要求的官方变易语言是solidity, 是以太坊专门定义的一种为以太坊开发智能合约的语言。

    而在维基链中,虚拟机指定的官方语言叫做Lua。

    LUA是一种用C语言编写的脚本语言,几乎可以在所有的平台中使用,并且有着短小精悍的特点。

    其实Lua语言并没有强大的功能库,不适合作为开发独立应用程序的语言,而更加适合做嵌入式程序应用,为一些应用程序提供便利的扩展功能,可以进行灵活的功能定制。

    我个人觉得,它的短小精悍的特点可能是维基链选择它的原因之一,因为区块链中的空间是极其宝贵,相当于传统的中心化服务模式也成本高昂,因为是需要同时所有节点中的区块都同时提供空间。在这样的情况下,短小精悍,就成了非常重要的一个优点了。

    例如python的源码有54万行,而lua5.3的源码只有2.4万行,是python代码的22分之一。是目前所有使用变成语言最为短小精悍的代码了。

    Lua软件的安装

    如果想在电脑上进行lua的编程,就需要按照lua,这样才能对我们编写的代码进行编程。

    lua可以安装在linux、mac、windows上,安装过程也比较简单。有如下几条命令(linux下)

    curl -R -O “http://www.lua.org/ftp/lua-5.3.0.tar.gz”  --从固定网址下载lua软件
    tar zxf lua-5.3.0.tar.gz --把下载的文件进行解压
    cd lua-5.3.0  --进入lua5.3.0文件夹,并安装
    make linux test 
    make install 
    
    

    如果,我们使用lua编写好了一段代码,那么下面需要做的事情就是:

    把智能合约发布到区块链上

    把智能合约发布到区块链上!

    这虽然是简简单单的一句话,但却包含着诸多的内容。例如:

    • 如何连接区块链之中?
    • 凭什么区块链会接受我们的智能合约?
    • 谁帮我们把智能合约放在区块之中?

    上面的三个问题是比较核心关键的问题,我们还是逐个问题进行剖析:

    1.如何连接的区块上

    这点其实比较容易理解,你让区块链执行程序,你总得和它有连接才可以吧?

    连接到区块链的方法很简单:

    成为区块链的一个节点。

    成为区块链的一个节点,自然就可以在上面发布智能合约了,因为节点就是区块链中的一员。

    如何成为区块链的节点呢?每个区块链要求不同,具体到我们讲的维基链之中呢?

    需要一些条件:

    系统软件需求:
    原生部署:support Linux-like 64bit systems, such as Ubuntu 14.x/Ubuntu 16.x/Ubuntu 18.x/Cent OS 7.x only.
    Docker部署:任意主流Linux版本

    硬件需求
    CPU: >= 1 Core
    RAM: >= 2GB
    硬盘: >= 100G (目前同步所有区块后需要约5GB硬盘空间,从长远考虑建议准备100G硬盘空间)
    出口带宽: >= 1Mbps
    入口带宽:>= 1 Mbps

    通过上文中,我们可以看到可以有原生部署和docker部署的方式。

    这里我们建议使用docker部署的方式。

    什么是docker呢?

    docker是一种容器,可以让开发者方便的打包应用,来发布在依赖于linux机器上。这种容器采用沙箱机制,对外完全隔离,且开销极低。
    (略)

    相关文章

      网友评论

          本文标题:智能合约开发第三课 搭建一个运行的环境

          本文链接:https://www.haomeiwen.com/subject/prydwqtx.html