区块链开发笔记

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011565547/article/details/80740086

第一部:

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

阅读更多

更多精彩内容