Solidity

✍ dations ◷ 2025-07-11 15:55:18 #特定领域语言,静态类型编程语言

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

相关

  • 法属南部和南极领地法属南部和南极领地(法语:Terres australes et antarctiques françaises,缩写为TAAF)简称法属南部领地,是法国的一个海外领地。它包含以下地区:法属南部和南极领地无常住居民,人口
  • 左岸在法国巴黎地区,左岸(法语:La Rive Gauche,法语发音:.mw-parser-output .IPA{font-family:"Charis SIL","Doulos SIL","Linux Libertine","Segoe UI","Lucida Sans Unicode","Cod
  • 凝血酶原1a2c, 1a3b, 1a3e, 1a46, 1a4w, 1a5g, 1a61, 1abi, 1abj, 1ad8, 1ae8, 1afe, 1aht, 1ai8, 1aix, 1awf, 1awh, 1ay6, 1b5g, 1b7x, 1ba8, 1bb0, 1bbr, 1bcu, 1bhx, 1bmm, 1bmn
  • 四氢噻吩四氢噻吩(英语:Tetrahydrothiophene,缩写为THT)即“硫杂环戊烷”,分子式为 C 4
  • 省财厅广东省财政厅大楼,是广东省广州市的一座著名政府部门建筑物,位于北京路北端,大楼为仿西方古典折衷主义风格。首期工程建成于1919年。1949年后成立的广东省人民政府财政厅,仍延续
  • 新型人类传染病命名最佳实践新型人类传染病命名最佳实践,或译为新型人类传染病命名的最佳实践,全称世界卫生组织命名新型人类传染病的最佳实践(英语:World Health Organization Best Practices for the Nam
  • 赫默尔亨普斯特德赫默尔亨普斯特德(英语:Hemel Hempstead)是位于英国东英格兰的一座城市,在行政区划上属于哈特福郡。赫默尔亨普斯特德是一座大规模新市镇,位于伦敦西北24英里(38.6千米)处,是大伦敦
  • 圣路易斯圣路易斯是阿根廷的城市,也是圣路易省的首府,位于该国中部,距离首都布宜诺斯艾利斯791公里,始建于1594年8月25日,海拔高度730米,每年平均降雨量627毫米,2001年人口153,322。
  • 医学总会 (英国)医学总会(英语:General Medical Council,缩写作 GMC)是英国一个收费的注册慈善团体,根据《1858年医学法令》成立,拥有法定义务管有英国执业医生的登记名册。医学总会也负责管制英
  • 佳得乐佳得乐(英语:Gatorade)是一种非碳酸性运动饮料,是由桂格(Quaker Oats)公司销售,属于百事公司旗下产品。产品最初是提供给运动员专用,现在逐渐成为一种常见的零售饮料。饮料倾向于复