FinTech前哨
区块链 大数据
人工智能 VR/AR
什么是合约?
合约是代码(它的功能)和数据(它的状态)的集合,存在于以太坊区块链的特定地址。 合约账户能够在彼此之间传递信息,进行图灵完备的运算。合约依靠被称作以太坊虚拟机(EVM) 字节代码(以太坊特有的二进制格式)上的区块链运行。
合约很典型地用诸如Solidity等高级语言写成,然后编译成字节代码上传到区块链上。
另请参阅:
也存在其他语言, 尤其是Serpent和LLL,在此文本的以太坊高级语言章节会进一步阐述。去中心化应用开发资源列出了综合的开发环境,帮助你用这些语言开发的开发者工具,提供测试,和部署支持等功能。
以太坊高级语言
合约依靠被称作以太坊虚拟机(EVM) 字节代码(以太坊特有的二进制格式)上的区块链运行。然而,合约很典型地用诸如Solidity等高级语言写成,然后用以太坊虚拟机编译器编译成字节代码上传到区块链。
下面是开发者可以用来为以太坊写智能合约的高级语言。
Solidity
Solidity是和JavaScript相似的语言,你可以用它来开发合约并编译成以太坊虚拟机字节代码。
它目前是以太坊最受欢迎的语言。
Solidity文本 – Solidity是以太坊的旗舰高级语言,用于写合约。
Solidity在线实时编译器
标准合约API
有用的去中心化模式 – 用于去中心化应用开发的代码片段。
Serpent
Serpent是和Python类似的语言,可以用于开发合约编译成以太坊虚拟机字节代码。它力求简洁, 将低级语言在效率方面的优点和编程风格的操作简易相结合,同时合约编程增加了独特的领域特定功能。Serpent用LLL编译。
以太坊维基百科上的Serpent
Serpent以太坊虚拟机编译器
LLL
Lisp Like Language (LLL)是和Assembly类似的低级语言。它追求极简;本质上只是直接对以太坊虚拟机的一点包装。
GitHub上的LIBLLL
LLL实例
Mutan (弃用)
Mutan是个静态类型,由Jeffrey Wilcke 开发设计的C类语言。它已经不再受到维护。
编写合约
没有Hello World程序,语言就不完整。Solidity在以太坊环境内操作,没有明显的“输出”字符串的方式。我们能做的最接近的事就是用日志记录事件来把字符串放进区块链:
每次执行时,这个合约都会在区块链创建一个日志入口,印着“Hello,World!”参数。
FinTech热搜榜
动画连载
最新活动
一个彩蛋
领取专属 10元无门槛券
私享最新 技术干货