以太坊编程涉及那些开发语言?

Posted tokenpai

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了以太坊编程涉及那些开发语言?相关的知识,希望对你有一定的参考价值。

智能合约编程语言

Solidity

Solidity是第一批的描述智能合约的语言。当前是最流行的语言,因此也有最多的例子,文档,和教程。你应该学习这个,除非你有要学习其它的理由。

你可以使用基于浏览器的Remix IDE来进行快速验证。

下面是一个Solidity的合约:

pragma solidity ^0.4.11;
contract BasicToken { 
    mapping(address => uint256) balances; 
    function transfer(address _to, uint256 _value) returns () {
        balances[msg.sender] = balances[msg.sender] - _value;
        balances[_to] = balances[_to] + _value; 
    } 
    function balanceOf(address _owner) constant returns (uint256 balance) { 
        return balances[_owner];
    }
}

LLL

LLL是一门Lisp风格的底层编程语言,就像语言名称看到的这样。虽然以太坊官方并没有将它作为主要需要支持的语言,但它仍旧持续进行着更新,且与solidity在同一个资源库。

这是一个使用LLL语言写的一个ERC20代币的合约,链接:https://github.com/benjaminion/LLL_erc20/blob/1c659e890e2b30408555b9467a8dfd8988211b3b/erc20.lll

如果你正在学习,也许不是那么的容易习惯LLL语言的写法。

Serpent

Serpent是一个类Python的高级语言,最终也会被编译为EVM字节码。它主要被Augur团队使用。

但最近Zeppelin Solution团队发现其编译器有一个严重的bug,链接:https://blog.zeppelin.solutions/serpent-compiler-audit-3095d1257929在这个问题被修复之前都不建议继续使用。

如果你对Augur如何解决这些漏洞感兴趣,你可以阅读Zeppelin Solution的这篇文章。链接:https://blog.zeppelin.solutions/augur-rep-token-critical-vulnerability-disclosure-3d8bdffd79d2

Serpent的合约看起来如下:

def register(key, value): # Key not yet claimed if not
self.storage[key]: self.storage[key] = value return(1) else: return(0) 
# Key already claimeddef ask(key): return(self.storage[key])

技术分享图片

以上是关于以太坊编程涉及那些开发语言?的主要内容,如果未能解决你的问题,请参考以下文章

以太坊是什么,智能合约,编程语言:Solidity,DApp: 去中心化的应用程序,Truffle

第一行代码:以太坊-使用Solidity语言开发和测试智能合约

solidity开发以太坊代币智能合约

以太坊介绍

如何开发一款以太坊(安卓)钱包系列1 - 通过助记词创建账号

Solidity智能合约开发 — 1-以太坊开发工具和部署