[toc]
项目:
- DAO去中心化votingDapp开发实战
- 资产转移弹珠项目
如果我们在使用区块链写入数据的时候,如果是写入大量的数据,那么成本会非常的高,此时的性能和成本很高,那么如果我们使用版权保护的时候,我们会把文章存到ipfs🖱️(或者是其他第三方的数据库),此时将文章的内容data作为参数,生成一个hash,长度是不变的,就是SHA256
,我们可以把hash写入区块链,此时写入的成本就非常低了。
在我们溯源的时候,我们通过区块链取下hash,取下hash寻址,找到数据。
版权保护的产品,只要有一个字不一样,那么hash就是不一样,此时就会做到版权保护。
npm install blockchain-cli -g
此时输入
blockchain
此时生成一个控制台,我们输入bc
此时可以生成一个创世区块
前四个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 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记录自己的地址
选择ENVIRONMENT(环境)==injected Web3==
injected :注入
连接到metamask钱包
我们部署合约得过程就是生成得过程
查看etherscan测试网络
由此可见,我们在往以太坊写入数据得时候,就会当作一笔交易,此时需要区块链的存储空间,需要花费手续费,但是我们取出数据的过程是不需要花费手续费的。
公链一定需要矿工去验证,而且必须要有网络(有网络才可以部署合约)
私有链需要去挖矿,此时我们可以使用联盟链的,使用的是POS权益证明
在联盟链中由我们指定的结点来达成共识,如今的联盟链更有应用前景,包括我们使用超级账本开发的全名学习DAPP
我认为区块链最实用的场景不应该是去中心化的,而是半中心化去中介模式,包括我暑假实习,租房被中介坑,或者是之前参加志愿者,很多人捐款到武汉红十字会,担心资金流失。