Solidity教学第一集,智能合约、Remix、储存与检验、ETH
区块链的应用日趋广泛,智能合约现阶段也在金融、供应链等领域快速发展,让许多流程高效率自动化,同时资安管控品质也大幅提升。以下将会有五篇教学文章,让有或没有程式背景的读者都能先撰写基础智能合约,以便继续深造或参与区块链相关项目之商业开发案时能顺利沟通。
Solidity是以太坊上编写智能合约的主要程式语言。它是一种契约编写的程式语言,也就是说,智能合约可以储存、交易与编写在区块链上。Solidity与JavaScript、Python和C ++类似,都是有一定难度的程式语言,它是被用来在Ethereum Virtual Machine(EVM)上运行,且会储存在各个全节点上面,并在上面运行,简而言之,学会Solidity就足够让我们在区块链网络上建立一个智能合约与应用。

【REMIX介面】我们首先要用Remix 来打程式码。那什么是Remix?Remix 是用来编写Solidity 的Web IDE,也就是浏览器的开发环境,可以用来储存、编译我们所写的程式码、智能合约等,当然还有很多其他很好用的功能这边就不多赘述,所以我们使用Remix当做这次开发智能合约的开发环境。【教学完会提供完整程式码提供对照】请大家开启一个新的标签页或视窗,打开Remix,以便跟上这次的教学。( Remix链结 )在Remix页面中的左手边,点击browser旁加号,可以打开一个新的文件夹来编写Solidity。

【开新档取名MyContract (可自订)】接着我们开启一个新的资夹命名为「MyContract.sol」。在程式码的第一行当中,我们要先写下要使用的Solidity的版本,因为Soldility会随着时间而更新里面的工具,尽管主要内容不变,但大家还是要注意看看版本为何。
pragma solidity ^0.4.24;
接着我们宣称智能合约如下 :pragma solidity ^0.4.24;
contract MyContract {
// …
}
这边要先解释几件事情,以便后的执行。
智能合约是在以太坊区块链上执行的一段程式码以太坊区块链上的程式码都是公开且开源的,也就是说任何人都可以查看你在智能合约里的程式码,同样地,你也可以查询其他人的程式码接着我们希望可以编写一个可以「储存」的程式码而这段程式码的功能可以「储存」及「检验」。为了在Solidity里面要做到可以「储存」及「检验」,我们先将一个变数命名为value。因为Solidity是一个静态程式语言,在宣称变数之前,所以要先指定资料型态如下(ex. string为字串意思,指定资料为文字型态时用):pragma solidity ^0.4.24;
contract MyContract {
string value;
}
*数值是会储存到储存空间当中,而不是记忆体。
*整个智能合约都可以访问这个变数,并解改变里面得数值,然而有些变数只能被部分的访问函数里面的值,而且无法直接更动里面的值。
接着,建立一个函数以从存储的数据中读取该值。我们首先使用一个名为「get()」的函数:function get() {
// …
}
function get() {
return value;
}
function get() public view {
return value;
}
function get() public view returns(string) {
return value;
}
这样我们就可以从智能合约能取数值。
这边先介绍从智能合约外部变更数值的方法。我们将创建一个set函数,如下所示:function set(string _value) public {
// …
}
function set(string _value) public {
value = _value;
}
constructor() public {
value = “myValue”;
}
pragma solidity ^0.4.24;
contract MyContract {
string value;
constructor() public {
value = “myValue”;
}
function get() public view returns(string) {
return value;
}
function set(string _value) public {
value = _value;
}
}

【完整程式码】
再来,我们要编译和部署此智能合约。首先,在浏览器的左侧点开下面的插头符号。并搜寻compiler以及run并点选Activate启用这两个插件(上图)

【两个插件安装】
,启用后就会多出下面两个符号

【显示Deactivate代表已安装未来可卸除】
接着,点击左方的循环图示,选择版本0.4.25来编译代码(版本会不断更新,不同版本会有些微差异),记得勾选「Auto Compile」并点击蓝色按键「Compile」。

【确认版本与编译合约】
再来,让我们选择测试环境,选取左列清单第三个。我们选择JavaScript虚拟机,因为它可以在浏览器中提供一个模拟的区块链,也就是类似将智能合约部署后的样子。

【Deploy部署合约】
那为什么不直接部署呢?因为部署到真正的区块链上要花费以太币,也需要时间等候,而Remix给予我们一个较快速且模拟部署后的样子。这也是我们选择Remix的原因。
只要点击按钮即可部署智能合约!!

部署完成后,要如何与智能合约进行互动呢?
我们可以呼叫智能合约里面的函数,而这些函数在Remix中的介面中已经产生好给我们了,如下图 :
点击get()。可以看到在函数中设置的预设值“ myValue”

我们使用set()更新值。在表格当中添加一个新值,只需确保将其用引号引起来即可,例如:“New Value”。因为这样才可以表示他是一个字串,接着运行它!智能合约会读取该值并更改为“New Value”

以上我们就完成一个以太坊的智能合约,在下一个阶段我们会用以上刚写完的智能合约程式码为基础再进行下一步的教学。
以上就是Solidity教学第一集,智能合约、Remix、储存与检验、ETH的全部内容,望能这篇Solidity教学第一集,智能合约、Remix、储存与检验、ETH可以帮助您解决问题,能够解决大家的实际问题是塔岸网一直努力的方向和目标。