Solidity

✍ dations ◷ 2025-11-18 12:46:41 #特定领域语言,静态类型编程语言

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可在下列平台中运作:

相关

  • 细菌萜醇细菌萜醇也称为“细菌异萜醇”,是一种由乳酸杆菌合成的、具有11个萜醇基的脂质。 这种分布于细菌中的聚萜醇是细胞膜多糖的O抗原侧链、细胞壁胞壁质的多糖骨架以及其它荚膜多
  • 医疗错误医疗疏失,又称医疗过失、医疗错误、医疗失误,通常指可以被避免的医疗照护不良反应,无论它是否明显的被证明对病人有危害。它可能是源自于不精确或错误的诊断、或疗法。造成严重
  • 分支过程在概率论中,分支过程(英语:Branching Process)属于随机过程的一类,由一系列随机变量组成。分支过程的最初目的是建立一个数学模型,研究第n代个体产生随机个后代时的个体数模型。最
  • 戈达德太空飞行中心戈达德太空飞行中心(Goddard Space Flight Center)是美国国家航空航天局一个主要研究中心,位于华盛顿特区东北方约6.5公里处马里兰州的绿带城。戈达德太空飞行中心成立于1959年
  • 蕾丝蕾丝花边(英语:lace)是一种以繁复精致的,镂空花纹为特点的纺织品,由纱或线制成,呈网状。以纱线相互打结、交错、撚绕,而形成具有空花的布料,主要用于衣物的装饰。有蕾丝风格的织品起
  • 呼格吉勒图呼格吉勒图案,又称呼和浩特“4·9”女尸案,是于1996年4月9日在内蒙古自治区呼和浩特市发生的一起死刑冤案。报案人呼格吉勒图(蒙古语:.mw-parser-output .font-mong{font-family
  • Popular Science科技新时代(Popular Science)是创建于1872年的美国月刊杂志,主要包含科技方面的文章。其读者大多数具有高等学历,其中80%以上为男性。《科技新时代》中文版1996年1月创刊,已2014
  • 汤 恒汤恒(1965年7月-),中华人民共和国外交官,现任中华人民共和国驻哥斯达黎加共和国特命全权大使。
  • 中国报中国报(Chinapress Sdn. Bhd.)是马来西亚中文报章之一,总部位于吉隆坡孟沙。公司成立于1946年2月1日,由李孝式(后来成为马来亚第一任财政部长)为首的筹组委员会发起创刊。
  • 方位方位是各方向的位置。四方位或基本方位就是东南西北在地球球面上,顺着地球自转的方向为东方,逆着地球自转的方向为西方。日出方位并不一定是正东方向,日落方向也并不一定是正西