以太坊区块链搭建与使用(五)-智能合约Solidity

一、智能合约Solidity开发工具

1、remix-ide  在线版本,也可以去github下载安装到本地。开发、编译、发布、执行、测试

2、remix-ide-cn 在线中文版本,也可以去github下载安装到本地。支持开发、编译、发布、执行、测试 。这个有个好用的地方就是部署的合约可以直接在这里调用执行。

p.s. 一般打开链接是空白可以试试Ctrl+F5强刷几次试试。

3、Ethereum Studio 目前官网推出Ethereum Studio。  在线版本,还是比较好用,不过目前没看到可下载本地。

4、IntelliJIDEA Java开发者可以试试IDEA的插件,不过开发与编译好像要安装2插件才行。

 

二、智能合约Solidity入门

Solidity是一种智能合约高级语言,运行在Ethereum虚拟机(EVM)之上。
Solidity与其它语言相关的特点?
它的语法接近于Javascript,是一种面向对象的语言。但作为一种真正意义上运行在网络上的去中心合约,它又有很多的不同,下面列举一些:

  • 以太坊底层是基于帐户,而非UTXO的,所以有一个特殊的Address的类型。用于定位用户,定位合约,定位合约的代码(合约本身也是一个帐户)。
  • 由于语言内嵌框架是支持支付的,所以提供了一些关键字,如payable,可以在语言层面直接支持支付,而且超级简单。
  • 存储是使用网络上的区块链,数据的每一个状态都可以永久存储,所以需要确定变量使用内存,还是区块链。
  • 运行环境是在去中心化的网络上,会比较强调合约或函数执行的调用的方式。因为原来一个简单的函数调用变为了一个网络上的节点中的代码执行,分布式的感觉。
  • 最后一个非常大的不同则是它的异常机制,一旦出现异常,所有的执行都将会被回撤,这主要是为了保证合约执行的原子性,以避免中间状态出现的数据不一致。

Hello Wolrd!
听起来高大上,其实入手玩起来也可以很简单:
pragma solidity ^0.4.0; contract HelloWorld{ uint balance; function update(uint amount) returns (address, uint){ balance += amount; return (msg.sender, balance); } }
通过读取参数输入的新值,并将之累加至合约的变量中,返回发送人的地址,和最终的累计值。

Solidity的完整语法:
入门说明:

值类型:

引用类型:

杂项:

单位:

语言内置特性:

进阶:

合约详解:

其它:

 

此文引用网络资源 

 

 

 

 

 

 

 

hanko:以太坊区块链搭建与使用(一)-私有链​zhuanlan.zhihu.com图标hanko:以太坊区块链搭建与使用(二)-私有链配置与启动​zhuanlan.zhihu.com图标hanko:以太坊区块链搭建与使用(三)-联盟链​zhuanlan.zhihu.com图标hanko:以太坊区块链搭建与使用(四)-以太坊钱包工具​zhuanlan.zhihu.com图标hanko:以太坊区块链搭建与使用(五)-智能合约Solidity​zhuanlan.zhihu.com图标hanko:以太坊区块链搭建与使用(六)-基于Java调用以太坊​zhuanlan.zhihu.com图标

 

 

posted @ 2020-12-17 17:02  玄明hanko  阅读(360)  评论(0编辑  收藏  举报