分类存档: bit

python定时任务

APScheduler

APScheduler(Python化的Cron)使用总结

简介

APScheduler全程为Advanced Python Scheduler,是一款轻量级的Python任务调度框架。它允许你像Cron那样安排定期执行的任务,并且支持Python函数或任意可调用的对象。官方文档:https://apscheduler.readthedocs.io/en/latest/userguide.html#basic-concepts

APScheduler安装

方法一:使用pip安装

$ pip install apscheduler
方法二:如果pip不起作用,可以从pypi上下载最新的源码包(https://pypi.python.org/pypi/APScheduler/)进行安装:

$ python setup.py install
APScheduler组件

triggers(触发器): 触发器中包含调度逻辑,每个作业都由自己的触发器来决定下次运行时间。除了他们自己初始配置意外,触发器完全是无状态的。

job stores(作业存储器):存储被调度的作业,默认的作业存储器只是简单地把作业保存在内存中,其他的作业存储器则是将作业保存在数据库中。当作业被保存到一个持久化的作业存储器中的时候,该作业的数据会被序列化,并在加载时被反序列化。作业存储器不能共享调度器。

executors(执行器):处理作业的运行,他们通常通过在作业中提交指定的可调用对象到一个线程或者进城池来进行。当作业完成时,执行器将会通知调度器。

schedulers(调度器):配置作业存储器和执行器可以在调度器中完成,例如添加、修改和移除作业。根据不同的应用场景可以选用不同的调度器,可选的有BlockingScheduler,BackgroundScheduler,AsyncIOScheduler,GeventScheduler,TornadoScheduler,TwistedScheduler,QtScheduler 7种。

调度器

BlockingScheduler : 当调度器是你应用中唯一要运行的东西时。
BackgroundScheduler : 当你没有运行任何其他框架并希望调度器在你应用的后台执行时使用(充电桩即使用此种方式)。
AsyncIOScheduler : 当你的程序使用了asyncio(一个异步框架)的时候使用。
GeventScheduler : 当你的程序使用了gevent(高性能的Python并发框架)的时候使用。
TornadoScheduler : 当你的程序基于Tornado(一个web框架)的时候使用。
TwistedScheduler : 当你的程序使用了Twisted(一个异步框架)的时候使用
QtScheduler : 如果你的应用是一个Qt应用的时候可以使用。
作业存储器

如果你的应用在每次启动的时候都会重新创建作业,那么使用默认的作业存储器(MemoryJobStore)即可,但是如果你需要在调度器重启或者应用程序奔溃的情况下任然保留作业,你应该根据你的应用环境来选择具体的作业存储器。例如:使用Mongo或者SQLAlchemy JobStore (用于支持大多数RDBMS)

执行器

对执行器的选择取决于你使用上面哪些框架,大多数情况下,使用默认的ThreadPoolExecutor已经能够满足需求。如果你的应用涉及到CPU密集型操作,你可以考虑使用ProcessPoolExecutor来使用更多的CPU核心。你也可以同时使用两者,将ProcessPoolExecutor作为第二执行器。

触发器

当你调度作业的时候,你需要为这个作业选择一个触发器,用来描述这个作业何时被触发,APScheduler有三种内置的触发器类型:

date 一次性指定日期
interval 在某个时间范围内间隔多长时间执行一次
cron 和Linux crontab格式兼容,最为强大
date

最基本的一种调度,作业只会执行一次。它的参数如下:

run_date (datetime|str) – 作业的运行日期或时间
timezone (datetime.tzinfo|str) – 指定时区
举个栗子:

2016-12-12运行一次job_function

sched.add_job(job_function, ‘date’, run_date=date(2016, 12, 12), args=[‘text’])

2016-12-12 12:00:00运行一次job_function

sched.add_job(job_function, ‘date’, run_date=datetime(2016, 12, 12, 12, 0, 0), args=[‘text’])
interval

间隔调度,参数如下:

weeks (int) – 间隔几周
days (int) – 间隔几天
hours (int) – 间隔几小时
minutes (int) – 间隔几分钟
seconds (int) – 间隔多少秒
start_date (datetime|str) – 开始日期
end_date (datetime|str) – 结束日期
timezone (datetime.tzinfo|str) – 时区
举个栗子:

每两个小时调一下job_function

sched.add_job(job_function, ‘interval’, hours=2)
cron

参数如下:

year (int|str) – 年,4位数字
month (int|str) – 月 (范围1-12)
day (int|str) – 日 (范围1-31)
week (int|str) – 周 (范围1-53)
day_of_week (int|str) – 周内第几天或者星期几 (范围0-6 或者 mon,tue,wed,thu,fri,sat,sun)
hour (int|str) – 时 (范围0-23)
minute (int|str) – 分 (范围0-59)
second (int|str) – 秒 (范围0-59)
start_date (datetime|str) – 最早开始日期(包含)
end_date (datetime|str) – 最晚结束时间(包含)
timezone (datetime.tzinfo|str) – 指定时区
举个栗子:

job_function将会在6,7,8,11,12月的第3个周五的1,2,3点运行

sched.add_job(job_function, ‘cron’, month=’6-8,11-12′, day=’3rd fri’, hour=’0-3′)

截止到2016-12-30 00:00:00,每周一到周五早上五点半运行job_function

sched.add_job(job_function, ‘cron’, day_of_week=’mon-fri’, hour=5, minute=30, end_date=’2016-12-31′)

配置调度程序

在应用程序中使用默认作业存储和默认执行程序运行BackgroundScheduler的例子:

from apscheduler.schedulers.background import BackgroundScheduler

scheduler = BackgroundScheduler()
# Initialize the rest of the application here, or before the scheduler initialization

这将生成一个名为“default”的MemoryJobStore和名为“default”的ThreadPoolExecutor的BackgroundScheduler,默认最大线程数为10。

如果不满足于当前配置,如希望使用两个执行器有两个作业存储器,并且还想要调整新作业的默认值并设置不同的时区,可按如下配置:

复制代码
from pytz import utc

from apscheduler.schedulers.background import BackgroundScheduler
from apscheduler.jobstores.mongodb import MongoDBJobStore
from apscheduler.jobstores.sqlalchemy import SQLAlchemyJobStore
from apscheduler.executors.pool import ThreadPoolExecutor, ProcessPoolExecutor

# 配置作业存储器
jobstores = {
‘mongo’: MongoDBJobStore(),
‘default’: SQLAlchemyJobStore(url=’sqlite:///jobs.sqlite’)
}

配置执行器,并设置线程数

executors = {
‘default’: ThreadPoolExecutor(20),
‘processpool’: ProcessPoolExecutor(5)
}
job_defaults = {
‘coalesce’: False, # 默认情况下关闭新的作业
‘max_instances’: 3 # 设置调度程序将同时运行的特定作业的最大实例数3
}
scheduler = BackgroundScheduler(jobstores=jobstores, executors=executors, job_defaults=job_defaults, timezone=utc)
复制代码

启动调度器

启动调度器只需要调用start()方法,对于除BlockingScheduler以外的调度程序,此调用将立即返回,您可以继续应用程序的初始化过程,可能会将作业添加到调度程序。

对于BlockingScheduler,只需在完成初始化步骤后调用start()

scheduler.start()

添加作业

方法一:调用add_job()方法

最常见的方法,add_job()方法返回一个apscheduler.job.Job实例,您可以稍后使用它来修改或删除该作业。

方法二:使用装饰器scheduled_job()

此方法主要是方便的声明在应用程序运行时不会改变的作业

删除作业

方法一:通过作业ID或别名调用remove_job()删除作业

方法二:通过add_job()返回的job实例调用remove()方法删除作业

举个栗子:

复制代码

实例删除

job = scheduler.add_job(myfunc, ‘interval’, minutes=2)
job.remove()
# id删除
scheduler.add_job(myfunc, ‘interval’, minutes=2, id=’my_job_id’)
scheduler.remove_job(‘my_job_id’)
复制代码

暂停和恢复作业

可以通过Job实例或调度程序本身轻松暂停和恢复作业。 当作业暂停时,下一个运行时间将被清除,直到作业恢复,不会再计算运行时间。 要暂停作业,请使用以下任一方法:

apscheduler.job.Job.pause()
apscheduler.schedulers.base.BaseScheduler.pause_job()

恢复作业:

apscheduler.job.Job.resume()
apscheduler.schedulers.base.BaseScheduler.resume_job()

获取作业列表

要获得计划作业的机器可处理列表,可以使用get_jobs()方法。 它将返回一个Job实例列表。 如果您只对特定作业存储中包含的作业感兴趣,则将作业存储别名作为第二个参数。

为了方便起见,可以使用print_jobs()方法,它将打印格式化的作业列表,触发器和下次运行时间。

修改作业属性

您可以通过调用apscheduler.job.Job.modify()或modify_job()来修改除id以外的任何作业属性。

job.modify(max_instances=6, name=’Alternate name’)

关闭调度程序

默认情况下,调度程序关闭其作业存储和执行程序,并等待所有当前正在执行的作业完成,wait=False参数可选,代表立即停止,不用等待。

scheduler.shutdown(wait=False)
附:1、定时任务运行脚本小例子:

复制代码
import datetime
from apscheduler.schedulers.blocking import BlockingScheduler
from app.untils.log_builder import sys_logging

scheduler = BlockingScheduler() # 后台运行

# 设置为每日凌晨00:30:30时执行一次调度程序
@scheduler.scheduled_job(“cron”, day_of_week=’*’, hour=’1′, minute=’30’, second=’30’)
def rebate():
print “schedule execute”
sys_logging.debug(“statistic scheduler execute success” + datetime.datetime.now().strftime(“%Y-%m-%d %H:%M:%S”))

if name == ‘main‘:
try:
scheduler.start()
sys_logging.debug(“statistic scheduler start success”)
except (KeyboardInterrupt, SystemExit):
scheduler.shutdown()
sys_logging.debug(“statistic scheduler start-up fail”)
复制代码

检验btc和eth地址是否合法

btc地址验证合法性规则

3开头的比特币地址,34位。
1开头的比特币地址,长度26位到34位

Base58是Base64编码格式的子集,同样使用大小写字母和10个数字,但舍弃了一些容易错读和在特定字

体中容易混淆的字符。具体地,Base58不含Base64中的0(数字0)、O(大写字母o)、l(小写字母L)

、I(大写字母i),以及“+”和“/”两个字符。简而言之,Base58就是由不包括(0,O,l,I)的大

小写字母和数字组成。

比特币的Base58字母表
123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz

1.eth正则匹配规则 ^0x[a-fA-F0-9]{40}$
2.btc基本判断:
3开头的比特币地址,长度为34位。
1开头的比特币地址,长度为26位到34位
正则匹配规则
/\A(1|3)[a-zA-Z1-9]{26,33}\z/
更严格的判断参考:https://stackoverflow.com/questions/22127317/check-if-bitcoin-

address-is-valid

3.eth地址验证合法性规则

Private Function gettimestamp(tNum,tUserid,tdotype,moneytype)
Dim tStr1
tStr1=tNum&tUserid&tdotype&moneytype
gettimestamp=mid(md5t(tStr1,32,36)&”james626″,3,20)
End Function

可以用比特币和莱特币给手机充话费啦

https://www.bitrefill.com/china/

分布式资本研究报告《日本区块链行业研究》

https://mp.weixin.qq.com/s/sa8Bdt_tBjrlD_p6G5PXZg

目前,区块链技术的关注度不断上升,并在全球各国快速普及。比特币总市值超过1000亿美金,较年初增长5倍,全球用户量超1000万人,同时各国央行和金融机构开始进行数字货币的研究,区块链+行业应用的项目不断在各领域落地,包括供应链、存证溯源,支付汇款等各领域。

 

然而,由于经济状况、政策导向的差异,各国区块链产业的发展程度参差不齐。日本是世界第三大经济体,其政府及社会对区块链以及数字货币的发展态度积极。

 

上月,日本金融服务局FSA颁发了虚拟货币的交易所牌照,这使得日本的比特币交易量大增,目前日元兑换比特币的交易量已占到了比特币总交易量的60%以上,日本国内各大金融机构和互联网公司等也在积极介入区块链行业,行业发展势头方兴未艾。

 

那么,日本为何支持区块链产业,政策上经历了哪些阶段,目前的行业生态如何,赛道里都有哪些玩家,我们抱着他山之石可以攻玉的心态做了总结和分析,为大家呈现如下:

 

一、日本为何对区块链的态度积极

 

日本其实是和区块链缘分很深的一个国家,比特币的缔造者中本聪Satoshi Nakamoto就有着一个日文名字, 美国《新闻周刊》曾传言中本聪是一个日籍美国人。

 

对于日本政府为何大力支持区块链和数字货币行业,日本媒体和各方意见领袖都发表了很多看法和推测,笔者将其概括如下:

 

第一点,知名财经专栏作家肖磊曾提出,比特币或被日本当作一种战略资源。日本是一个资源缺乏的国家,其国民心态中安全感缺失,需要不断地获取生存的资源。比如日本的石油储备全球第一,达到158天,比美国都还要多20天,是中国石油储备的20倍。比特币作为一种互联网时代的价值储藏手段,其价格已突破7000美金,远超石油黄金单价,其在未来价值互联网时代的潜力不可小觑。

 

第二点,据日本日经新闻报道,日本为迎接2020年东京奥运会,计划在10年内将其无现金结算的比例提高到40%,一方面提高消费的便利性,方便外国游客。目前,日本人传统上偏好现金,便利店里一般都有ATM供取现使用,目前的无现金比例不足20%。

 

因此,今年上半年日本就将比特币支付合法化,据统计,日本已经有5000多家支持比特币的商户,今年预计增长5倍以上。比特币作为一种支付方式在日本被逐渐接受。

 

第三点,在笔者看来,日本作为一个富裕的发达国家,投资群体庞大,有良好的比特币用户基础。日本拥有全球最大规模的外汇保证金交易市场,“日本渡边太太”们是全球外汇市场的重要投资者,交易十分活跃。

 

日本拥有全球零售交易量最大的外汇交易商GMO click(这个公司也获得了虚拟货币牌照),其每月外汇交易量高达1万亿美元。因此,比特币作为一种投资方式在日本受到投资者的欢迎。

 

二、日本区块链/比特币政策梳理

 

  • 2014年2月,日本比特币交易所Mt Gox被盗85万个比特币(当时约合4.3亿美金)。日本立法者将这个交易所的失败作为数字货币行业的重要推动力。

 

  • 2017年4月,日本政府修订了《资金结算法》,承认比特币是一种合法的支付方式,并为交易所制定了一系列标准和规则。

 

  • 2017年7月,日本政府正式终止了在交易所购买比特币所需支付的8%的消费税。

 

  • 2017年8月,日本金融厅(FSA)透露大约有50家比特币交易所已向该机构提交了注册文件,并成立了专门监督数字货币的小组。

 

  • 2017年9月,日本金融厅(FSA)发布了首批得到许可的日本“虚拟货币交易所”名单。首批获得牌照的日本境内虚拟货币交易所包括Bitflyer、Zaif、BTCBOX、GMO、QUOINEX、BitBank、Bitpoint等在内的11家交易所,这是全球范围内首批正式获得政府批准的虚拟货币交易所。

 

三、日本虚拟货币交易所

 

今天,日元已经成为比特币定价的主要法币,日元/比特币的交易量占到了比特币全球交易量的65%,是第二名美元的近3倍,其次是韩元和欧元,人民币由于中国境内交易所关停已经推出了比特币场内市场。

四、日本交易所交易量排名

据了解,日本政府主要在以下几个方面对交易所进行合规性审查:

 

第一部分:分离客户账户。首先,交易平台用户资产和平台资产要分开记账,分别管理。

 

第二部分:反洗钱。每个交易所被要求必须进行严格的KYC,各国用户需要提供能代表身份的信息。常规身份认证结束之后,交易所会给用户寄出一封信,核实用户现居住地址。用户只有确认本人收到信件之后才能通过认证开始交易,如果信件非本人签收,或者被返退回至交易所,用户的账户将一直处于冻结状态。

 

第三部分:系统安全管理。日本金融厅FSA需要对这些交易所的内部系统进行评估,评判其保护客户资产的能力,必要时会进行现场视察。

 

五、日本主要虚拟货币交易所简介

 

o   Bitflyer

 

Bitflyer是日本最大的虚拟货币交易所,目前活跃人数超过80万人,24小时交易量将近40万个比特币。

 

自成立以来,Bitflyer已融资超过3500万美元,其投资方包括三菱UFJ金融集团旗下的三菱UFJ资本有限公司( Mitsubishi UFJ Capital Co., Ltd.),日本电通集团旗下的风投公司电通数码控股公司(Dentsu Digital Holdings, Inc.)三井住友银行、瑞穗金融集团以及日本第一生命保险公司等金融公司,其中SBI在C轮向其投资30亿日元(2700万美元)。

 

目前biytflyer除了交易所以外也有其他的业务板块,包括汇款、商户支付、bitFlyer Lightning、为专业人士设计的比特币交易平台、chainflyer区块链浏览器等。Bitflyer目前已与三井住友银行以及瑞穗金融集团等达成了私链的解决方案,

 

Bitflyer有自己的区块链实验室,并成立了5000万日元的创业基金。

o   Coincheck

 

Coincheck由和田晃一良和大塚雄介成立,于2014年11月正式开业,拥有70多名员工。目前coincheck已经有简体中文版,每天的比特币交易量在3-4亿美金左右,是日本第二大交易所。

 

该交易所也推出了比特币的存款类产品,14天期的年利率为1%,30天期为2%,90天期为3%。最长期的存款选择是12个月的期限,其年利率也是最高的,达5%。这种服务将会受到人们的欢迎,因为日本的传统银行今年早些时候将利率调到了零。

 

在支持区块链行业方面,Coincheck拿出了50万美元支持初创企业。

 

六、巨头入场,竞争白热化

 

日本的交易所正式合法化之后,巨头们开始入场,同时Remix point、Fisco、GMO这样的传统企业也等都推出了自己的交易所。

 

总体上,交易所之间的竞争白热化,推行零手续费,接下来可能会在金融衍生品和基金方面进行竞争,比如推出期货杠杆交易、比特币借贷、ETF基金等等。

 

在美国,比特币金融衍生品开始有突破的可能。日前,美国芝加哥期货交易所CME计划推出比特币期货,这增强了投资者对于比特币ETF获批的期望。

 

日本主要交易所列表

Money365 https://www.money365.online/
Firex https://firex.jp/
Coincheck http://corporate.coincheck.com/
QUOINEX https://ja.quoinex.com/
GMO https://coin.z.com/jp
Zaif https://zaif.jp/
Tokyobtc https://tokyobtc.jp/
Lemuria https://lemuria-trade.com/
Bitstation https://bit-station.jp/
Bitcoinbank https://bitcoinbank.co.jp/
Bitflyer https://bitflyer.jp/
Bitpoint https://www.bitpoint.co.jp/
Btcbox https://www.btcbox.co.jp/
Bmex https://www.bmex.biz/
FISCO https://fcce.jp/

 

七、区块链行业的应用整理

 

日本的区块链行业除了比特币的应用,在行业应用领域也颇多案例,比如房产存证、身份认证、供应链金融、清算结算等。举例如下:

 

1、房地产登记

日本正在着手一个用于统一城镇、农田和森林地区所有房地产登记到一个单一区块链账本的大规模项目。在将日本登记的大约2.3亿地块和5000万建筑纳入到一起的过程中,这个账本还将包括附带的详细信息和房地产出售价格。

 

这个登记将会在2018年选中的城市进行测试。如果成功,日本政府将在未来5年把所有的房地产登记都放到区块链上。

 

2、身份认证登记

日本金融服务管理局正在开发一种由区块链推动的平台,将使日本客户能够在多家银行和金融机构之间即时共享个人信息。根据《日经新闻》报道,这个通用身份平台允许银行账户持有者注册一个“共享ID”,例如可以将这个ID用于在不同银行开设账户。

 

本质上讲,这个共享ID取消了用户在新的金融机构申请银行服务时需要重新输入个人信息。这个共享ID所保存的个人信息和数据将会被输入、记录和安全存储在一个由FSA和其他金融机构共同开发的不可更改的共享区块链上。

 

3、银行间清算

日本三大行——瑞穗金融集团,三井住友金融集团和三菱UFJ金融集团的合作,富士通将现场试验一种基于云的区块链平台,用于在个体之间发送资金,并开发一款智能手机APP来提高这个系统的可用性。

 

4、比特币保险

由于日本之前比特币被盗事件催生了比特币保险市场,各大交易所纷纷发起比特币保险。

 

目前,bitflyer正在与三井住友保险公司合作上线一款比特币保险,保护接受比特币的商户,减少因为技术原因而导致的损失,同样地,Coincheck正在联合东京海上日动火灾保险株式会社推出一种类似的产品。

 

5、供应链金融

日本瑞穗金融集团,其子公司瑞穗银行和IBM日本共同开发区块链贸易金融平台,基于区块链解决方案,瑞穗银行旨在提高供应链和贸易过程的效率。

 

6、消费支付

日本能源公司Remixpoint近期面向全日本的客户推出了一项新的电费服务,这项服务整合了比特币支付。用比特币支付电费的客户可以享受折扣。因此产生的比特币支付将由该公司旗下的加密货币交易所Bitpoint来处理。

 

Bitpoint还和乐桃航空合作,为其航班以及附属商店提供比特币支付服务。另外,Bitpoint还和Evolable Asia一起,为全日本超过1400家酒店以及餐厅提供比特币支付选项。

 

7、区块链评估

野村证券研究所开展区块链评估服务,第一个项目是智能合约的审查。支持的平台包括以太坊和超级账本,支持的语音是Solidity, Go, Java。

八、日本典型公司的区块链业务进展

 

o   SBI Holdings

 

日本的互联网金融巨头SBI是全球最活跃的公司投资者,至今已投资了Orb、R3、Ripple、Kraken、Coinplug、Veem、Wirex、Bitflyer在内的8家公司。覆盖了包括交易所、汇款、银行区块链联盟、区块链解决方案等多个赛道。

 

SBI 和Ripple有深度合作,共同建立了合资公司:Ripple Asia。Ripple是全球区块链支付网路的缔造者,目前Ripple网络已经纳入了超过100家金融机构。

 

在日本国内,SBI Ripple Asia已为47家银行(截止到2017年2月底)建立了结算网络,使用了Ripple的技术解决方案 RC Cloud,日本银行可以和外国银行一同在这个云平台上进行协作。

 

Ripple在汇款领域也有了实际的例子,比如在日本居住的泰国外派人员可以更快速的转账回泰国,基于SBI Remit和泰国商业银行的合作。

o   GMO

GMO是日本互联网巨头,在互联网基础设施、在线广告媒体、互联网金融、娱乐等领域颇具影响力,拥有9家上市公司。

 

在区块链领域,GMO宣布投入100亿日元(约合9000万美元)建立和运营挖矿数据中心,并研发专用的挖矿芯片。这种7纳米芯片预计在同等性能的情况下,耗电量降至56%,测试版预计将在2018年完成,明年5月份开始批量生产。

 

GMO目前已经获得了日本金融局颁发的虚拟货币交易所牌照。

o   DMM

 

日本娱乐业巨头DMM Group,即拥有2700万名用户的电子商务网站DMM.com的运作者,宣布其将会推出一个大规模的加密货币矿场。该公司计划成为世界三大挖矿企业之一。

 

其子公司DMM.com Securities是世界交易量排名第二的外汇公司。而GMO的外汇公司GMO Click则是世界上最大的外汇经纪商。

 

用户可以用比特币购买“DMM积分”用于兑换DMM.com提供的内容及服务,比如说视频、电子书、在线游戏、VR门票、英语家教服务等等。

九、区块链协会

 

目前日本有两个主流的区块链协会,一个是日本区块链协会JBA(japan blockchain association),另一个是虚拟货币商会Cryptocurrency-association,目前第一批拿到交易所牌照的主要是后者的会员。

 

o   JBA

 

日本区块链协会(JBA),该组织成立于2014年,目前会员数达到113家。日本商界圈子文化盛行,加入协会是一个很好的融入当地市场的途径。

 

该协会主要提供区块链应用的咨询,制定业内虚拟货币兑换和审计规则,处理行业与政府部门的关系,促进日本国内和海外社区间的交流互动。

 

会员单位如下:

o   虚拟货币商会Cryptocurrency-association

 

日本虚拟货币商会建立于2008年12月,目前共有77家会员。

 

会员信息如下:

十、他山之石,可以攻玉

 

区块链天生就是全球化网络的产物,其最好的发展方式就是全球化、社区化的运作,运作数年的比特币、以太坊社区就是最好的例子。但同时,社区化的运作也离不开各国政府和行业组织的规则制定和支持协调,只有两者的结合才能让区块链技术健康稳健地落地。

 

在全球各国中,日本作为全球第三大经济体,能够敢为天下先地对区块链和比特币做出了监管,值得我们研究和深思。未来,其政府监管的实施、行业规则的制定、产品体系的搭建、数字经济的迁移等都值得我们学习和借鉴。

Bitfinex交易所Funding钱包介绍

原文链接:http://toutiao.manqian.cn/wz_1bgWBF7zPGz.html

背景介绍:

在之前的文章中我提到过,Bitfinex交易所提供了三种类型的钱包,以此对应三种不同的交易类型:

  • Exchange钱包:储存并用于交易Bitfinex中上架的数字货币

  • Margin钱包:用于合约交易

  • Funding钱包:向平台中其他投资者提供融资

今天我们就来聊聊如何利用Funding钱包实现空仓时也能盈利。

所谓融资,其实就是将自己钱包里的美元和部分支持的数字货币放贷出去赚取利息。相应的,借贷者提供这部分利息。当然,在Bitfinex进行借贷需要提供足额的抵押保证金,并由平台保障足以支持放贷者的利益,不存在违约风险。

融资利率是随着市场需求发生变化的,美元Funding曾达到0.4%的日利息,目前也有0.07%左右,即理论上换算成年化利率约为25.6%(算上复利可能更多)。一般情况下,当市场对数字货币价格看多时,美元的放贷利率会升高,反之则减少。而比特币的放贷利率则与此规律相反。对于忌惮合约交易高风险不愿做空的投资者来说,空仓是选择将资金放贷是个不错的选择。

教程正文:

一、注册:

二、充值:

美元充值:目前Bitfinex的美元充值已经暂时关闭,我们需要先充币到Exchange钱包,经过交易换取美元,再将美元从Exchange钱包转帐进Funding钱包。步骤如下图所示:

空仓也能赚钱?Bitfinex交易所Funding钱包介绍
空仓也能赚钱?Bitfinex交易所Funding钱包介绍
空仓也能赚钱?Bitfinex交易所Funding钱包介绍
空仓也能赚钱?Bitfinex交易所Funding钱包介绍

数字货币充值:直接充币到Funding钱包。需要注意的是在融资的列表中支持放贷的币种,若你拥有的数字货币不在此列表中,参考美元充值方式。

空仓也能赚钱?Bitfinex交易所Funding钱包介绍

三、美元放贷

本教程以50美元(美元放贷的最小数额)为例,详解放贷过程。

进入 融资-US Dollar,页面详解如下图所示,融资过程简单来说是一个借贷人需求与放贷人要求在利率与时长达到一个匹配的成交行为,我们既可以根据自己需要填写单子的利率和时长进行出价,也可以点击借贷人需求列表中的订单,确定后即时成交。

这里我选择了即时成交的方式。点击融资利率0.07%的单子,修改日期为2天,金额50美元。注意,当我出价时市场还没有0.08%利率2-30天的单子,只有30天的。最后成交的利率为0.0765%,可见系统为我匹配了满足我的天数需求时,利率最高的订单。

空仓也能赚钱?Bitfinex交易所Funding钱包介绍
空仓也能赚钱?Bitfinex交易所Funding钱包介绍
空仓也能赚钱?Bitfinex交易所Funding钱包介绍
空仓也能赚钱?Bitfinex交易所Funding钱包介绍
空仓也能赚钱?Bitfinex交易所Funding钱包介绍

除了上图外,有些注意的点给大家介绍一下:

1.没有匹配成功的订单是可以取消的,一旦成交,将会锁定资金直到放贷结束,归还本金+利息,放贷天数是2-30天。

2.放贷金额最低为50美元,或者等值数字货币。在融资表单-金额后面有个红色的圆圈,点击后,Funding钱包中的所有USD就自动填入金额中。

3.融资表单中的两个选项:FRR选项可以让订单获得一个在最近时段较为合理的利率,既不会太久才成交,也不会因利率在某个点处于波谷时成交而遭致损失。

空仓也能赚钱?Bitfinex交易所Funding钱包介绍
空仓也能赚钱?Bitfinex交易所Funding钱包介绍

4.隐藏单:某些大单用户可能需要,普通用户可以不管。

5.出价,向别人借贷,要付利息。报价,放贷给别人,收到利息。

四、自动放贷

自动更新:激活后,会按配置进行设置,让可用资金在融资市场上持续提供。当资金存入融资钱包、提供的融资到期、以及收到提供融资的付款时,这些可用资金会自动以选择的利率和时间重新提供融资。

可以看成一个融资管家,不断的进行复利。

空仓也能赚钱?Bitfinex交易所Funding钱包介绍

五、收入计算

由系统提供,如下图所示:

空仓也能赚钱?Bitfinex交易所Funding钱包介绍

最后说说:

11月1号是币圈不平凡的一天,不管是对国内还是国外。

1.今天开始,国内所有数字货币交易所关闭。与此同时,国内两大平台OKcoin与火币的海外站推出场外C2C交易,开启了交易新纪元。

2.美国芝加哥商业交易所 (CME) 集团10月31日宣布,将从2017年第四季度开始推出比特币期货,只待所有相关监管审查宣告结束,这一举动意味着比特币取得了和原油黄金一样的大宗商品金融地位。这里还是要提醒一下,这一消息并不意味着比特币的暴涨,预期将有一段时间的震荡,大家坐稳了。

数字货币交易所开发及虚拟币ICO众筹 之新手必备:数字货币交易名词解释

Public Key 公钥

公钥(Public Key)与私钥(Private Key)是通过一种算法得到的一个密钥对,公钥是密钥对中公开的部分,私钥则是非公开的部分,从公钥不能推算出私钥。通过这种算法得到的密钥对能保证在世界范围内是唯一的。使用这个密钥对的时候,如果用其中一个密钥加密一段数据,必须用另一个密钥解密,两者都无法自己解密自己加密的文件。比如:我的好朋友小探探用我的公钥加密了文件A,生成了文件B,放在网上。别人看到了这个文件,但因他们不知道我的私钥,无法解密B文件。只有使用我的私钥才能解密,得到文件A。这样,我们可以安全的传送数据。

Private Key 私钥

在比特币的语境中,私钥是指与一个地址(地址是与私钥相对应的公钥的哈希值)相关联的一把密钥。私钥是只有你自己才知道的一串字符,用来操作比特币地址里面的钱。私钥和地址是一把钥匙和一把锁的关系,每个地址只有一个私钥,每个私钥也只能操作一个比特币地址。因为公钥和地址都可以从私钥推算出,所以私钥要绝对安全。如果私钥泄露,任何知道私钥的人都可以偷走你的比特币地址里的币;如果私钥丢失,那么与之对应的比特币地址里面的币也就永远无法使用了。

Encryption Algorithm 加密算法

数据加密的基本过程就是对原来为明文的文件或数据按某种算法进行处理,使其成为不可读的看似随机的一段字符,通常称为“密文”,使其只能在输入相应的密钥之后才能显示出本来内容,通过这样的途径来达到保护数据不被非法人窃取、阅读的目的。 这个流程是不可逆的,也就是无法通过密文,算出原始明文文件或数据。加密算法使得私密数据通过网络传输时不需要担心被第三方知道传输内容。

Hash 哈希

哈希也叫做散列函数,是指把任意长度的输入变换成固定长度的输出,该输出就是哈希值(散列值)。哈希值是一段数据唯一且极其紧凑的数值表示形式。如果散列一段明文而且哪怕只更改一个字母,随后的哈希都将产生不同的值。要找到哈希值相同的两个不同的输入,在计算上是不可能的。HASH算法是密码学的基础,比较常用的有MD5和SHA,不可逆和无冲突是其重要性质。不可逆是指:知道A的HASH值,无法求出A;无冲突是指:知道A,无法求出一个B, 使A与B的HASH值相同。

Bitcoin Address 比特币地址

比特币地址是一个字符串,像这样:1dice8EMZmqKvrGE4Qc9bUFf9PX3xaYDp,是通过你的公钥加密而来。地址就好比银行卡号一样,用来表示一个账户。如果你需要发送比特币给我,你就需要知道我的比特币地址,才能向我发送比特币。创建比特币地址和相对应的私钥这一操作,可以通过比特币客户端完成。每个人可以拥有的比特币地址是没有数量限制的。

Digital Signature 数字签名

数字签名可以被附着在一条消息后面,证明这条消息的发送者就是和某个公钥相对应的私钥的所有人。即私钥签名的内容可以用公钥验证;公钥能验证的签名均可视为私钥持有人所签署。

Bitcoin Client 比特币客户端

比特币客户端是用来接收与发送比特币的软件。常用的比特币客户端有Bitcoin-Core(完整节点)、Electrum等,更多选择可以去 bitcoin.org 了解和下载。

Wallet 钱包

钱包既可以看做比特币客户端的同义词(尽管有稍稍的不同,“客户端”更多的是指功能全面的桌面客户端,而“钱包”则更多的用于指代轻量级的基于浏览器的在线管理服务),也可以是指一个文件,这个文件里面包含了所有者的比特币地址以及使用这些地址时所需要的相对应的私钥。

Bitcoin Network 比特币网络

比特币网络是指参与维护公共区块链的所有旷工节点以及比特币交易广播到的客户端节点,共同组成的网络。

Transaction 交易

交易是发送到比特币网络的一条消息,用于通告全网一次比特币的所有权转移发生了,使得接收者能够花费掉收到的比特币,同时阻止发送者再次使用已经发送了的比特币。

Blockchain 区块链

区块链是比特币的底层技术,其本质上可以类比为一个去中心化的数据库。区块链按照时间顺序将区块做链式连接,并通过密码学保证其不可篡改性和不可伪造性,在比特币等加密货币领域常被称为分布式账本。

区块是区块链上的独立单位,每一个区块都包含了前一个区块的哈希值、网络上找到的还没有被确认的交易、以及一个叫做nonce随机数的数字。想要创建一个区块的节点,必须找到一个合适的nonce随机数,以使得这个区块的哈希值低于某个阈值(the target 目标值)。这只能通过不断的随机选择数值去计算区块的哈希值,直到哈希值满足阈值条件(阈值越低就越难找到合适的随机数)。区块链的这种设计,可以比较好的解决“双花问题”。

The Genesis Block 创世区块

创世区块是指区块链网络上的第一个区块,比特币创世区块于2009年1月4日(北京时间)被创建。

Confirmation 确认

当一笔交易被打包到区块里面,成为了区块链的一部分的时候,一个确认就产生了。确认表示交易已被网络验证,每一个确认数的增加都使交易被回滚的概率降低。在比特币交易中,一个确认就比较安全,但是对于比较大额的转账,建议等待交易得到更多的确认,一般认为6次确认就足够安全了。在其他加密货币交易中,比较安全的确认数会各有差异。

Unconfirmed Transaction 未确认的交易

未确认的交易是指还没有被打包到区块里的交易。

Double Spend 双重支付(双花)

双重支付是电子货币才有的一个重要问题。因为电子货币不像真实货币可以用防伪技术使它难以被伪造,电子货币是一串二进制码,很简单就能复制,如果一个用户试图将同一笔电子货币资产进行两次支付操作,这就是双重支付。在进行比特币交易时,付款方有可能尝试双重支付,如果收款方不等待足够的交易确认数(一般为6次),就认可交易,则有可能被双花攻击而受到损失。

Hash Rate 哈希率

在比特币网络中,哈希率是网络计算能力的衡量单位。为了安全,比特币网络必须进行高强度的数学运算。网络的哈希率达到1GH/S,意味着这个网络每秒能处理10亿次哈希运算,1PH/S=1000TH/S,1TH/S=1000GH/S。

Miner 矿工

旷工是指尝试创建区块并将其添加到区块链上的计算设备或者软件。在一个区块链网络中,当一个新的有效区块被创建时,系统一般会自动给予区块创建者(矿工)一定数量的代币,作为奖励。

Difficulty 难度

难度用于表示创建一个新的区块的困难程度,一般可以通过修改相关哈希函数的参数进行调节。比如,比特币网络每隔2016个区块就会进行一次难度调整,已保证全网平均10分钟产生一个新的有效区块。

Mining Pool 矿池

矿池是一个全自动的挖矿平台,使得矿工们能够贡献各自的算力一起挖矿以创建区块,获得区块奖励,并根据算力贡献比例分配利润(即矿机接入矿池—提供算力—获得收益)。这使得矿工能够获得持续稳定的收入,而不是小概率的一次性获得一个区块产生的比特币奖励。

举个例子:假设100万人参与比特币挖矿,全网400P算力,其中90%的矿工为1P(1000T)以下的算力,如果投入一台1T矿机,将占全网算力的40万分之1,理论上平均每40万个10分钟能挖到一个区块,也就是7.6年才能挖到一个区块然后获得区块奖励。那么,假如再找9个拥有1T算力矿机的矿工,达成协定一起挖矿,总共10个人,其中任何一个人挖到区块,都按照每人的算力占比来进行分配,那么总算力为10T,那么平均0.76年即可挖到一个区块。如果组织100人、1000人、1万人甚至10万人呢?如果是10万人,那么平均100分钟就能挖到1个区块,作为团队的一份子,旷工的收入将会趋于稳定。这就是矿池的基本原理,即大家组队进行比特币挖矿。

51% Attack 51%攻击

所谓51%攻击,是指利用比特币以算力作为竞争条件的特点,凭借算力优势篡改或者撤销自己的付款交易。如果有人掌握了50%以上的算力,他能够比其他人更快地找到开采区块需要的那个随机数,因此他能够比其他人更快的创建区块。

举个例子:A和 B之间使用比特币完成了一笔交易,B在收到A的转账通知(不是交易确认的通知,只是发起了交易)认为交易会被确认,等待比特币到账即可。正常情况下,这笔交易会马上被放入交易池等待挖矿节点打包,加入一个新的区块并开始挖矿。

假设A就是那个拥有网络51%算力的人,他不愿意该笔款项支付出去,于是他开始攻击。网络上很多节点都收到了这笔交易并加入区块准备运算了,A也同样开始贡献算力,但是在开始之前他把区块里的这笔交易改了,本来这是一笔A付款给B的交易,被改成A转给自己的一笔交易了(更改很容易,只要把接收地址和签名改掉即可)。A开始尝试用这个伪区块进行计算,因为拥有51%的算力,A比别的节点更容易计算成功,导致一个数据伪造的区块加入了主链。现在网络中有两个区块链:一个是原来的主链,另一个是比原来的主链高出一个区块的伪造链。按照区块链的原则,更高的这个链就代替了原有的链成为后面的主链。这笔伪造的交易就被所有节点认可成为了“真实的交易”。这种情况下B就会一直收不到钱。

Transaction Fee 交易手续费

交易手续费是指在付款方发起交易时,提供的超过该次交易金额的部分,一般作为挖矿奖励支付给旷工。交易手续费除了激励矿工外,还有一个好处是能够防止利用大量的小额交易来对区块链网络进行攻击。

关于比特币地址

1.以1开头的是常用旧地址

2.以3开头的有两种情况,一种是多签地址,一种是支持sw的地址(用这个地址转账手续费比1开头的低一半,但是有的交易所不支持)

insight比特币全节点的一个nodejs开源实现

insight is an open-source Bitcoin blockchain explorerwith complete REST and websocket APIs that can be used for writing web wallets and other apps that need more advanced blockchain queries than provided by bitcoind RPC. Check out the source code.

insight is still in development, so be sure to report any bugs and provide feedback for improvement at our github issue tracker.

币值排名

继续阅读 »