全部版块 我的主页
论坛 金融投资论坛 六区 金融实务版 比特币、区块链与元宇宙
581 0
2022-08-25
  合约是代码(它的功能)和数据(它的状态)的集合,存在于以太坊区块链的特定地址。合约账户能够在彼此之间传递信息,进行图灵完备的运算。合约依靠被称作以太坊虚拟机(EVM)字节代码(以太坊特有的二进制格式)上的区块链运行。

  合约很典型地用诸如Solidity等高级语言写成,然后编译成字节代码上传到区块链上。

  以太坊高级语言

  合约依靠被称作以太坊虚拟机(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!”参数。

  另请参阅:

  Solidity docs里有更多写Solidity代码的示例和指导。

  编译合约

  solidity合约的编译可以通过很多机制完成。

  通过命令行使用solc编译器。

  在geth或eth提供的javascript控制台使用web3.eth.compile.solidity(这仍然需要安装solc编译器)。

  在线Solidity实时编译器。

  建立solidity合约的Meteor dapp Cosmo。

  Mix IDE。

  以太坊钱包。

  注意:关于solc和编译Solidity合约代码的更多信息可在此查看。

  在geth设置solidity编译器

  如果你启动了geth节点,就可以查看哪个编译器可用。

  这一指令会返回到显示当前哪个编译器可用的字符串。

  注意:solc编译器和cpp-ethereum一起安装。或者,你可以自己创建。

  如果你的solc可执行文件不在标准位置,可以用—solc标志为solc可执行文件指定一个定制路线。

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群