【区块链】以太坊学习基础

Yvonne ·
更新时间:2024-09-20
· 556 次阅读

以太坊基础 简介 区块链是一种分布式流水账数据库; 以太坊=区块链+以太坊虚拟机(EVM),其本质是一个状态机; 以太坊的所有活动(状态变动)都是通过账户间发送交易来完成的; 以太坊上的所有操作都是要消耗gas的,gas是要用以太币(Ether)买的; 以太坊的生态系统出现端倪,DApp的雏形已经有了; 阅读以太坊黄皮书是最佳的学习方法 以太坊入门学习指南

以太坊入门学习

以太坊DApp编程全流程 基本测试环境 Truffle编程框架 Solidity智能合约编程语言 Web3js合约调用 js/node.js基础 以太坊学习主要内容 以太坊简介 以太坊编程环境构建 js/nodejs简介:语言与服务设计基础 solidity编程:智能合约实现 web3.js编程:智能合约调用 案例一:数字通证系统设计 案例二:投票系统 区块链典型系统结构 应用层 合约层 激励层 共识层 网路层 数据层 以太坊技术框架

以太坊技术框架

以太坊核心概念 点对点网络:所有节点都地位平等,没有中心服务器 区块链:去中心化存储数据库 EVM:虚拟机,运行程序 DApp:智能合约的应用 以太币(Ether):以太坊世界中使用的数字货币 Gas:以太坊里对所有活动进行消耗资源计量的单位。读取免费,写入收费。 矿工(Miner):挖矿,构建基础设施 什么是区块链?

在这里插入图片描述

共识算法有哪些? POW:Proof of Work,工作证明 POS:Proof of Stake,股权证明 DPOS:Delegated Proof of Stake,委任权益证明 PBFT:Practical Byzantine Fault Tolerance,实用拜占庭容错算法 POW简介 获得多少货币,取决于挖矿贡献的有效“工作” “工作”为Block Hash计算,计算时间取决于机器的哈希运算速度 当节点拥有占全网n%的算力时,该节点即有n/100的概率找到Black Hash POS简介 根据持有货币的量和时间,给你发利息的一种制度; 发现了一个POS区块,币龄就会被清空为0,同时发放“利息”; 一个账户的余额越多,在同等算力下,就越容易发现下一个区块; DPOS简介 在常规POW和POS中,主要影响效率之处在于任何一个新加入的Block,都需要被整个网络所有节点做确认 DPOS则通过不同的策略,不定时的选中一小群节点,这一小群节点做新区块的创建,验证,签名和相互监督,这样就大幅度的减少了区块创建和确认的时间和算力成本 去中心化面临的挑战 如何保证所有节点状态都同步? 如何保证所有交易都广播到所有节点? 如何防止恶意篡改? DApp及以太坊虚拟机(EVM) CS应用与DApp的区别

在这里插入图片描述

去中心应用的优点 容错性好 防止单一机构的干扰 用于更容易相信该应用 去中心应用的缺点 更新困难 用户身份认证较为困难 程序扩充困难 DApp之间协作仍然比较困难 智能合约 智能合约:一段写在区块链上的代码 构建:区块链内的多个用户共同参与制定 存储:通过P2P网络扩散到每个节点,并存入区块链 执行:将满足条件的事务进行验证,达成共识后自动执行并通知用户 智能合约部署步骤

智能合约部署步骤

以太坊合约部署

以太坊合约部署

DApp开发框架 Truffle:代码->编译->部署->测试->打包 Solidity:智能合约编程语言 Web3.js:智能合约调用
DApp开发框架 以太坊虚拟机(EVM) 以太坊是一套可以实现分布式应用的平台协议。它的核心是可以执行任意复杂算法的以太坊虚拟机(EVM) 网络上的每一个节点都运行着EVM并执行相同的指令。因这个原因,以太坊经常被描述为“世界电脑”。 EVM设计目标 简单性(Simplicity) 确定性(Determinism) 节省空间的bytecode 专为区块链设计 更加简单的安全性保证 容易优化 EVM的一些特点 EVM是一个256位的机器 持久存储是相当昂贵的 Solidity编译器会为了减少gas的使用而做出相应的优化选择 EVM的不足 标准库较少 调试和测试相对困难 暂时不支持浮点数 代码无法升级 以太坊的问题 性能较差,公链TPS<20 区块链难以存储“大数据” "智能合约"难以实现复杂的算法 一些可能的解决方案 闪电网络,状态通道,不改变共识算法,这是一种小改进 Coco Blockchain Framework等,改变共识算法,基本达到商用水平,作为私链、联盟链是可以的 多种区块链混合。典型如Akasha等区块链媒体,IPES存储文章数据+区块链存储关键属性、执行合约 相关网络资料 Solidity:https://solidity-cn.readthedocs.io/zh/develop/ Truffle:https://truffle.tryblockchain.org/ Web3.js:https://web3js.readthedocs.io/en/v1.2.4/ Remix:https://remix-ide.readthedocs.io/en/latest/ 智能合约典型代码 Trufflex Box:http://truffleframework.com/boxes/ openzeppelin库:https://openzeppelin.org/ 迷恋猫合约:https://github.com/axiomzen/crytokitties-bounty 相关书籍 Mastering Ethereum: https://github/com/ethereumbook/ethereumbook 《区块链项目开发指南》 《以太坊技术详解与实战》
作者:游骑小兵



学习 以太坊 区块链

需要 登录 后方可回复, 如果你还没有账号请 注册新账号