基于以太坊的Dapp开发学习心得(一)

一. 以太坊介绍

  1. 学习内容包括三部分:智能钱包的使用,智能合约Solidity和truffle框架,IPFS分布式存储
  2. 以太坊:是一个开源的有智能合约功能的公共区块链平台,通过其专用加密货币以太币提供去中心化的虚拟机来处理点对点合约。
  3. 智能钱包:类似于区块链中的账户地址,可以用Chrome的插件MetaMask来管理账户。该网址:https://www.myetherwallet.com/ 可以创建钱包地址,不同的开发环境会有不同的币获取方式
  4. IPFS:点对点的分布式超媒体分发协议,用基于内容的寻址代替传统的基于域名的寻址,不需要关系服务器的位置,不用考虑文件传输的名字和路径。将一个文件放到IPFS节点中,将会得到基于其内容计算出的唯一的加密hash值。可以通过http://ipfs.io/hash获取IPFS网络中的内容
  5. Solidity:是智能合约开发的语言,类似于nodejs,智能合约可以理解成区块链的数据库存储触发器。可以通过某些事件的发生来触发区块链中内容的存储,自身也可以存储一些简单的数据

二. IPFS的安装

  1. IPFS包下载,下载网址:https://ipfs.io/,选择Download go-ipfs版本
  2. 下载后,解压安装

    tar xvfz go-ipfs_v0.4.10_darwin-amd64.tar.gz
    cd go-ipfs
    mv ipfs /usr/local/bin/ipfs  将解压的文件夹中的ipfs文件移动到/usr/local/bin/ 文件夹中
  3. 创建ipfs节点

    cd ~/.ipfs
    ipfs init
    cd ~/.ipfs
    open ./
  4. 修改节点默认存储空间
    ipfs init执行后,会在根目录生成一个.ipfs的文件夹存储节点数据,ipfs默认存储空间为10G

    export EDITOR=/usr/bin/vim
    ipfs config edit 会打开一个文件,将文件中的StorageMax:10GB改成2或者其他,退出即可
  5. 查看节点id:ipfs id

  6. 启动节点服务器: ipfs daemon
  7. 跨域资源共享CORS配置,ctrl-c 退出ipfs

    ipfs config --json API.HTTPHeaders.Access-Control-Allow-Methods '["PUT",
    "GET", "POST", "OPTIONS"]'
    ipfs config --json API.HTTPHeaders.Access-Control-Allow-Origin '["*"]'
    ipfs config --json API.HTTPHeaders.Access-Control-Allow-Credentials
    '["true"]'
    ipfs config --json API.HTTPHeaders.Access-Control-Allow-Headers
    '["Authorization"]'
    ipfs config --json API.HTTPHeaders.Access-Control-Expose-Headers
    '["Location"]'
    1. 验证
    启动服务器 :ipfs daemon
    新建终端后执行:ipfs cat /ipfs/QmYwAPJzv5CZsnA625s3Xf2nemtYgPpHdWEz79ojWnPbdG/readme
  8. 可以使用http://localhost:50001/webui看到一个漂亮的UI界面

三.以太坊钱包的安装

  1. 通过Chrome下载MetaMask插件来导入创建的个人钱包
  2. 使用 https://www.myetherwallet.com/ 创建个人钱包,密码不能丢也不能忘
  3. MetaMask插件包含的环境如下:基于以太坊的Dapp开发学习心得(一)_第1张图片
  4. 其中Localhost8545需要自己创建
  5. 第一个是正式的以太坊环境,第2,3,4个是测试环境,后面是本地环境
  6. 测试币获取的方法

    Kovan Test Networkhttps://gitter.im/kovan-testnet/faucet 通过@epheph 加上钱包地址,可以获得以太币  
    Ropsten Test Network: 点击购买,就可以获得测试币,点击一次可以获得一个
    

四.智能合约的环境配置

  1. 在该网址下可以在线编写智能合约:https://remix.ethereum.org/#optimize=false&version=soljson-v0.4.24+commit.e67f0147.js
  2. 在Run中Environment可以选择JavaScript VM来运行编译
  3. 编译好后,网页右下角会生成方法,通过输入参数可以执行
  4. 也可以下载webstorm或者Atom等编辑器,写智能合约

PS:下一章将总结一下:truffle框架和Solidity语言

你可能感兴趣的:(区块链研究)