Skip to content
This repository has been archived by the owner on May 9, 2023. It is now read-only.

Latest commit

 

History

History
120 lines (67 loc) · 3.27 KB

File metadata and controls

120 lines (67 loc) · 3.27 KB

fabric项目整体构架设计、开发、部署

[toc]

项目:

  1. DAO去中心化votingDapp开发实战
  2. 资产转移弹珠项目

如果我们在使用区块链写入数据的时候,如果是写入大量的数据,那么成本会非常的高,此时的性能和成本很高,那么如果我们使用版权保护的时候,我们会把文章存到ipfs🖱️(或者是其他第三方的数据库),此时将文章的内容data作为参数,生成一个hash,长度是不变的,就是SHA256,我们可以把hash写入区块链,此时写入的成本就非常低了。

在我们溯源的时候,我们通过区块链取下hash,取下hash寻址,找到数据。

版权保护的产品,只要有一个字不一样,那么hash就是不一样,此时就会做到版权保护。

在终端生成创世区块

npm install blockchain-cli -g

此时输入

blockchain

此时生成一个控制台,我们输入bc此时可以生成一个创世区块

在POW工作量证明proof - of - work system

前四个0是有效散列的最低要求。所需要的前导0的数量称之为难度

function isValidHashDifficulty(hash,difficulty){
    for(var i = 0,b=hash.lenth;i<b;i++){
        if(hash[i]!='0'){
            break;
        }
    }
    return i>=difficulty;
}

nonce:表示的是btc挖苦的难度

挖矿是一个找nonce值得过程,nonce值一直迭代,直到hash值有效为止

[smart contract]()

smart contract is brockchain

eth为例,使用remix部署smart contract

pragma solidity 0.4.13;

contract Apple {
    uint price;
    uint size;

    //构造函数
    function Apple() public{
        price = 11000;
        size = 15;
    }

    function getSize() constant returns(uint){
        
        return size;
    }
}

使用metamask记录自己的地址

image-20220507140449155


选择ENVIRONMENT(环境)==injected Web3==

injected :注入

连接到metamask钱包

我们部署合约得过程就是生成得过程

image-20220507141132460

查看etherscan测试网络

image-20220507141338405

由此可见,我们在往以太坊写入数据得时候,就会当作一笔交易,此时需要区块链的存储空间,需要花费手续费,但是我们取出数据的过程是不需要花费手续费的。

公链一定需要矿工去验证,而且必须要有网络(有网络才可以部署合约)

私有链需要去挖矿,此时我们可以使用联盟链的,使用的是POS权益证明


在联盟链中由我们指定的结点来达成共识,如今的联盟链更有应用前景,包括我们使用超级账本开发的全名学习DAPP

我认为区块链最实用的场景不应该是去中心化的,而是半中心化去中介模式,包括我暑假实习,租房被中介坑,或者是之前参加志愿者,很多人捐款到武汉红十字会,担心资金流失。