第一部:
1,DApp与PoW
防止攻击的方法:PoW proof of work 工作量证明;经济惩罚 大量服务器算法 买彩票中彩概率
2,(1)去中心化自治组织(DAO)
Decentralized Autonomous Orgaization
通过智能合约将..............................联系在一起的新型组织形式
关键词 共有,运营5% 1/2 2/3 2/3
( 2 ) DApp的内部货币
让DApp能正常运行的数字货币 随时间 不随时间提供所有
关键词: 1安全结点才有
2维护’、“广告”、劳动赚取、
( 3 ) DApp许可
需要许可的DApp无内部货币; 没有许可的可能无法与有许可的一起工作
关键词: 大企业内部使用 , 自己提供内部环境 需要许可
( 4 ) 挖矿
四大佬挖金子 小镇=》区块链网络
关键词: 工具 时间
( 5 ) 为什么要挖矿
区块链 =》 公共记账本 记录所有交易
关键词: 并不是所有节点都有权力 记录交易 有权力的节点不白干 有手续费 扣除部分 如 100扣3个
要么真金白银去买 要么算力 两种方式获得
3.。。。。。。。。。。。。。。
4.以太坊 Ethereum
是一个去中心的平台;在这个平台上运行DApp; 或都说以太坊是DApp的容器;DApp使用智能合约(方式)编写。一个或多个智能合约可以一起组成一个DApp ;因此运行在以太坊上的程序就是智能合约;也就是说智能合约需要以太坊来运行
以太坊 = Android系统(相当于)
智能合约 = 运行在Android系统上的各种底层库
web3.js (调用智能合约的javascript接口)= Android SDK(java 编写的)
智能合约客户端(通过调用web3实现)= Android APP
智能合约为什么非要运行在以太坊上?
其实封装发底层的操作 容易让智能合约相互交互;还封装了poW pos等一致性协议
以太坊有一种内部货币:ether (以太). 为了发布智能合约或执行智能合约中的方法,需要支付以太。
5超级账本 (hyperledger)
超级账本项目是目前首个面向企业应用场景的 开源分布式 账本平台。
在linnux 基金支持,IBM inter Cisco 摩根大通 腾迅
关健词: Fabric项目 最早 首个 可插拔 可扩展 首面联盟链
联盟链:是指其共识过程受到预选节点控制的区块链;例子 :15个金融机构 2/3
6星际文件系统(IPFS)
interPlanetary File System :是一个面向全球的、点对点的分布式文件系统,
目标是为了补充(甚至是取代)目前非常流行的HTTP,会将所有具有相同文件系统的计算设备连接在一起;原理是用基于内容的地址替代基于域名的地址
关键词 : URL IPFS(验证内容) 哈希 速度更快 更安全,更健壮 更持 久
为什么有IPFS
HTTP
使用中心化的HTTP协议,当访问服务器的客户端多了以后,就会让显示页面的速度降低
BT : P2P
节省近60%的宽宽
IPFS 有历史版本回溯功能 与git类似
主干网,IPFS:只要大多数节点可以正常运行,整个网络就可以正常运行
IFFS的目标:不仅仅是web加速 还是 最终为了取代HTTP
7.去中心化的存储网络:Filecoin
Filecoin : 是一个去中心化的存储网络,让云存储变成一个算法市场。这个市场运行在被称为Filecoin的区块链上。区块链中 的矿工可以通过为客户提供存储空间来获取Filecoin(文件币),如果客户需要将文件保存到Filecoin区块链上,需要花费Filecoin(文件币)
矿工为了获取更多的Filecoin,需要向其他客户出租更多的存储空间
通过 Filecoin 区块链可以真正实现云中心化的云存储;实现人人为我 我为从的 互联网精神!
8.
9. geth 开发环境搭建
下载地址:
https://geth.ethereum.org/downloads
相关命令:
geth version 查询版本
geth account new 创建列表
geth account list 查询列表
查看列表文件:
\Users\Administrator\AppData\Roaming\Ethereum\keystore\
10. geth javascript控制台
web3.js :用来调用以及坊中的智能合约的javascript接口
相关命令:
geth console
geth console 2>>geth.log
11.智能合约
智能合约是运行在 以太坊 上的程序。
SOlidity 语言开发智能合约程序
编写智能合约:
pragma solidity ^0.4.1;
contract Calc
{
address public owner;
function add(uint x, uint y) returns(uint)
{
return x + y;
}
function sub(uint x,uint y) returns(uint)
{
return x - y;
}
}
测试地址:
http://remix.ethereum.org/
可配置测试版本:
http://remix.ethereum.org/#optimize=false&version=soljson-v0.4.19+commit.c4cbbb05.js