Solidity

✍ dations ◷ 2025-02-23 07:33:08 #特定领域语言,静态类型编程语言

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

相关

  • 查理二世查理二世,可能为以下欧洲君主:
  • RhOsub2/sub二氧化铑是一种无机化合物,化学式为RhO2。二氧化铑属于四方晶系,有着金红石结构。二氧化铑难溶于王水。Rh2Cl2(C8H12)2 · Rh6(CO)16 · C8H12O8Rh2 · RhF3 · RhCl3 ·
  • 停车停车(Parking),是交通活动,也是一项常见的商业服务。司机把轿车、单车等停泊在马路、停车场等停车位。如此生活所需,有免费,也有需要付费的服务。在地产发展项目中,停车位的多少及
  • 伊尼亚士埃涅阿斯(希腊文:Αινείας,Aineías),也译作“伊尼亚斯”,特洛伊英雄,宙斯7世孙,达达诺斯6世孙,厄里克托尼俄斯2世5世孙,特洛斯玄孙,阿萨剌科斯曾孙,卡皮斯孙,安基塞斯王子与爱神
  • 安妮·霍尔《安妮·霍尔》(英语:Annie Hall)是1977年(第50届)奥斯卡最佳影片奖作品,属浪漫喜剧类。该片由伍迪·艾伦执导,而剧本则由艾伦与马歇尔·布里克曼合力写成。艾伦创作此剧本时片名
  • 重庆2019冠状病毒病重庆市疫情,介绍2019冠状病毒病疫情中,在中华人民共和国重庆市发生的情况。2020年1月21日18时,重庆市累计报告新型冠状病毒感染的肺炎确诊病例5例,其中巫山县2例
  • 激光手术激光手术是以激光切割组织的外科手术方式,实际应用的例子包括在常规外科手术中使用的激光手术刀,及照射激光光束使含水量较高的软组织汽化的软组织激光手术。而在美容整形外科
  • 滥权滥用权力在“公务不当行为”或“官员渎职”的形式下,是人履行公职时在其职务范畴下犯下的非法行为。这些行为或会影响其职务表现。办公室渎职往往会导致民选官员被引用法规而
  • CV-5 约克镇号坐标:30°35′59″N 176°34′4″W / 30.59972°N 176.56778°W / 30.59972; -176.56778约克城号航空母舰(英语:USS Yorktown,舷号CV-5)是一艘隶属于美国海军的航空母舰,为约克城
  • 老威廉·H·盖茨威廉·亨利·盖茨二世(英语:William Henry Gates II,1925年11月30日-),常被称为老威廉·亨利·盖茨(William H. Gates, Sr.),通称老比尔·盖茨(Bill Gates Sr.),生于美国华盛顿州布雷默