Ethereum Blockchain Development

Blockchain Development
Use solidity language, truffle framework

  • install truffle framework
    Truffle is the most popular development framework for Ethereum with a mission to make your life a whole lot easier.

    1
    npm install -g truffle
  • install ganache-cli
    Ganache CLI, part of the Truffle suite of Ethereum development tools, is the command line version of Ganache, your personal blockchain for Ethereum development.

    1
    npm install -g ganache-cli

智能合约和一般程序程序的差异

以太坊智能合约确实有些和一般程序不同的特性,以下整理了四个不同点。

一、整合金流容易

一般的应用程序要整合金流是件非常不容易的事情而智能合约极容易整合金流系统(使用以太币或自行建立的新代币合约)。

二、部署时与后续写入时需费用

一般的应用程序需要提供网址让使用者下载,一般的网页应用程序也需要运行在伺服器上,开发者需要维持伺服器的运作以提供服务,这需要持续地花费(就算是免费的伺服器或网页空间,也是厂商自行吸收了费用),程序开始运作后,除了维持费用外不需额外的花费。

智能合约在部署时需要一笔费用,这笔费用将分给参与交易验证(挖矿)的人。而在合约部署成功后,合约会作为不可更改的区块链的一部分,分散地储存在全球各地以太坊的节点上。也因此,智能合约在部署后,并不需定期提供维持费用,同时查询已写入区块链的静态资料时也不需费用。只有在每次透过智能合约写入或读取计算结果时,需要提供一小笔交易费用。

三,储存资料的成本更高

一般的应用程序将资料储存在本机或伺服器上,需要资料时再从本机或伺服器上读取,而智能合约将资料储存在区块链上,储存资料所需的时间与成本相对昂贵。

四,部署后无法更改

一般的应用程序改版时可透过安装新版程序,网页应用程序也可透过部署新版程序达成,而智能合约一旦部署到区块链上后,就无法更改这个智能合约。当然聪明的开发者透过加入额外的智能合约,也已有办法绕过智能合约部署后无法再更改的限制。

Deploy

写好solidity代码(.sol)后,需要先将程序代码编译(编译)成EVM(Ethereum Virtual Machine)能读懂的二进制度Contract ByteCode,才能部署到Ethereum的区块链上执行。部署到区块链上的合约会有一个和钱包地址(地址)一样格式的合约地址(Contract Address)。

Start to program smart contract

use: truffle framework/ganache-cli(Fast Ethereum RPC client for testing and development)
Install:

1
$ npm install -g ganache-cli truffle