Solidity

✍ dations ◷ 2025-06-28 18:49:16 #特定领域语言,静态类型编程语言

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

相关

  • 普林斯顿高等研究院普林斯顿高等研究院(英语:Institute for Advanced Study,简称 IAS ),是世界著名理论研究中心,是一个供各领域的科学家做最纯粹的尖端研究的科研机构,能够保障所辖科研人员不受任何
  • 核泄漏事故除特别注明外,此条目或章节的时间均以日本标准时间(UTC+9:00)为准。福岛第一核电站事故(日语:福島第一原子力発電所事故/ふくしまだいいちげんしりょくはつでんしょじこ Fukushim
  • 太医院太医院,中国古代官署名。秦汉以后设太医令,为掌管医疗;隋唐设太医署;宋代设翰林医官院、元丰改制为医官局,设和安大夫、成和大夫、翰林医官;辽国北面官设太医局,南面官设提举翰林医
  • 氢气球气球(法语、德语:Ballon、英语:Balloon)是一种用来填充气体的囊状物。具有实用性,用被作载具的气球被称作航空气球,而小型的气球则常被用作装饰品和玩具。本文讨论的内容主要是作
  • 世宗文化会馆世宗文化会馆是一间位于韩国首尔钟路区的大型综合艺术设施,面积为53,202m²。它始建于1974年,1978年4月14日开馆,用以取代1972年12月1日烧毁的首尔市民会馆。以朝鲜王朝君王世
  • 大浪街道大浪街道是中国广东省深圳市龙华区下辖的一个街道,挨着龙华街道,与石岩街道、光明街道、观澜街道相邻,有机荷高速公路经过。大浪街道总面积37.2平方公里,常住总人口约30万人,其中
  • 新西兰骑士队新西兰骑士足球俱乐部(New Zealand Knights)是新西兰一支已解散的职业足球队。解散前球队曾于澳洲的现代甲级联赛中作赛;他们在联赛中的席位已被同样来自新西兰的惠灵顿凤凰队
  • 阿富汗人民民主党总书记阿富汗人民民主党中央委员会总书记是阿富汗人民民主党的最高负责人,总书记也是阿富汗民主共和国作为一党制社会主义国家的党和国家最高领导人。总书记一般兼任国家革命委员会
  • 威尼斯国际电影节威尼斯双年展国际电影艺术展(意大利语:Mostra Internazionale d'Arte Cinematografica della Biennale di Venezia;英语:International Exhibition of Cinematographic Art of t
  • 姐妹分体交换姐妹分体交换(Sister chromatid exchange, 缩写 SCE),是两个同卵姐妹染色单体之间的基因材料交换。减数分裂中,一条来自父方,一条来自母方的染色体叫做同源染色体。同源染色体 两