Dapp以及以太坊虚拟机

什么是Dapp

Dapp的特征:
1. 运行在对等网络上,注意不同于分布式网络
2. 参与者信息被安全存储,隐私保护
3. 通过网络节点去中心化操作

C/S应用于DAPP

这里写图片描述

去中心化应用的优点

  • 容错性好
  • 防止单一机构的干扰
  • 用户更容易相信该应用

去中心化应用缺点

  • 更新困难
  • 用户身份认证较为困难
  • 程序扩充困难
  • Dapp之间协作仍然比较困难

智能合约

  • 智能合约:一段写在区块链上的代码
  • 构建:区块链内的多个用户共同参与制定
  • 存储:通过P2P网络扩散到每个节点,并存入区块链
  • 执行:将满足条件的事务进行验证,达成共识后自动执行并通知用户

智能合约的部署步奏

这里写图片描述

以太坊合约部署

这里写图片描述

Dapp开发框架

  • Truffle:代码-编译-部署-测试-打包
  • Solidity:智能合约编程语言
  • Web3.js:智能合约调用
    这里写图片描述
    大概流程就是我们的Dapp是部署在以太坊的节点上.而我们的节点是和整个P2P网络上的节点进行链接的.用户操作的web页面背后是通过web3.js来与Dapp客户端打交道的

以太坊EVM

  • 以太坊是一套可以实现分布式应用的平台协议.它的核心是可以执行任意复杂算法的以太坊虚拟机(EVM)
  • 网络上的每一个节点都运行着EVM并执行相同的指令.因为这个原因,以太坊经常被描述为”世界电脑”

EVM的一些特点

  • EVM是一个256位的机器
  • 持久化存储是相当昂贵的,因为每个节点都要保存所有数据,如果更新一个节点的数据,所有节点都要更新
  • Solidity编译器会为了减少gas的使用而做出相应的优化

EVM的不足

  • 标准库较少
  • 调试和测试相对困难,基本的打印语句都没有,必须部署发布
  • 暂时不支持浮点数
  • 代码无法升级

以太坊的问题

  • 性能较差,公链TPS<20
  • 区块链难以存储”大数据”
  • “智能合约”难以实现复杂的算法.eg.float不能做

一些可能的解决方案

  • 闪电网络,状态通道,不改变共识算法,小改进
  • Coco Blockchain Framework等(微软的框架),改变共识算法,基本达到商用水平
  • 多种区块链混合.典型的如Akasha等区块链媒体,IPFS存储文章数据+区块链存储关键属性,执行合约

相关网络资料

智能合约典型代码

资料

猜你喜欢

转载自blog.csdn.net/uziandkobe/article/details/80169731