以太坊与智能合约
a.区块链是什么
b.中心化与去中心化
c.区块链的发展
1.初识区块链、了解区块链1.0,
2.0,
3.0
1.以太坊(Ethereum)是一个建立在区块链技术之上, 去中心化应用平台。它允许任何人在平台中建立和使用通过区块链技术运行的去中心化应用、它被称为区块链
2.0。
2.可以将以太坊理解为区块链里的Android,它是一个开发平台,让我们就可以像基于Android Framework一样基于区块链技术写应用。
3.在没有以太坊之前,写区块链应用是这样的:拷贝一份比特币代码,然后去改底层代码如加密算法,共识机制,网络协议等等(很多山寨币就是这样,改改就出来一个新币)。
4.以太坊平台对底层区块链技术进行了封装,让区块链应用开发者可以直接基于以太坊平台进行开发,开发者只要专注于应用本身的开发,从而大大降低了难度。
a.什么是以太坊?
1.在计算机科学领域,智能合约是指一种计算机协议。这类协议一旦部署就能自我执行和自我验证,不再需要人为干预
1.高效的实时更新
2.准确执行
3.较低的人为干预风险
4.去中心化权威
5.较低的运行成本
2.智能合约的优点:
1.The DAO 攻击事件:合约存在漏洞导致大量以太币被盗,而且因为智能合约的去人为干预特性,使得漏洞无法线上修复。最终采用的办法是分叉。所以,智能合约需要保证合约代码的逻辑完整性和安全性,否则一旦受到攻击,后果会非常严重
3.缺点:
b.什么是智能合约?
1.EVM(Ethereum Virtual Machine)以太坊虚拟机是以太坊中智能合约的运行环境。
c.以太坊运行环境:EVM
1.Solidity以太坊智能合约的官方推荐的编程语言,文件扩展名以.sol结尾。
2.它是一个类javascript 的、图灵完备的编程语言
d.什么是solidity ?
初识以太坊与智能合约
2.以太坊环境搭建与智能合约Solidity 简介2018年7月3日11:12
3.以太坊的编程语言还有Viper,Serpent,LLL及Bamboo,但推荐使用
solidity
1.sudo add-apt-repository ppa:git-core/ppa
2.sudo apt-get update
3.sudo apt-get install git
安装git
1. 1.git --version
查看git版本号
2. 1.sudo apt-get install software-properties-common
2.sudo add-apt-repository -y ppa:ethereum/ethereum
3.sudo apt-get update
4.sudo apt-get install ethereum
3.安装geth
1.geth --help
4.获取geth指令
1.sudo add-apt-repository ppa:ethereum/ethereum
2.sudo apt-get update
3.sudo apt-get install solc
solc安装(本课采用在线IDE Remix )
5. 1.下载源码地址:https://https://www.360docs.net/doc/8c11977522.html,/en/download/
2.解压&&进入node 目录
3../configure
4.make && make install
5. 1.node -v
2.npm -v
查看版本
6. 1.truffle和testrpc是配套的以太坊开发框架。通过truffle可以快速的编译
和部署合约并进行测试,同时还有web前端交互界面
2.testrpc可以理解为快速生成以太坊测试账号
3. 1.npm config set registry https://https://www.360docs.net/doc/8c11977522.html,
2.npm install -g truffle
3.npm install -g ethereumjs-testrpc
由于被墙的原因,安装truffle比较慢,先设置淘宝源
4. 1.truffle --version
查看版本号
truffle和testrpc
6.npm 安装
以太坊+Solidity 开发环境搭建
3. 1.以太坊钱包也就是我们的以太坊客户端、其实我们可以把它理解为一个开发者工以太坊钱包介绍
4.
具,它提供账户管理、挖矿、转账、智能合约的部署和执行等等功能
2.钱包分两种一种是交互式命令的控制台就是我们上面所说的geth ,另一种是图形
化钱包以太坊有各种图形化钱包,包括电脑端和手机端的、目前最常用的是Mist solidity 在线编译IDE:remix
1.启动一个以太坊节点geth --datadir data --dev console 2>>logs.txt
2.使用solidity 编写智能合约
3.编译智能合约
4.将编译好的合约代码部署到以太坊上
5.使用web3.js 库所提供的js api 调用合约
5.智能合约的部署流程
6.没有hello world 的程序是不完整的程序--按照步骤5 实现hello world 智能合约
7. 1.google 安装轻钱包metamask
2.查看以太坊数据:https://etherscan.io
3.查看波厂合约
1.修改合约代码并编译
2.部署到指定的地址上创建token
3.设置gas 并提交验证
4.交易测试
4.修改波厂合约部署到测试网络上
实战ICO 发币