Solidity

✍ dations ◷ 2025-07-19 06:57:43 #特定领域语言,静态类型编程语言

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

相关

  • 乐毅乐毅(?-?),燕国著名军事家,辅佐燕昭王,曾攻下齐国70余城而封昌国君,后获赵国封望诸君。与管仲齐名,是东周战国时期法家重要代表人物之一。魏国名将乐羊后代。乐羊葬于中山国灵寿(属今河
  • 奥古斯特·凯库勒弗里德里希·奥古斯特·凯库勒·冯·斯特拉多尼茨(德语:Friedrich August Kekulé von Stradonitz,1829年9月7日-1896年7月13日),德国有机化学家。从1850年代直到他去世,凯库勒是欧
  • 太上太上老君,简称老君,全称“一炁化三清太清居火赤天仙登太清境玄气所成日神宝君道德天尊混元上帝”,又称“太上混元老君、梵形神宝玄真降生道德天尊”,又称道德天尊、混元老君等。
  • 绿色无政府主义绿色无政府主义(英语:Green anarchism),无政府主义内强调环境议题的一门学说。亨利·戴维·梭罗及其著作《湖滨散记》是早期的重要影响者。部分绿色无政府主义者可被称为无政府
  • 欧及布威族欧及布威族(奥杰布瓦语:Ojibwe或Ojibway),又称奥吉布瓦族(英文:Ojibwa或齐佩瓦族(英文:Chippewa(y)),是北美的原住民族之一。当年法国商人来到北美大陆时,首先接触到的民族即为欧及布威
  • 1971年-1980年这是一个1971年-1980年的完整载人航天飞行列表,其中包括后间的太阳神计划登陆任务、天空实验室计划及礼炮计划。
  • 台湾高等法院台中分院坐标:24°07′38″N 120°40′08″E / 24.12722°N 120.66889°E / 24.12722; 120.66889台湾高等法院台中分院(俗称台中高分院),是中华民国的二级法院之一,属于普通法院,行政组织
  • 保卫局中国人民解放军军徽审判机关:中国人民解放军军事法院检察机关:中国人民解放军军事检察院中央军委政法委员会保卫局,是中央军委政法委员会下属局,负责军事纪律检查、刑事调查、保
  • 德光岛东北群岛德光岛(马来语:Pulau Tekong)位于新加坡的东北部外海的岛屿,是一个军事保留区。该岛在面积约为24.4平方公里(由于填海工程,实际面积仍在每天增长),是该国第二大岛屿。德光岛
  • 张三丰张三豐(南宋淳佑七年-明天顺二年)(公元1247年—),本名全一,字君宝,号三豐,南宋末明初道士,辽西懿州人(一说福建邵武人)。据武当山道教中人相传,张三豐于湖北均县武当山修道,供奉玄天上帝