Solidity

✍ dations ◷ 2025-10-24 14:26:22 #特定领域语言,静态类型编程语言

Solidity是一种合约导向式语言,被应用于各种不同的区块链平台,其主要开发者为加文·伍德(英语:Gavin Wood),Christian Reitwiessner,Alex Beregszaszi,Liana Husikyan,Yoichi Hirai和其他几位早期以太坊核心贡献者。Solidity 可使程序开发人员能在区块链上(例如以太坊)编写智能合约。

Solidity的语法概念最早是由加文·伍德(英语:Gavin Wood)在2014年提出,后期则以Christian Reitwiessner所领导的以太坊团队Solidity接手开发。该语言是针对以太坊虚拟机(EVM)所设计的四种语言之一(其他的还有Serpent,LLL,Viper(实验中)和Mutan(已弃用))。有关这些语言的更多信息,请参阅以太坊编程语言。

Solidity是目前在以太坊及其他以太坊竞争平台中的主要编程语言,例如Monax及其Burrow Hyperledger的区块链就是使用Tendermint完成共识机制。 SWIFT亦已经使用Solidity在Burrow上完成了概念验证。

康奈尔大学的研究人员指出,Solidity即是导致DAO在2016年被黑客攻击的部分原因之一。他表示:“这实际上并不是DAO合同本身的缺陷或漏洞;技术上来说,DAO确实是在EVM上如预期般地被运行,反而是Solidity将安全上的漏洞引入了合约之中,而这些漏洞不仅没被开发社群察觉,Solidity语言的设计者们也忽略了。

Solidity是一种静态类型的编程语言,用于开发在EVM上运行的智能合约。 Solidity被编译为可在EVM上运行的字节码。 借由Solidity,开发人员能够编写出可自我运行其欲实现之商业逻辑的应用程序,该程序可被视为一份具权威性且永不可悔改的交易合约。对已具备程序编辑能力的人而言,编写Solidity的难易度就如同编写一般的编程语言。

Gavin Wood最初在规划Solidity语言时引用了ECMAScript的语法概念,使其对现有的Web开发者更容易入门;与ECMAScript不同的地方在于Solidity具有静态类型和可变返回类型。而与目前其他EVM目标语言(如Serpent和Mutan)相比,其重要的差异在于Solidity具有一组复杂的成员变量使得合约可支持任意层次结构的映射和结构。Solidity也支持继承,包含C3线性化多重继承。 另外还引入了一个应用程序二进制接口(ABI),该接口(ABI)可在单一合同中实现多种类型安全的功能。 

以下为使用Solidity编写的程序示例:

contract GavCoin{  mapping(address=>uint) balances;  uint constant totalCoins = 100000000000;  /// Endows creator of contract with 1m GAV.  function GavCoin(){      balances = totalCoins;  }  /// Send $((valueInmGAV / 1000).fixed(0,3)) GAV from the account of $(message.caller.address()), to an account accessible only by $(to.address()).  function send(address to, uint256 valueInmGAV) {    if (balances >= valueInmGAV) {      balances += valueInmGAV;      balances -= valueInmGAV;    }  }  /// getter function for the balance  function balance(address who) constant returns (uint256 balanceInmGAV) {    balanceInmGAV = balances;  }}

开发平台

  • Remix,Solidity官方IDE
  • Microsoft Visual Studio
  • ConsenSys Enterprise
  • Tendermint 
  • AWS的ErisDB

区块链平台

Solidity可在下列平台中运作:

相关

  • 印度艾滋病情况根据印度国家艾滋病控制组织(英语:National AIDS Control Organisation)的数据,2013年后天免疫缺乏症候群在印度的患病率为0.27,估计印度有239万人患有艾滋病,而英国医学期刊在201
  • 极度危险物质列表《美国应急规划与社区知情权法》中第302节规定了极度危险物质列表(42 U.S.C. 11002)。这个列表可以在40 C.F.R 355的附录中找到。截止至2006年的更新可以在2006年8月16日的《
  • 运动心理学异常心理学 行为遗传学 生物心理学 心理药物学 认知心理学 比较心理学 跨文化心理学 文化心理学 差异心理学(英语:Differential psychology) 发展心理学 演化心理学 实验心理学
  • 内在因子n/an/an/an/an/an/an/an/an/an/a内因子(英语:intrinsic factor, IF)——又称胃内因子(gastric intrinsic factor, GIF)——是由胃的壁细胞分泌的一种糖蛋白,能与维生素B12结合成一
  • 有栖川宫炽仁亲王有栖川宫炽仁亲王(1835年2月19日-1895年1月15日),第9代有栖川宫,八代帜仁长子,幼名欢宫。1849年亲王宣下,以炽仁为名,旧日本军陆军大将。曾与仁孝天皇女、孝明天皇妹——和宫亲子内
  • 清川江清川江(朝鲜语:청천강/淸川江 Ch'ŏngch'ŏngang */?),是朝鲜半岛西北部的一条河流, 发源于今朝鲜民主主义人民共和国咸兴市西北慈江道的狼林山脉,流经妙香山,后在新安州(安州市)汇
  • 2020年俄罗斯-沙特阿拉伯石油价格战2020年俄罗斯-沙特阿拉伯石油价格战是2020年3月8日在俄罗斯和沙特阿拉伯间发生的一次石油价格战。此次价格战导致国际油价大幅波动:美国石油价格下跌34%,原油价格下跌26%,布兰特
  • 加拿大U15大学联盟U15是一个由15间加拿大顶尖研究型大学所组成的一个组织。第二次世界大战后,尤以麦基尔大学,多伦多大学为首的加拿大大学在学术界取得巨大的进步。1991年,经过多年积累后的加拿
  • 膜荚豆膜荚豆(学名:),又名扁枝豆,是一种豆科植物。它们生长在哥斯达黎加、萨尔瓦多及尼加拉瓜。它们受到环境破坏的威胁。
  • 第一米涅尔瓦军团第一米涅尔瓦军团(英语:Legio I Minervia)古罗马军队建制名称。由图密善为进行日耳曼部落战争而于公元82年建立,约存在于公元4世纪前后。活动于古罗马所统治的下日耳曼尼亚并发