您正在查看: Other Chain 分类下的文章

btcpool 编译安装,以及ETH私池搭建

部署条件

部署系统: ubuntu 18.04

矿池交互图

编译源代码

git clone https://github.com/btccom/btcpool.git

安装依赖

sudo apt-get update
sudo apt-get install -y git build-essential autotools-dev libtool autoconf automake pkg-config cmake \
                   openssl libssl-dev libcurl4-openssl-dev libconfig++-dev \
                   libboost-all-dev libgmp-dev libmysqlclient-dev libzookeeper-mt-dev \
                   libzmq3-dev libgoogle-glog-dev libhiredis-dev zlib1g zlib1g-dev \
                   libsodium-dev libprotobuf-dev protobuf-compiler

注意:不再建议libevent-dev从软件源安装。 libevent的发行版和稳定版本将在sserver中导致死锁错误(问题#75)。建议您使用下面的命令从它的master分支手动构建libevent

有时一个或两个软件包由于依赖关系问题而失败,您可以尝试aptitude

sudo apt-get update
sudo apt-get install -y aptitude
sudo aptitude install git build-essential autotools-dev libtool autoconf automake pkg-config cmake \
                   openssl libssl-dev libcurl4-openssl-dev libconfig++-dev \
                   libboost-all-dev libgmp-dev libmysqlclient-dev libzookeeper-mt-dev \
                   libzmq3-dev libgoogle-glog-dev libhiredis-dev zlib1g zlib1g-dev \
                   libsodium-dev libprotobuf-dev protobuf-compiler
# Input `n` if the solution is `NOT INSTALL` some package.
# Eventually aptitude will give a solution that downgrade some packages to allow all packages to be installed.

安装ZooKeeper

安装依赖

sudo apt-get install -y zookeeper zookeeper-bin zookeeperd

创建所需目录

mkdir -p /data/work/zookeeper
mkdir /data/work/zookeeper/version-2
touch /data/work/zookeeper/myid
sudo chown -R zookeeper:zookeeper /data/work/zookeeper

设置机器id

sudo echo 1 > /data/work/zookeeper/myid

修改配置

sudo vim /etc/zookeeper/conf/zoo.cfg

initLimit=5
syncLimit=2
clientPort=2181
clientPortAddress=127.0.0.1
dataDir=/data/work/zookeeper
#伪分布式
server.1=127.0.0.1:2888:3888

启动服务

#start/stop service
sudo service zookeeper restart
#service zookeeper start/stop/restart/status

安装Kafka

安装依赖

sudo apt-get install -y default-jre

安装java 1.8

sudo apt-get update
sudo apt-get install openjdk-8-jdk
update-alternatives --display java
sudo update-alternatives --config java
java -version

安装kafka

mkdir -p /data/work/kafka
cd /data/work/kafka
wget https://archive.apache.org/dist/kafka/0.11.0.2/kafka_2.11-0.11.0.2.tgz
tar -zxf ./kafka_2.11-0.11.0.2.tgz --strip 1

编辑配置

vim /data/work/kafka/config/server.properties

broker.id=1
offsets.topic.replication.factor=1
message.max.bytes=20000000
replica.fetch.max.bytes=30000000
log.dirs=/data/work/kafka-logs
listeners=PLAINTEXT://127.0.0.1:9092
#伪分布式
zookeeper.connect=127.0.0.1:2181
#start server
cd /data/work/kafka
nohup /data/work/kafka/bin/kafka-server-start.sh /data/work/kafka/config/server.properties > /dev/null 2>&1 &

遇到问题

yw_manager@web204_234:/data/work/kafka$ /data/work/kafka/bin/kafka-server-start.sh /data/work/kafka/config/server.properties
[0.000s][warning][gc] -Xloggc is deprecated. Will use -Xlog:gc:/data/work/kafka/bin/../logs/kafkaServer-gc.log instead.
Unrecognized VM option 'PrintGCDateStamps'
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
解决方案

降级java 1.8

从其master分支构建libevent

注意:版本2.1.9-beta之前的libevent将在sserver中导致死锁错误(问题#75)。请使用release-2.1.9-beta和更高版本。

wget https://github.com/libevent/libevent/releases/download/release-2.1.10-stable/libevent-2.1.10-stable.tar.gz
tar zxf libevent-2.1.10-stable.tar.gz
cd libevent-2.1.10-stable
./autogen.sh
./configure --disable-shared
make -j$(nproc) && sudo make install
编译librdkafka-v0.9.1
wget https://github.com/edenhill/librdkafka/archive/0.9.1.tar.gz
tar zxvf 0.9.1.tar.gz
cd librdkafka-0.9.1
./configure && make -j$(nproc) && sudo make install

# if you want to keep static libraries only
sudo rm -v /usr/local/lib/librdkafka*.so /usr/local/lib/librdkafka*.so.*

下载Bitcoin源码,并建立链接到BTCPool

支持ETH的矿池用BTC选项

mkdir work
sudo mv work/ /data/
cd /data/work

wget -O bitcoin-0.16.0.tar.gz https://github.com/bitcoin/bitcoin/archive/v0.16.0.tar.gz
tar zxf bitcoin-0.16.0.tar.gz

git clone https://github.com/btccom/btcpool.git
cd btcpool
mkdir build
cd build

# Release build:
cmake -DJOBS=4 -DCHAIN_TYPE=BTC -DCHAIN_SRC_ROOT=/data/work/bitcoin-0.16.0 ..
make -j$(nproc)

# Debug build:
cmake -DCMAKE_BUILD_TYPE=Debug -DCHAIN_TYPE=BTC -DCHAIN_SRC_ROOT=/data/work/bitcoin-0.16.0 ..
make -j$(nproc)
常见问题

使用当前最新版本bitcoin v0.21.0提示如下错误,暂时未跟进该问题,先用v0.16.0版本测试

CMake Error at CMakeLists.txt:267 (message):
  /data/work/bitcoin-0.21.0/src/crypto/libbitcoin_crypto.a not exists!

估计是本地已安装boost版本问题,本项目依赖boost v1.65,删除本地已安装boost,重新运行第一步,安装依赖

/usr/local/include/boost/thread/pthread/condition_variable.hpp:131: undefined reference to `boost::this_thread::interruption_point()'
collect2: error: ld returned 1 exit status
CMakeFiles/jobmaker.dir/build.make:114: recipe for target 'jobmaker' failed
make[2]: *** [jobmaker] Error 1
CMakeFiles/Makefile2:125: recipe for target 'CMakeFiles/jobmaker.dir/all' failed
make[1]: *** [CMakeFiles/jobmaker.dir/all] Error 2
Makefile:140: recipe for target 'all' failed
make: *** [all] Error 2

运行测试

./unittest
I0125 16:19:24.673416  7530 TestMain.cc:73] BTC unittest version 2020.06.09-11-fix-jobmaker-kafka-17-g0127a750
[==========] Running 91 tests from 24 test cases.
[----------] Global test environment set-up.
[----------] 1 test from BitcoinUtils
[ RUN      ] BitcoinUtils.GetBlockRewardBitcoin
[       OK ] BitcoinUtils.GetBlockRewardBitcoin (1 ms)
[----------] 1 test from BitcoinUtils (1 ms total)
...
[----------] Global test environment tear-down
[==========] 91 tests from 24 test cases ran. (4711 ms total)
[  PASSED  ] 91 tests.

初始化btcpool

初始化目录

cd /data/work/btcpool/build
bash ../install/init_folders.sh

设置全节点

docker for Parity

https://github.com/btccom/btcpool/tree/master/docker/eth-parity/latest

docker for Geth

https://github.com/btccom/btcpool/tree/master/docker/eth-geth/v1.8.23-btcpool-patched

安装mysql

sudo apt-get update
sudo apt-get install mysql-server
systemctl status mysql.service

初始化mysql数据库以及表

cd /data/work/btcpool/install
sudo mysql -uroot -p

CREATE DATABASE bpool_local_db;
USE bpool_local_db;

SOURCE bpool_local_db_ETH.sql;

CREATE DATABASE bpool_local_stats_db;
USE bpool_local_stats_db;
SOURCE bpool_local_stats_db.sql;

参考文档

https://github.com/btccom/btcpool-ABANDONED/blob/master/docs/INSTALL-ZooKeeper.md
https://github.com/btccom/btcpool-ABANDONED/blob/master/docs/INSTALL-Kafka.md
https://github.com/btccom/btcpool/blob/master/docs/INSTALL-BTCPool.md
https://www.pianshen.com/article/5122807736/
https://en.bitcoin.it/wiki/Merged_mining_specification
https://github.com/btccom/btcpool-go-modules/tree/master/mergedMiningProxy
https://blog.csdn.net/a1291985595/article/details/108799549

基于Python的开源量化交易系统开发框架

开源地址: https://github.com/vnpy/vnpy

功能特点

  1. 全功能量化交易平台(vnpy.trader),整合了多种交易接口,并针对具体策略算法和功能开发提供了简洁易用的API,用于快速构建交易员所需的量化交易应用。

  2. 覆盖国内外所有交易品种的交易接口(vnpy.gateway):

    • 国内市场

      • CTP(ctp):国内期货、期权

      • CTP Mini(mini):国内期货、期权

      • CTP证券(sopt):ETF期权

      • 飞马(femas):国内期货

      • 恒生UFT(uft):国内期货、ETF期权

      • 飞创证券(sec):ETF期权

      • 宽睿(oes):国内证券(A股)、ETF期权

      • 中泰XTP(xtp):国内证券(A股)、ETF期权

      • 恒生期权(hsoption):ETF期权

      • 华鑫奇点(tora):国内证券(A股)、ETF期权

      • 飞鼠(sgit):黄金TD、国内期货

      • 金仕达黄金(ksgold):黄金TD

      • 鑫管家(xgj):期货资管

      • 融航(rohon):期货资管

      • 中汇亿达(comstar):银行间市场

    • 海外市场

      • 富途证券(futu):港股、美股

      • 老虎证券(tiger):全球证券、期货、期权、外汇等

      • Interactive Brokers(ib):全球证券、期货、期权、外汇等

      • 易盛9.0外盘(tap):全球期货

      • 直达期货(da):全球期货

      • MetaTrader 5(mt5):外汇、CFD、期货、股票

      • Alpaca(alpaca):美股(零佣金)

      • 佳兆业投资(kasia):港股

    • 数字货币

      • BitMEX(bitmex):数字货币期货、期权、永续合约

      • Bybit(bybit):数字货币永续合约

      • 币安(binance):数字货币现货

      • 币安永续(binances):数字货币永续合约

      • OKEX(okex):数字货币现货

      • OKEX永续(okexs):数字货币永续合约

      • OKEX期货(okexf):数字货币期货

      • OKEX期权(okexo):数字货币期权

      • 火币(huobi):数字货币现货

      • 火币期货(huobif):数字货币期货

      • 火币永续(huobis):数字货币永续

      • 火币期权(huobio):数字货币期权

      • Gate.io永续(gateios):数字货币永续合约

      • Deribit(deribit),数字货币期权、永续合约

      • Bitfinex(bitfinex):数字货币现货

      • Coinbase(coinbase):数字货币现货

      • Bitstamp(bitstamp):数字货币现货

      • 1Token(onetoken):数字货币券商(现货、期货)

    • 特殊应用

      • RPC服务(rpc):跨进程通讯接口,用于分布式架构
  3. 开箱即用的各类量化策略交易应用(vnpy.app):

    • cta_strategy:CTA策略引擎模块,在保持易用性的同时,允许用户针对CTA类策略运行过程中委托的报撤行为进行细粒度控制(降低交易滑点、实现高频策略)

    • cta_backtester:CTA策略回测模块,无需使用Jupyter Notebook,直接使用图形界面直接进行策略回测分析、参数优化等相关工作

    • spread_trading:价差交易模块,支持自定义价差,实时计算价差行情和持仓,支持半自动价差算法交易以及全自动价差策略交易两种模式

    • option_master:期权交易模块,针对国内期权市场设计,支持多种期权定价模型、隐含波动率曲面计算、希腊值风险跟踪等功能

    • portfolio_strategy:组合策略模块,面向同时交易多合约的量化策略(Alpha、期权套利等),提供历史数据回测和实盘自动交易功能

    • algo_trading:算法交易模块,提供多种常用的智能交易算法:TWAP、Sniper、Iceberg、BestLimit等,支持对接外部智能算法交易服务(如金纳算法)

    • script_trader:脚本策略模块,针对多标的组合类交易策略设计,同时也可以直接在命令行中实现REPL指令形式的交易,不支持回测功能

    • market_radar:市场雷达模块,允许用户基于自定义的公式实时计算任意合约组合数据,公式支持标准Python运算语法以及内置函数

    • paper_account:模拟交易模块,纯本地化实现的模拟交易功能,基于交易接口获取的实时行情进行委托撮合,提供委托成交推送以及持仓记录

    • chart_wizard:K线图表模块,基于RQData数据服务(期货)或者交易接口(数字货币)获取历史数据,并结合Tick推送显示实时行情变化

    • portfolio_manager:投资组合模块,面向各类基本面交易策略,以独立的策略子账户为基础,提供交易仓位的自动跟踪以及盈亏实时统计功能

    • rpc_service:RPC服务模块,允许将某一VN Trader进程启动为服务端,作为统一的行情和交易路由通道,允许多客户端同时连接,实现多进程分布式系统

    • data_manager:历史数据管理模块,通过树形目录查看数据库中已有的数据概况,选择任意时间段数据查看字段细节,支持CSV文件的数据导入和导出

    • data_recorder:行情记录模块,基于图形界面进行配置,根据需求实时录制Tick或者K线行情到数据库中,用于策略回测或者实盘初始化

    • excel_rtd:Excel RTD(Real Time Data)实时数据服务,基于pyxll模块实现在Excel中获取各类数据(行情、合约、持仓等)的实时推送更新

    • risk_manager:风险管理模块,提供包括交易流控、下单数量、活动委托、撤单总数等规则的统计和限制,有效实现前端风控功能

Filecoin 技术调研

项目介绍

官网: https://filecoin.io/zh-cn

github: https://github.com/filecoin-project

区块浏览器:https://filscan.io/#/

Filecoin简单来说就是一个去中心化分布式付费存储网络,用户可以付费存储和付费下载数据。矿工提供存储和检索下载的服务,同时收取用户存储和下载的费用。同时网络会增发代币,以此激励矿工提供存储服务,同时矿工需要质押一些代币,来作为服务质量的担保,如果审查不达标,会遭到惩罚,以此优化整个网络的存储质量。至于轮到哪个节点出块,是随机命中,命中率与当前节点算力多少成正比。节点的算力多少取决于该节点存储的存储数据占全网的比例。同时矿工必须定期提交一次复制证明,证明节点内的数据还是有效存储的。链上也会在每个出块时间随机发出挑战challenge,来验证数据是否存在。如果失败,则被扣除抵押币,以此来验证节点服务是否正常优质以及惩罚作恶。

代币信息

代币符号: FIL

发行总量:20亿

代币分配

矿工占比:70%(14亿)

实验室占比:15%

ICO占比:10%

基金会占比:5%

预计出矿量

如果按照每年365天计算,平均每天分发约319726枚FIL代币,约32万枚。而且FIL币的产出也非线性产出,一般是前期产出较快,然后逐步放缓。按照官方给出的产出规则来看,第一个6年,FIL代币产出总量将达到7亿枚。那么第一年的产出将会最少达到1亿多枚

减半时间

6年

挖矿原理

Filecoin的矿工分为两种:存储矿工和检索矿工。

存储矿工收益
  • 存储收益:帮用户存储数据,获取用户支付的存储费用(价值交换)
  • 新币分发:参与共识协议,获取新币分发(上帝发币)
  • 交易手续费:参与共识协议,获取交易手续费
检索矿工收益:
  • 检索收益:用户下载数据,获取用户支付的下载数据费用(FIL)

对于存储矿工可以理解为是共享出自己的硬盘资源并获得酬劳。当有用户提出存储需求时,用户需要支付代币作为存储的酬劳。然后,系统会把一个订单拆分成很多的小订单,矿工们自动进行抢单,谁的存储空间符合,且距离更近,传输速度更快,谁就更有可能抢到一部分存储订单。抢到后,矿工需要用代币进行抵押,以确保自己能够完成存储任务,如果最终顺利完成,抵押的代币将会退回,同时获得这个订单的相应酬劳。如果执行过程中出现错误,系统将扣除矿工的抵押代币作为处罚。

挖矿算力权重

存储矿工当前的有效存储数据与全网的存储数据所占的比例,这也是所谓的算力的大小,并不是硬盘空间越大,算力就越大。

预期共识爆块

每一轮出块,最重要的一个步骤就是选举,这里的选举实际上是自己进行计算,不需要大家投票。用掷飞镖来比喻的话,基本上分成以下几个步骤

  1. 每一个矿工面前有一个大飞镖盘,面积与整个网络的总算力相当(这是已知的),每个人都一样。
  2. 每一个矿工的算力各有差异,仅占总算力的一小部分。每一个矿工的飞镖盘上都有一块材料是木头,面积与此矿工的算力相当;而其他部分都是金属。
  3. 但是飞镖盘上面蒙上了一层纸,哪一部分是木头的不知道,也就是说,只有上帝知道(这有系统的可验证随机函数确定,主要通过散列和签名实现)。
  4. 每一个矿工自由掷出飞镖到飞镖盘,命中木头部分,上靶(胜出),否则,掉落(等待下一轮继续)。
  5. 下一轮重复,但注意,木头部分每一轮都会换地方,只有上帝知道换到了哪里。

每一轮上靶者称为这一轮的 Leader,即选举胜出者,有资格出块。

预期共识有一个缺点:每一轮选举出来的Leader,可能是多个,也可能没有,平均下来是一个。这个问题该怎么解决?

  很简单,都当领导,各自产生区块,而且每一个区块都有效。

  也就是说同一个高度就可能有多个区块。怎么处理?办法是,把这些区块再打包,称为一个tipset。因此,在Filecoin中,链并不能完全称为区块链,而应该是tipset链。

  一个tipset里包含一个或多个区块。也有的轮次中的选举没有领导人,怎么办呢?那就跳过,这个高度就是一个空块。这样一来,尽管不够均匀,但形成了链,而且是收敛的。

  当前Filecoin用来选举的协议是EC协议(Expected Consensus )。SSLE将会是改进版协议。还在开发完善中。

img

FIL价值流转

数据来源

存储矿工的数据来源:

用户付费存储数据

检索矿工的数据来源

  • 自己作为存储矿工,现在的用户数据
  • 自己从其他矿工那里购买下载的数据
  • 自己找的一些数据

收益影响因素

存储矿工 (努力让更多的用户把数据存储到你这里)

  • 网络速度
  • 定价的存储价格

检索矿工 (努力给更多的用户提供数据)

  • 网络带宽
  • 网络时延
  • 存储的数据是否是用户所需
  • 定价的检索数据价格

调优因素

存储矿工

  • 动态调整存储的价格,以获取更多的收益

检索矿工

  • 动态调整检索数据价格,以获取更多的收益
  • 努力找到更多的用户感兴趣的数据
  • 提高网络的带宽和降低网络的延时

简述复制证明和时空证明

复制证明是为了证明节点确实存了数据,时空证明是为了证明节点一直对其有效存储。

复制证明的原理

复制证明(PoRep),证明数据的一个单独的拷贝已经在一个特定的扇区内创建成功。复制证明由封印(Seal)操作完成,封印操作创建一份数据的拷贝,并产生相应的复制证明。这是一种新型的存储证明方案,它能够让存储矿工说服用户和其他矿工,表明数据已经被复制到了它的矿机上。

时空证明的原理

它证明一定数量的已封印的扇区,在一定的时间范围内存在于指定的存储空间之中 —而不是证明者临时生成的数据(这被视为攻击)。

时空证明可以理解为持续的复制证明,即矿工必须不断的生成证明,并在一个提交周期内提交存储证明,如果存储服务商没有在提交周期内连续及时提交证明,会被系统扣除部分代币。

生成时空证明的过程跟复制证明非常相似,只是时空证明的输入是以上一生成的证明做为输入参数,这样能保证证明生成的连续性,PoSt可以证明在该段时间内矿工存储了特定的数据,并且利用时间戳锚定这些证明链,这样即使验证者(verifier)不在线,也能够在将来去验证矿工在该段时间内生成了证明链,PoSt会被提交到链上用来产生新的区块。

共识机制

Filecoin抛弃了以往区块链的高度依赖计算资源和能源消耗形成的共识机制,Filecoin重新利用有意义的工作来形成共识机制,这就是PFT(power fault tolerance),进化版的拜占庭容错机制,将矿工当前在网中使用的存储量和生成的时空证明转化为投票的权重,然后节点利用这个权重进行选举产生一个或者多个领导节点,领导节点创建新的block并把它们传播到网络。

预期共识

Filecoin区块链的主要出块共识,是一种概率拜占庭容错共识机制,它的目标是使得矿工出块的权益,与自己对存储的贡献成正比。也就是说,矿机(矿池)被使用的有效存储空间,在整个网络中的总使用空间中所占比例,就是此矿机(矿池)能够出块的概率

复制证明(Proof-of-Replication)

PoRep是PoS的进阶版,可以证明矿工已将数据(data)存储,并保证每份数据存储的独立性,同时防止女巫攻击、外源攻击和生成攻击。复制证明避免让矿工可以透过不同方法让自身存储数据小于承诺存储数据,以获得额外报酬。

女巫攻击(Sybil Attack):

举例,一个不怀好意的人,名字叫女巫,Ta伪造多个身份,给大家广播说我真的存了100份文件,实际只存在1个。女巫出示自己的100个证明,欺骗了系统,那么女巫就攻击成功。

外部数据源攻击(Outsourcing Attack):

当攻击者收到检验者要求提供存储了数据证明的时候,攻击者从别的矿工那里生成证明,欺骗大家说自己一直存储了那份数据,但实际上没有存储,攻击成功。

生成攻击(Generation Attack):

攻击者可以使用某种方式生成数据,当检验者验证的时候,攻击者利用重新生成的数据来完成存储证明,攻击成功

时空证明 (Proof-of-Spacetime)

矿工证明自己花费了Spacetime资源,即一定时间内的存储空间的使用,PoSt是基于复制证明实现的。即使验证者不在线,也能够在未来去验证矿工在该段时间内生成了证明链,有效防止临时生成数据攻击。

数据持有性证明 (Provable-Data-Possession)

矿工完成了用户存储数据的订单后,为了证明数据已经被自己存储,用户可以多次验证矿工是否将其数据保持存储的状态。

可检索证明 (Proof-of-Retrievability)

与PDP类似,证明矿工存储的数据是可以用来查询的。

几个证明机制之间的关系

总结

在预期共识中,矿工赢得选举的可能性跟矿工当前的存储能力成正比,而存储能力则由复制证明和时空证明来衡量

出块流程

阶段一 密封

矿工会先获取存储订单,把数据切成256KB的小块,用特定算法(Stacked DRG)进行密封生成副本。

这个过程最耗时, 数据越多, 时间越长。初期, 大家硬盘都是空的, 就比谁存储速度更快, 即"密封速度", 这会涉及软件算法的优化、CPU、内存、以及硬盘的读写能力。这个过程会让硬盘几周内就被写满。

阶段二 复制证明

接下来就是生成"复制证明zksnark"的过程,用特定算法对存储数据生成一个"零知识证明", 以验证密封的数据来源于客户的源数据, 需要在指定时间内(30秒)完成, 并广播到全网,让别人确认该出块的有效, 然后上链。这个过程要用到GPU加速, 如果30秒内完不成, 将得不到块奖励。

阶段三 Sector(扇区)证明

矿工会将客户提供的数据存放于网络中,这个区域称为扇区Sector。每个扇区会包含存储文件内容及承诺存储时长,确保客户在约定存储时长中,可以自由运用自身存储的数据。矿工添加一个扇区至 Filecoin 网络时,需要质押一笔锁定币(自身持有的 FIL 通证以及部分区块奖励)

链上的miner智能合约会验证提交的证明是否正确,这可以达到毫秒级处理速度。

以上是完整Filecoin出块流程基本介绍,矿工在赢得区块奖励后,仍然需要持续证明存储的数据没有丢失,因此就到了最后一环时空证明。

时空证明:矿工必须每1小时左右,提交一次复制证明,证明数据还在。链上也会在每个出块时间随机发出挑战challenge,来验证数据是否存在。如果失败,则被扣除抵押币。

智能合约

Filecoin为最终用户提供了两个基本命令:Get和Put。 这两个命令允许客户以优惠的价格存储数据并从市场中检索数据。 尽管命令涵盖了Filecoin的默认使用案例,但我们通过支持智能合约的部署,允许在Get和Put之上设计更复杂的操作。用户可以编写新的严谨的存储/检索的请求,我们就像归类一般的智能合约一样将其归类为文件合约。我们整合了一个合约系统(基于[18])和一个桥系统,目的是将Filecoin存储装入其他区块链,反之亦然,将其他区块链的功能带入Filecoin。

与IPFS的关系

Filecoin是运行在ipfs上面的一个激励层,简单理解是IPFS相当于网络协议,Filecoin相当于利用IPFS做的一个上层应用。

目前测试矿机分布

https://filscan.io/#/stats/map

矿机配置

CPU: 4核(重点是存储的I/O性能,对整机的运算性能要求不高)

RAM:8G (矿机在进行读写时,信息主要暂时存储在内存上,内存容量大小,直接影响矿机的读写性能和整体挖矿性能)

硬盘:4T(初期,后期根据实际用量随时增加),支持热插拔,兼容性设计

网络:拥有上下行对等的专线带宽,设置公网静态IP地址(家用矿机至少要标配一个千兆以太网口)

位置:挖矿方式会选择就近原则,所以建议一线城市,进行分布式布局

GPU也很重要,决定你的广播区块速度,你存了数据, 得告诉全网, 这就是广播,你广播得快,就能抢到Fil。

矿机硬件再好, 如果网络传输如果中断, 速度慢,那么会被罚Fil, 每个矿工加入节点,都要先抵押一部分Fil,因此,保证带宽是非常重要的。

目前存在的问题 (5-20号)

  1. 扇区密封比较慢, 32GB的扇区单机跑需要6个小时
  2. 链比较脆弱,daemon有内存泄露的问题
  3. 集群问题多,任务调度的Bug还很多,不够智能,需要矿工自己优化软件;在拆解代码的时候,V26和V25差别很大,在pre1和pre2到commit中间,需要等待比较久
  4. 采用AMD的CPU比Intel有压倒性优势,因为pre1的SDR算法对AMD 的SHA扩展非常友好

主网上线时间

经过多次推迟,最后一次官方消息预计7月底,三方消息再次推迟 8月31日—9月21日

参考

https://zhuanlan.zhihu.com/p/44568157

https://zhuanlan.zhihu.com/p/153483004

https://blog.csdn.net/SmarterEric/article/details/106521907

科普—下USDT三兄弟OMNI、ERC-20、TRC-20的相同和不同之处!

很多新人玩家每次充提币的时候,都是一脸懵逼,为何同是usdt,却又有不同的代币,不知如何下手才好,那么我今天就在这里给大家科普一下关于usdt三兄弟的最基本常识,不懂的可以收藏下!

首先我们先来弄清楚USDT是什么??

USDT是Tether公司推出的基于稳定价值货币美元(USD)的代币Tether USD(下称USDT),1USDT=1美元,用户可以随时使用USDT与USD进行1:1兑换。Tether公司严格遵守1:1准备金保证,即每发行1个USDT代币,其银行账户都会有1美元的资金保障。简单来说,USDT也是加密数字货币之一,可以在钱包、交易平台上进行转账、存储和消费。但其特别之处在于USDT和美元按1:1的比例锚定,在交易平台上可以互相赎买。

2014年11月下旬,Tether公司发行1:1锚定美元的稳定货币USDT。2015年2月,Bitfinex和Poloniex宣布交易USDT。目前,几大主流交易所和钱包平台都支持三种类型的USDT存储和交易。

截至目前,USDT市值28.15亿元,流通量28.63亿,占稳定币总份额的75%往上,在加密货币市场排名第8位。

OMNI、ERC20、TRC20、的区别在哪里

每种加密数字货币的出现都必须依赖于区块链网络,我们所熟知的就是比特币网络、以太坊网络、瑞波网络等等。

2014年,USDT是在比特币区块链上基于OMNI Layer协议发行的。由于其1:1的美元锚定,USDT成为加密数字货币的香饽饽。

2018年,以太坊网络爆红。基于ERC-20协议发行的USDT出现,可存储在以太坊地址上,每次转账需要消耗以太坊的Gas。和USDT-OMNI转账一样,需要支付矿工费。

2019年3月初,波场TRON宣布与Tether泰达公司合作,利用智能合约在波场网络中发行与美元1:1锚定的USDT,使用TRC20协议。这就有了USDT-TRON20。

所以,USDT-OMNI(美元)、USDT-ERC20(以太坊)、USDT-TRC20(波场)是采用不同的协议,属于不同的区块链网络——《重点》!!

哪种USDT最好??

三种类型的USDT可以在支持类型的交易所进行转换。作为流通稳定的加密数字货币,USDT的发行用途单一,为满足市场需求,要求价格稳定之外,转账速度和转账费率也是其发展的挑战。

USDT-OMNI的优势在于比特币网络的链上资产相对安全性较高,但是交易速度非常慢,无法满足加密交易市场的需求。

USDT-ERC20和USDT-TRC20转账速度相对于比特币网络有明显的提高,矿工费用也不相同。

USDT-TRC20发行时承诺完全公开透明,零转账费,秒级到账。能不能够做到这一点,也许只有时间能告诉我们答案。

三者最明显的区别,也是重中之重的一点,重要的事情我在这里说三遍!!!

USDT-OMNI地址是以1开头
USDT-ERC20地址是以0x开头
USDT-TRC20地址是以T开头

转载自:https://bitkan.com/zh/ksite/articles/49131

Cosmos 开发资源整理收集

Awesome Cosmos

Cosmos 开发资源整理收集, 为 Cosmos 开发者导航

Cosmos 简介

Cosmos(准确来讲应该是 Cosmos Hub)是 Tendermint 团队推出的一个支持跨链交互的异构网络,目标是创建一个区块链互联网,允许大量自主且易开发的区块链互相扩展和交互。

Cosmos Hub 基于 Cosmos SDK 开发,用户也可以基于 Cosmos SDK 快速定制开发自己的链。 Cosmos SDK 则是构建在 tendermint core (采用拜占庭共识算法+pos)及 ABCI(Application Blockchain Interface)协议 之上,其实现了ABCI协议,同时把一些通用模块标准化,如staking(抵押机制)、slashing(惩罚机制)、IBC(跨链功能),账户accounts、治理、奖励&手续费等。

Cosmos & Tendermint

开发教程

Cosmos 生态项目

基于 Cosmos 的项目,目前已经有近百个,这里列举几个代表:

  • IRISnet - 为下一代分布式商业应用提供基础设施,区块浏览器

    IRISnet(IRIS Hub )是早期使用 Cosmos SDK 的项目(还贡献了部分代码),也是Cosmos在中国的技术和运营合作伙伴,IRIS Hub(类似Cosmos Hub)是 Cosmos网络中的第一个重要的区域性枢纽,Cosmos Hub 和 IRIS Hub 将直接连接。

  • 币安链 - 去中心化交易所

  • Loom PlasmaChain 以太坊Layer2 解决方案

  • Terra 稳定币

转载自:https://github.com/xilibi2003/wiki.blockchain