前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >从零构建以太坊(Ethereum)智能合约到项目实战——学习笔记3

从零构建以太坊(Ethereum)智能合约到项目实战——学习笔记3

作者头像
墨文
发布2020-02-28 14:31:46
1.9K0
发布2020-02-28 14:31:46
举报
文章被收录于专栏:m0w3n

P7 、1-以太坊(Ethereum)是什么?

DAPP:分布式应用程序

以太坊提供了便于交易的加密货币以太币(Ether),可透过智能合约解决交易上的信任问题,同时也可撰写DAPP来提供友善的信息汇总与操作界面,让以太坊成为一个目前最理想的区块链底层技术。 

以太币(Ether)的实际用途

在电脑上执行的一般的代码,写出来可能会有循环不断执行(死循环)的情况,搬到区块链上亦然。那么以太坊怎么解决这个问题呢?以太坊开发者想到的办法是让执行的代码变得有价。EVM里支持的所有的指令(OPCODE)都有明码标价,执行智能合约需要消耗与执行的指令数量相当的以太币。在智能合约的术语中,这些拿来消耗的以太币被称为gas(燃料)。部署合约到区块链上时,需要附加一定数量的燃料。当燃料消耗完而程序还没执行完,就会出现 Out of Gas(燃料耗尽)错误。智能合约透过这样的方式来避免死循环等情况。

智能合约能做什么事? 

创造新的加密代币

募资 

程序能做的事

当你需要公开时,可被信任的纪录时,都可以透过智能合约达成。

以太坊的缺点

  • 目前以太坊区块链的速度和电脑执行速度无法相比,不适合快速交易,或是需要存储较大数据的情境。近期的plasma提案有望解决快速交易的问题。
  • 因为缺乏即时调控区块大小的手段,在一些很热门的交易时段(如某些热门的ICO开放认购时),整个网络的交易延迟会变地很长。
  • 智能合约一经部署就永远存在,除非拥有者启动智能合约中的自毁(selfdestruct)功能。如何升级合约并保存其中的参数与代币,是一个值得探讨的课题。
  • 以太坊网络节点上并不适合存储较大的档案。目前有Swarm与IPFS等分布式档案存储方式可供选择。

P8 、2-什么是智能合约(Smart Contract)

在区块链上运行的程序,通常称为 智能合约(Smart Contract)。所以通常会把写区块链程序改称为写智能合约。

智能合约可以做什么?

目前最常见的智能合约是各种加密货币合约,开发者可以很容易地透过部署一个智能合约,来提供运行于以太坊上的新加密代币。

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

一、整合金流容易

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

三、储存资料的成本高

四、部署后无法更改

如何编写智能合约?

Ethereum上的智能合约需要使用solidity语言来编写。

将智能合约部署到区块链的流程

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

部署后智能合约可自动执行。后续呼叫智能合约的时候,使用者可以使用部署合约的钱包地址(所有者账户),或依据编写的智能合约条件,让其他钱包地址也能呼叫这个只能合约。呼叫智能合约,其实就是向这个合约地址发起交易,只是交易的不只是代币,而可以是智能合约提供的呼叫方法。

P9 、3-Atom编辑器编写智能合约(Smart Contract)插件安装配置

编辑器的选择:Atom、WebStorm、VSCode、Sublime等等。

Atom下载地址:https://atom.io/,下载安装Atom

安装Atom插件:

  • autocomplete-solidity(代码自动补齐)
  • linter-solium、linter-solidity(代码错误检查)
  • language-ethereum(支持Solidity代码高亮以及Solidity代码片段)

离线插件安装参考此文:Atom离线插件安装

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-01-26 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
区块链
云链聚未来,协同无边界。腾讯云区块链作为中国领先的区块链服务平台和技术提供商,致力于构建技术、数据、价值、产业互联互通的区块链基础设施,引领区块链底层技术及行业应用创新,助力传统产业转型升级,推动实体经济与数字经济深度融合。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档