Solidity

✍ dations ◷ 2025-11-15 08:37:57 #特定领域语言,静态类型编程语言

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

相关

  • 婴儿按摩婴儿按摩(英语:Infant massage),是一种对婴儿进行按摩治疗(英语:massage therapy)的替代疗法。这种疗法已经在全球范围内实施,并且在西方国家越来越多地用于婴儿,支持其使用的科学证
  • 降天冬酰胺剂天冬酰胺(英语:Asparagine,简称为Asn或N;而Asp或D代表天冬氨酸)。它是20种最常见的氨基酸之一,但不是必需氨基酸,合成的密码子是AAU和AAC,可用于制作代糖。加热到足够高的温度时,天冬
  • 人 (消歧义)人可以指:
  • 多晶型性同质异形体(polymorph),又称同质异晶物,是指由化学组成相同的物质,在不同的物理化学条件下形成的不同结构的晶体。相应地,称这种物质具有同质异晶现象(polymorphism)。同质异形体由
  • 中国殡葬史中国境内流行许多葬礼,有土葬、火葬、水葬、天葬、崖葬、悬棺葬、塔葬、海葬、树葬、花葬等。汉族为代表葬礼是土葬,在古代,土葬最能表现阶级和等级的差别,故夏,殷等朝代都用土葬
  • 埃利奥特·罗斯福一世埃利奥特·布洛克·罗斯福(Elliott Bulloch Roosevelt,1860年2月28日-1894年8月14日),美国总统狄奥多·罗斯福的胞弟,美国总统富兰克林·D·罗斯福妻子埃莉诺·罗斯福的父亲。埃利
  • 蒋友仁米歇尔·班诺伊(法语:Michel Benoist,1715年10月8日-1774年10月23日),汉名蒋友仁,字德翊,法国第戎人,天主教耶稣会传教士。蒋友仁于1737年进入南锡的耶稣会院学习,三年之后被批准前往
  • 晋州大捷釜山镇 – 多大浦 – 东莱城 – 尚州 – 忠州弹琴台 – 玉浦 – 泗川 – 临津江 – 唐浦 – 唐项浦 – 闲山岛 – 龙仁 – 梨峙 – 平壤 – 釜山浦 – 北关
  • 长隆欢乐世界长隆欢乐世界位于中国广东省广州市番禺区大石街道,于2006年4月7日正式开业,是中国目前为止第2大的游乐园,仅次于上海欢乐谷,首期占地超过1000亩。2006年3月20日,首次开放试运营;4
  • 厄尔巴索艾尔帕索(西班牙语:El Paso)是美国德克萨斯州艾尔帕索县县治,位于德州极西部,隔格兰德河与墨西哥的华雷斯城相望。是该州第六大城、全国第十九大城市 (2006年估计人口为609,415)。