柚子快报激活码778899分享:区块链学习笔记

http://yzkb.51969.com/

1.从faucet里面获取0.25代币:

24h内只能获取一次:Get Testnet LINK Tokens | Chainlink Faucets

2.笔记,测试

区块链示例:https://andersbrownworth.com/blockchain/block

Nonce:1

hash:31ee046c4ccb858a794e279118d40fceab698b44a947ad1fbafad9c01612e978

3. {% post_link whatbc 区块链记账原理 %}

        我们了解到,每次记账的时候会把上一个块的Hash值和当前的账页信息一起作为原始信息进行Hash。如果仅仅是这样,显然每个人都可以很轻松的完成记账。

        为了保证10分钟左右只有一个人可以记账,就必须要提高记账的难度,使得Hash的结果必须以若干个0开头。同时为了满足这个条件,在进行Hash时引入一个随机数变量。

       改变Hash的原始信息的任何一部分,Hash值也会随之不断的变化,因此在运算Hash时,不断的改变随机数的值,总可以找到一个随机数使的Hash的结果以若干个0开头,率先找到随机数的节点就获得此次记账的唯一记账权。

XXXerror:要在其前面加0000,得到新的Nonce。

可能是得到0000开头的一组hash,根据新Nonce和data,

挖矿后:

数字签名

私钥:123456

公钥:

私钥加message:=message signature

验证:message+公钥=signature(你的签名)

1.你的私钥用来对信息签名,公钥让别人来验证签名是你的;

以太坊地址是由公钥衍生过来的,eg,取公钥后20字节

 2.验证

        在节点成功找到满足的Hash值之后,会马上对全网进行广播打包区块,网络的节点收到广播打包区块,会立刻对其进行验证。

        如果验证通过,则表明已经有节点成功挖出区块,自己就不再竞争当前区块打包,而是选择接受这个区块,记录到自己的账本中,然后进行下一个区块的竞争猜谜。

区块奖励:(gas)

一个链 用的人越多,发送交易就越贵在区块链中,区块存储交易的空间有限,为了让你的交易能被写在某个区块中,你需要支付手续费,根据情况调节base gas,调节依据是,人员交易数量,被写入的数量上下增减

区块链概念

网络进入门槛就是一些硬件要求和软件运行环境,你能运行软件就能加入网络;每个人都加入参与网络,这就是真正的去中心化;(我们只是提供一种或可解决的方法罢了)github,几分钟内运行一个以太坊节点;传统世界,APP被单一主体运营,崩坏即无;以太坊,运算共识consensus:机制,在状态和数值上达成一致。两种:Chain Selection链选择算法,Sybil Resistance抗女巫攻击机制;防止用户使用大量的假身份。区块奖励:有区块链协议自身发给节点的,增加密货币的流通量,比特币减半,区块奖励减半?以太坊:区块奖励以太币,比特币网络:比特币

Sybil Resistance

PoW工作量证明proof of work(矿工) 我们怎样确定哪个区块链是正确的链? Nakamoto Consensus 中本聪共识(比特币和以太坊1.0中使用,包括PoW和最长链规则) PoS权益证明(验证者)以太坊2.0 放置一些抵押物以保证不作恶,stake,质押 Scalability 可扩展性 Sharding 分片,多个区块链的区块链有一个主链会协调一些不同的链,将他们链接在一起 layer1:base layer blockchain implementation 基础层(比特币,以太坊,avalanche) layer2:any application built on top of a layer2

1.部署到测试网上

部署步骤先改变网络,然后进行connect,随后account会自动填入,接着点击Deploy 等待一会儿,出现绿色对√ 把合约部署到区块链上会修改区块链状态,因此我们必须支付gas

gas limit 和gas uasge单纯发以太币要高得多,因为我们把大量数据送到了链上,进而增加了大量的计算。

进行数据store:会花费gas okay!!!!已经成功将首个合约部署到了一个测试网上!!

2.尽量最后一步部署到测试网上,因为漫长等待和花费

3.总结

        EVM,Ethereum Virtual Machine 是以太坊区块链上部署智能合约的一个标准,并且任何实现某种EVM的区块链,你都可以把solidity代码部署上去。

//首先确定solidity的版本,因为他经常更新版本

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.8;//可以写成^0.8.8 比此新的版本都可以适用此代码

//EVM,Ethereum Virtual Machine 是以太坊区块链上部署智能合约的一个标准,

//并且任何实现某种EVM的区块链,你都可以把solidity代码部署上去.

//部署合约

contract SimpleStorage{

//booleean,unit(无符号数,+),int,address(地址),bytes

//bool hasFavoriteNumber = true;

// uint128 f = 123;

//string text = "five";

//address myaddress = 0x8c7F90a1fD9B2bc3b936aa918c9f6C489B677750;

//bytes32 bytee = "cat";//自动转换为byte,0x123hdsk

//This gets initialized to zero!

uint256 FavoriteNumber; //全局变量

//创建一个新的people并将其分配给这个person 变量

// People public person = People({FavoriteNumber:2,name:"xaiw"});

//当你创建一个映射时,会把所有东西都初始化为空,故而查询时找不到之前的数组信息

//需要重新添加 一下

mapping(string => uint256) public namaTofavoriteNumber;

struct People{

uint256 FavoriteNumber;

string name;

}

//多个的话,可以写成数组的形式

//uint256[] public FavoriteNumber;

People[] public people; //空列表;

//function

function store(uint256 _FavoriteNumber) public {

FavoriteNumber = _FavoriteNumber;

}

//view,pure

function retrieve() public view returns(uint256){

return FavoriteNumber;

}

function addPerson(string memory _name, uint256 _FavoriteNumber) public {

// people.push(People(_FavoriteNumber, _name));//push表示添加;创建新的People对象,他将接收_FavoriteNumber,and name

People memory newPerson = People(_FavoriteNumber,_name);

// People memory newPerson = People({FavoriteNumber:_FavoriteNumber,name:_name}); //效果相同

people.push(newPerson);

//甚至直接

//people.push(People(_FavoriteNumber,_name));

//我们把人添加到数组中,我们也要把人添加到映射中

namaTofavoriteNumber[_name] = _FavoriteNumber;

}

}

//solidity基础:EVM store in six places:Stack,memory,storage,calldata,code,logs

//calldata,不可被修改的临时变量,storage永久修改

//mapping映射,字典,key键值对

柚子快报激活码778899分享:区块链学习笔记

http://yzkb.51969.com/

精彩链接

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。