Solidity 是一门面向合约的、为实现智能合约而创建的高级编程语言。这门语言受到了 C++,Python 和Javascript 语言的影响,设计的目的是能在以太坊虚拟机(EVM)上运行。

Solidity 是静态类型语言,支持继承、库和复杂的用户定义类型等特性。

它的语法接近于Javascript,是一种面向对象的语言。但作为一种真正意义上运行在网络上的去中心合约,它又有很多的不同。以下就是Solidity 语言中隐藏的一些精妙之处。

以太坊的Solidity语言是可以创建用户自己的智能合约这种新型金融程序的基础。智能合约是以太坊在不同实体间实现去中心化及虚拟协议的方式。以太坊背后的愿景是创建新型生态系统,让各方可以通过一种近乎完全去中心化的方式彼此交流,不再总是需要中间人。

许多去中心化技术的基础设施背后是工具,或者说是“工具包”,它们构成了技术的整体性质。在许多情况下,开发者使用现有框架或编程语言创建这类基础设施。编程语言可以理解为绘制一幅像所必需的调色板。因此,这幅画本质上只有在创造力限制自身的情况下才会强大,但不同的调色板允许完全不同的图画类型。编程也是如此,若以以太坊的“Solidity”语言为调色板,画出的画就是去中心化应用程序。

智能合约的核心概念与架构

在理解Solidity的作用及其如何改变几乎所有去中心化系统的开发环境前,需要弄明白智能合约的核心概念及其构建目的。

在传统工作流程中,通常拥有一份通过某种方式将多方绑定在一起的合约。以太坊背后的概念是,人们可以将这整个过程虚拟化,通过智能合约让事务更加高效。若将前文的债务义务虚拟化,该公司就拥有了不可改变且透明的系统,债务永远不会出现欺诈或错误计算的可能。

智能合约是建立在双方之间的,不过双方可以是一方1人而另一方50人。智能合约的另一个核心概念是它给金融产品领域的新机遇打开了大门。首次代币发行(ICOs)的概念之所以成为可能就是因为智能合约的不可改变和透明性。拥有智能合约,你可以通过ERC20的以太坊标准发行原生代币。

Solidity中的流

Solidity的基础的设计是尽可能与现有的现代编程产品相似。像HTML这类标记语言的知识非常有限,这可能会给想要学习Solidity的人带来阻碍,不过开发者一旦掌握它,操作起来就非常简单了。

在设计Solidity的基础时,以太坊团队希望着重于可用性和简单性。其原因是为了让尽可能多的人能够使用工具包。以太坊的主要主张是Solidity要成为去中心化应用程序(dApps)中的JavaScript。

尽管从技术上来说这种语言可以用于创建自己的基础程序,例如高级循环、计算器等,但它主要是为了智能合约编程和去中心化应用开发设计的。这意味着在程序员开始将其应用到智能合约开发中时,用户才能完全感受到它真正的可用性。

如果读者想要创建一个名为“myContract”的智能合约,那么开发人员必须通过“contractmyContract”来建立其实例。通过这个例子,我们可以感受到Solidity的流(flow)。它包括了许多设计和预编程关键字,这些关键字将集成到直接与Ethereum虚拟机(EVM)协调的以太坊平台。

Solidity和dApps

虽然那些熟悉区块链和数字货币的人理解去中心化系统工作原理的核心,但是初学者可能很难理解什么是去中心化应用以及它们与可靠性的关系。

去中心化应用程序只是在网络上运行的应用程序,而不是单独的系统或用户。可以这样想:在为Mac创建应用程序时,管理应用程序后端的网络是Apple或单个实体。在创建去中心化应用时,控制其所有进程的网络都是以太坊网络上的进程,因此为应用程序创建了一个“分布式的”系统。

智能合约是建立与以太坊区块链建立直接连接的虚拟协议。去中心化应用是一种使用智能合约连接到区块链,从而实现去中心化的应用程序。Solidity只是一个用于在静态应用程序和分布式后端之间建立连接的工具。

Solidity不是智能合约,也不是去中心化应用,它是一种编程语言,用于创建智能合约,然后可以将应用程序链接到区块链。在学习了Solidity之后,开发人员可以创建与区块链交互的去中心化应用程序。

传统的集中式应用程序包含在静态点对数据库中起作用的单一数据库的连接。去中心化应用程序是分布式的,且由于各种各样的原因,它们在点对点(P2P)方式下发挥作用。其主要优点是维护正常运行时间,并限制任何潜在的集中成本或错误。

Solidity的竞争者们

Solidity每天都有新的版本,但这在社区中引起了一些争议。Solidity是一门新兴的语言,这意味着它仍然存在着许多错误,需要进一步的发展和完善才能使其完全合法化。轻易能够创建像以太坊这样的脆弱环境使得新开发人员的代码容易出现灾难性的错误,从而导致在创建智能合约时损失大量金钱。

在合约方面,以太坊的主要竞争对手通常被认为是TRON(波场)和EOS的主流案例。然而,就实际的Solidity编程语言的竞争而言,似乎只有有限数量的实体直接使用它。比如说,EOS开发工具包提供了具有竞争力的智能合约创建能力,但是,合约是用现有的语言c++编写的。在内部智能合约开发方面,其他编程语言可能暂时还无法超越Solidity。

作为以太坊(Ethereum)智能合约编程语言, Solidity 语言很容易快速上手,希望有越来越多的人来掌握它。

