区块链零散知识记录

区块链三圈:

  • 币圈
  • 链圈
  • 矿圈

钱包

  • on-chain
  • off-chain

区块链分类:

  • 公有链
  • 私有链
  • 联盟链

一、比特币

源码

底层网络:

  • 并不是虚拟货币比特币本质上是记账本

  • 不可篡改

  • 公开

  • 安全

  • 可编程

  • 匿名

  • 去中心

  • 合约规定舍弃短的链(孤块),所以只能硬分叉,并且各自使用不同客户端运行维护

  • 总共发行20999999.9769比特币,约为2100万枚

  • 区块高度加210000 ,挖矿奖励减半(约到2137年,比特币的发行速率将递减在每区块1聪比特币)

  • 大约10分钟开采一个区块,合约会根据难度控制时间(奖励减半周期为四年)

时间挖矿奖励高度
2009.1500
2012.1125210000
2016.712.5420000
2020.56.25630000
20243.125840000
20281.5625950000

矿机的算力大都消耗在争夺记账权上

比特币第一次区块奖励减半前的价格:2.55美元
比特币第一次区块奖励减半后一年的价格:1,037美元
比特币第二次区块奖励减半前的价格:268美元
比特币第二次区块奖励减半前一年的价格:2,525美元

二、以太坊

  • 叔块
  • 软分叉
  • 十来秒产生一个区块

幽灵协议:孤块内容会回到交易池中,后面子节点越多,权重越大,根据权重选择分叉的链

侧链:完成其他功能,如前链找后链、增加区块大小、闪电网络、隔离见证(把校验信息单独放到一个块中,使主链中块记录更重要的交易信息)

ETH网络结构:

  1. 应用层:DAPP、钱包、Geth(go语言实现)、web3.js
  2. 网络层:p2p节点发现、数据传输广播socket、http
  3. 合约层:EVM、POW+POS、GHOST
  4. 激励层:挖矿奖励、叔块奖励、GAS
  5. 数据层:账户信息——>余额、代码、交易数据、levelDB

以太坊算力查看:https://ethstats.net/,计算单位 TH/s,H代表hash,

1KH/s=1000次/shash

1MH/s=10^6H/s

1GH/s=10^9H/s

1TH/s=10^12H/s

以太坊ICO 7200w币,挖矿奖励每年25%

eth旷工奖励:挖矿奖励、gas奖励、叔块奖励(引用者和挖叔块者获得)

网络发现:由于区块链网络没有中心节点,所以各个服务器之间是如何相互发现的呢?

​ 在bt种子文件中,记录了广播服务器地址,链接广播地址后,会把自己节点信息注册上去,服务列表拉去下来(有点类似于注册中心)

纯中心化实现方法列举:

  • scan
  • 内置一些ip地址,或域名(比特币通过内置域名中解析到相邻的节点)

以太坊的区块大小 动态调整(根据gas调整,gas有上限(矿工投票决定上限))

EVM:

1、结构

  • memory 内存:包含方法内容,生命周期随着方法结束,空间释放,临时变量,消耗gas比较小
  • storage:链上,高gas,永久持久化
  • 栈:后进先出,执行函数比较快,读写速度快,gas比较低,容量非常低

2、特点

  • 交易验证

  • 运行智能合约

  • 完全隔离

  • 全节点运行(资源浪费)

  • 执行代码前,预付费

  • outOfGas,回滚

  • 256位(浪费)

  • 算术、位、逻辑运算,比较、跳转

solidity:静态语言;solidity

在线IDE:http://remix.ethereum.org/

智能合约代码:

pragma solidity ^0.5.12;
contract HelloWord {
    
    //钱包地址类型位address
    mapping(address => uint) map;
    
    function getAge(address _addr) public view returns(uint age){
        return map[_addr];
    }
    
    function seNowAge(uint _age) public {
        map[msg.sender] = _age;
    }
    
    //无符号int,默认256位
    uint age;
    
    function setAge(uint _age) public{ 
        age = _age;
    }
    
    //view表示该方法没有计算
    function getAge() public view returns(uint){
        return age;
    }
    
    //pure表示里面会有计算
    function add(uint a,uint b)public pure returns(uint result,uint r_a){
        return (a + b,a);
    }
    
    function getUserAccount()public view returns(address addr){
        return msg.sender;
    }
    
}

solidity的构造器是在部署到链上的时候被调起的,之后就不会被调起了。

pragma solidity ^0.5.12;

contract mycoin{
    
    string name;
    uint age;
    
    //string必须必须加memory关键字
    constructor(string memory initName, uint initAge) public {//构造器
        name = initName;
        age = initAge;
    }
    
    function getinfo()public view returns(string memory _name, uint _age){
        return(name,age);
    }
    
}

ERC 20协议,提供了接口,规范。

ERC 721协议

keystone=(私钥+地址)

在这里插入图片描述

三、其他币

EOS:

由持币的股东选举N个超级节点,只有超级节点可以在链上加区块

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值