区块链的应用日趋广泛,智能合约现阶段也在金融、供应链等领域快速发展,让许多流程高效率自动化,同时资安管控品质也大幅提升。以下将会有五篇教学文章,让有或没有程式背景的读者都能先撰写基础智能合约,以便继续深造或参与区块链相关项目之商业开发案时能顺利沟通。
Solidity是以太坊上编写智能合约的主要程式语言。它是一种契约编写的程式语言,也就是说,智能合约可以储存、交易与编写在区块链上。Solidity与JavaScript、Python和C ++类似,都是有一定难度的程式语言,它是被用来在Ethereum Virtual Machine(EVM)上运行,且会储存在各个全节点上面,并在上面运行,简而言之,学会Solidity就足够让我们在区块链网络上建立一个智能合约与应用。
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启用这两个插件(上图)
,启用后就会多出下面两个符号
接着,点击左方的循环图示,选择版本0.4.25来编译代码(版本会不断更新,不同版本会有些微差异),记得勾选「Auto Compile」并点击蓝色按键「Compile」。
再来,让我们选择测试环境,选取左列清单第三个。我们选择JavaScript虚拟机,因为它可以在浏览器中提供一个模拟的区块链,也就是类似将智能合约部署后的样子。
那为什么不直接部署呢?因为部署到真正的区块链上要花费以太币,也需要时间等候,而Remix给予我们一个较快速且模拟部署后的样子。这也是我们选择Remix的原因。
只要点击按钮即可部署智能合约!!
部署完成后,要如何与智能合约进行互动呢?
我们可以呼叫智能合约里面的函数,而这些函数在Remix中的介面中已经产生好给我们了,如下图 :
点击get()。可以看到在函数中设置的预设值“ myValue”
我们使用set()更新值。在表格当中添加一个新值,只需确保将其用引号引起来即可,例如:“New Value”。因为这样才可以表示他是一个字串,接着运行它!智能合约会读取该值并更改为“New Value”
以上我们就完成一个以太坊的智能合约,在下一个阶段我们会用以上刚写完的智能合约程式码为基础再进行下一步的教学。
以上就是Solidity教学第一集,智能合约、Remix、储存与检验、ETH的全部内容,望能这篇Solidity教学第一集,智能合约、Remix、储存与检验、ETH可以帮助您解决问题,能够解决大家的实际问题是塔岸网一直努力的方向和目标。
美国前三大信贷评级机构穆迪(Moody's) 近期将推出一款量子计算服务平台— Quantum for Finance,认为金融业非常适合导入量子计算,将业务资源分配问题最佳化。量子计算平台Quantum for Financ金融机构推出量子计算服务?根据穆迪分析(Moody...
12-12
股神 巴菲特军师、投资界传奇人物——查理· 芒格( Charlie Munger )11 月29 日撒手尘寰,当时消息一出马上传遍全球,而迷因币市场也在短短15 分钟内出现一款「芒格币( MUNGER )」,短时间内吸引不少炒币者买入。根据《CoinDesk》报...
12-12
巴西参议院日前通过新的所得税法规,旨在对当地公民的海外金融投资所得课税,意味着任何在海外交易所投资加密货币获利的巴西民众,可能也将有义务缴纳税率达15% 的资本利得税。这项法案已获得众议院通过,如今进入最后程序,递交给巴西总统鲁拉(Luiz Inácio Lula da Silva)签...
12-12
随着社交媒体上泄露的一张截图引发广泛讨论,Starknet Foundation 最近确认了关于即将发生的空投计划。该基金会进一步阐明了这些计划的进展以及参与资格的重要细节。空投计划引发猜测近日,两张在社交媒体上流传的截图引起了关于 Starknet 即将到来的空投的猜测。这些截图显示了该空投的一些...
12-12
跨链协议 Wormhole 已筹集到2.25亿美元的资金,估值为25亿美元。投资者包括 Coinbase Ventures、Multicoin Capital 和知名对冲基金 Breven Howard。新一轮融资采取了代币权证的形式,该权证授予持有人在未来某个日期获得代币的权利。Wormhole ...
12-12