以太坊代码标准是什么_以太坊的包容性开发语言里到底藏着什么秘密?相关推荐

  1. 以太坊代码标准是什么_以太坊:什么是ERC20标准?

    不以规矩,不能成方圆 许多人应该都听过 代码即法律(Code Is Law),因为程序写完了,无论执行多少次都会得到同样的结果,除非有外界因素的干扰.在多人协作的过程中一定是要按照一个标准来进行分工, ...

  2. win10任务管理器快捷键_你都知道吗?Win10任务管理器到底藏了多少秘密

    任务管理器是大家熟悉的一款工具,特别是在稳定性普遍不佳的Windows上,使用率很高.尽管每天都在用,可大家对于这款工具的了解,却远不如其他软件.其实在任务管理器中,一直隐藏着几条不为人知的小秘密,一 ...

  3. 以太坊区块链也拥堵_以太坊开发人员怀疑EOS刻意拥堵网络,ETH和EOS大战即将开启?...

    原标题:以太坊开发人员怀疑EOS刻意拥堵网络,ETH和EOS大战即将开启? DappVision|7月16日 星期一 [行情] BTC 现价 ¥¥42,594.44 涨跌幅 1.57% ETH 现价 ...

  4. 以太坊代币事件监控_以太坊:什么是ERC20标准?

    不以规矩,不能成方圆 许多人应该都听过 代码即法律(Code Is Law),因为程序写完了,无论执行多少次都会得到同样的结果,除非有外界因素的干扰.在多人协作的过程中一定是要按照一个标准来进行分工, ...

  5. 以太坊代币事件监控_以太坊程序员的常见误解

    最近,我偶然读到了一篇题为<程序员关于时区的误解>的文章,让我爆笑不已.这篇文章让我想到了程序员在其它方面的误解,如人名和时间,于是我开始寻找有没有关于以太坊的.奈何寻觅无果,我只得尽自己 ...

  6. 以太坊2.0怎么挖矿_以太坊2.0即将上线 现在正是挖矿红利期 普通人如何参与挖矿?...

    以太坊2.0 吹响牛市号角!以太坊从诞生至今,共经历了四个阶段,分别是Frontier.Homestead.Metropolis和Serenity,此次以太坊升级疏于第四阶段Serenity,其中最核 ...

  7. 以太坊区块链也拥堵_以太坊开发人员:EOS刻意拥堵以太坊网络 推高交易费到1美元...

    金色财经 比特币7月16日讯根据一些DApp开发人员表示,EOS正在攻击以太坊,试图将交易费提高到1美元.据悉,相关开发人员指责EOS通过随机代币"空投"造成以太坊网络堵塞,而且这 ...

  8. win10任务管理器快捷键_你都知道吗?Win10 任务管理器到底藏了多少 “小秘密”...

    任务管理器是大家熟悉的一款工具,特别是在稳定性普遍不佳的 Windows 上,使用率很高.尽管每天都在用,可大家对于这款工具的了解,却远不如其他软件.其实在任务管理器中,一直隐藏着几条不为人知的小秘密 ...

  9. 同时画多个饼图_手帐术 | 这个神奇饼图里,藏着时间管理的小秘诀

    说起效率管理 kk首先想到的就是时间饼了 简直就是拖延症的救星啊!!! 不仅能帮我们规划日程 而且相比于时间轴来说 可视化更强 今天kk就来介绍一下 时间饼的使用方法~ 时间饼类型 时间饼一共分为几种 ...

最新文章

  1. 如何成为软件工程师的团队合作者
  2. latex下载对一篇文章的引用(.bib格式)
  3. 文巾解题 372. 超级次方
  4. php 正则表达式 x,php – 匹配x正则表达式或y正则表达式
  5. java多线程并发控制_Java多线程与并发控制
  6. 2019金球奖——梅西
  7. mysql binary安装_mysql的二进制安装方式
  8. springBoot shiro
  9. 多个线程“打架抢夺”同一个资源,该如何让它们安分?
  10. 拓端tecdat|r语言中对LASSO回归,Ridge岭回归和Elastic Net模型实现
  11. List常用方法总结
  12. 【正点原子Linux连载】第六十九章 Linux 网络驱动实验 -摘自【正点原子】I.MX6U嵌入式Linux驱动开发指南V1.0
  13. 1024 程序员节,拿个勋章
  14. excel多窗口显示设置
  15. Axi:名词解释、乱序、间插、卷绕、窄带访问、非对齐访问、OST
  16. 求最大公约数及求多个数的最大公约数
  17. HTML筑基知识点二
  18. iMessage 群发
  19. 用 Java 实现贪吃蛇小游戏
  20. C# button按键无反应

热门文章

  1. Android开发之刷新图片到相册 | 刷新视频到相册的方法区分发广播刷新方法
  2. 设置TextView文字
  3. Swift--字符串和字符(一)
  4. BZOJ3527:[ZJOI2014]力(FFT)
  5. 在SuSE10.1上安装Oracle10g
  6. redis位图法统计活跃用户+统计3天的连续登录用户案例
  7. javascript学习之void(0)的作用
  8. 部署App-V Client,应用程序虚拟化体验系列之三
  9. [Eclipse]GEF入门系列(序)
  10. 启动mq 在虚拟机中_记在使用rocketmq client客户端过程中踩到的坑