比特币挖矿——控制器与矿机
比特币挖矿——控制器与矿机
#区块链
1. 介绍
只要把矿机插电、插网, 开启电源,它就可以 24
小时源源不断的生产虚拟货币。听起来热血沸腾吧!下面就来看看矿机怎么连网和挖矿的.矿机有很多种,有的集成很多显卡.有的看起来像台电脑,有的像个U盘.
图片.png
无论哪种矿机,至少都包含连网和计算两个部分.连网部分负责收发计算数据和证明挖矿者身份,计算部分负责具体的挖矿.这里我们来考虑最常见的一个控制板带多个矿机,连接他人矿池的情况.矿工只在设置的时候需要电脑或者手机连接到控制器的
web
界面,其余时候只要启动控制板和矿机即可挖矿(有些矿机和控制板是一体的)。当然这里指的是连他人的矿池,如果自己做矿池,矿池也是需要机器的.
2. 控制器(与网络相连部分)
下面以树莓派控制板为例分析,控制内部如何运作,以及如何与上下层交互。一般树莓派都自带再
dhcp 客户端,连上网线就能自动获取 IP 地址,其上运行一个 WebServer,外加
miner-web 工具,即可支持矿机的 Web
设置界面。矿工通过路由器看找到分给控制器的 IP 地址,然后用 http
连接的方式来设置它,此时需 ...
比特币挖矿——钱包
比特币挖矿——钱包
#区块链
1. BitCoin 钱包
BitCoin 是钱包的一种,目前它需要下载上百 G
的数据,且之后还会不断增加,其它钱包也有数据比较少的,但是做矿池一般用
bitcoin,可以把它看成实时更新的矿池数据库。
如果想做矿池的话,必须把钱包数据下到本地,而且后台进程要一直开着更新数据。还需要给钱包加密。
2. 安装配置钱包
1) 安装
1$ apt-get install bitcoind
2) 修改配置文件
12345678$ vi bitcoin.conf # 内容如下rpcuser=abcrpcpassword=123server=1rpcallowip=127.0.0.1addnode=14.111.41.235addnode=180.109.106.68addnode=119.129.41.15
注意,这里的 user 和 password 是 RPC
的用户名密码,它和钱包地址没关系,随便设什么都可以,只要和挖矿服务(如:p2pool
或 btcpool)设的一致即可。
3) 运行
i. 本机上执行
1$ bitcoin-qt
ii.
服务端执行(远 ...
比特币挖矿——区块链技术
比特币挖矿——区块链技术
#区块链
1. 说明
区块链具有数据运行公开、不可篡改、可溯源、跨国际、去中心化的特点。因此越来越多地被应用在各个领域。区块链主要技术包括:分布式数据存储、点对点传输、共识机制、加密算法,将在下面一一介绍。
2. 点对点传输
点对点技术(peer-to-peer,简称
P2P)又称对等互联网络技术,它依赖网络中参与者的计算能力和带宽,而不是把依赖都聚集在较少的几台服务器上。最典型的应用就是电驴。在这里它提供了最底层的去中心化支持。
3. 分布式数据存储
先看看对区块链最直观的感觉:当第一次运行比特币钱包时,会下载很多数据,2017
年 10 月有 150G 左右,且还在不断增加。数据存储在 data/blocks
目录下,blk*.dat 这就是区块 block。
第一个问题是:为什么建矿池需要下载这么多数据?区块链本质上是一个去中心化的数据库,我们下载的是比特币所有数据所组成的数据库,因此很大。去中心化的数据库,数据并不是保存在某一个服务器上,而且在
P2P
的每个节点上都需要保存一份。对于中心化的数据库,数据库可能被宿主或者黑客篡改,因而可靠性变差。而去中 ...
比特币挖矿——介绍
比特币挖矿——入门
#区块链
说比特币之前,先来说说虚拟货币,以及虚拟币的价值。比如说,百度文库文下载章需要付点数,自己上传文件被别人下载可以得到点数,点数就是虚拟货币,如果没有点数,又能想下文档,可以用钱兑换,这就是虚拟货币与真实货币的关系。至于一个点数研究值多少钱,又怎么给一篇文档定价,一般会借鉴类似资源的定价,使用的人多了,虚拟货币的价值也逐渐趋于稳定。
比特币是最流行的虚拟货币,它是基于 P2P 的数字货币,在互联网的某处,每
10 分钟产生 13
个币,至于新产生的币归谁,就看谁挖到了(也就是挖矿,具体算法后面说明)。一般大家最大的疑问是:算法产生的一串数就能对应真金白银吗?来看看货币的价值:钱是一张纸,印这张纸花多少钱是它的自然属性,它能当多少钱花是它的社会属性,我们更关注它能当多少钱花。钱的使用价值是以发行方的信用作担保的,也就是说有国家在,就不用担心你的钱明天变成废纸。那谁给比特币谁作担保呢?上学的时候学:说一个事物,要么是主观的,要么是客观的,现在说,介于主观和客观之间叫互为主体
(intersubjective),即:相信的人多了,它就存在了。随着比特币越来越多的被 ...
Python股票处理之八_大数定律
Python 股票处理之八 _
大数定律
1. 引子
有一天,我看见一个预测日涨跌的程序,成功率在百分之七十几,于是分享给
X 同学。结果人家说“70% 多,这准确率高么?瞎蒙的准确率也有 50%”
这准确率高么?只靠对技术形态的判断,好像也还行吧?如果有 70%
的正确率,到底怎么做赢的机会比较大?达到多少百分比,才能够满意?
看《程序员的数学 2:概率统计》中有一道类似的习题:设结果甲出现概率为
0.7,结果乙出现概述为
0.3,且不论甲还是乙,只要猜中,就能获得下注同等的金额,猜不中则输掉赌资。显然选择甲是明智的做法。假设你每天都会参与这场赌博,你会将占总资产比例
p 的金额投给甲,p 在整个过程中保持不变,请问应该如何设定 p
值?(我把该题简化了,大概是这个意思)
如果只考虑一天,显然把所有资产都投给甲p=1是最佳选择,然而不断重复赌局时,总会出现没有中奖而失去所有财产的情况。下面写一个程序模拟这个赌局:
2.程序
12345678910111213141516171819202122232425262728293031323334353637# -*- coding: ut ...
Python股票处理之七_数据库存储
Python 股票处理之七 _
数据库存储
1. 说明
股票数据无需每次都从网上下载,像日线级别的历史数据会常常用到,使用多线程下载一般也需要几个小时,最好存储到本地,除了已有的特征值,还有清洗后的数据,和计算出的新特征值,以及需要与其它程序共享数据。相对于数据文件,使用数据库更合适。
本文介绍 pandas(数据结构支持)通过 sqlalchemy 与数据库连接,存储
tushare 下载的日线数据,用一套代码操作不同数据库(Mysql/sqlite)。
2. 安装数据库
1) Sqlalchemy 工具
1$ pip install sqlalchemy
2) Mysql 数据库
12345$ sudo apt-get install mysql-server$ sudo apt-get install mysql-client$ mysql -u root –pmysql> create database stock # 建立名为stock的数据库,之后程序中会用到mysql> show databases; # 显示已有的数据库
3) Sqlite 数据库
1234 ...
Python数据分析常用工具
Python 数据分析常用工具
1.Numpy:
科学计算基础包, 提供矩阵数据类型、矢量处理,以及精密的运算库。
1$ pip install numpy
2.Pandas:
基于
Numpy,最初被作为金融数据分析工具而开发出来,一般用于处理结构化数据。
1$ pip install pandas
3.Matplotlib:
绘制数据图表
1$ pip install matplotlib
4.Seaborn:
在 Matplotlib 的基础上进行了更高级的 API
封装,从而使得作图更加容易。
1$ pip install seaborn
5.IPython:
Python 的交互式 shell,比默认的 python shell
好用,支持变量自动补全,自动缩进,支持 bash shell
命令,内置了许多很有用的功能和函数。
1$ sudo apt-get install ipython
6.Scipy:
科学计算中标准问题,包括统计,优化,整合,线性代数模块,傅里叶变换,信号和图像处理,常微分方程求解器等等.
1$ pip install scipy
Python股票处理之五_直方图统计
Python 股票处理之五 _
直方图统计
1. 说明
直方图 (Histogram)
又称质量分布图。是一种统计报告图,由一系列高度不等的纵向条纹或线段表示数据分布的情况(见下图)。
直方图是统计中的常用工具,在图像处理中,经常通过边缘或者颜色统计计算直方图,并通过直方图匹配实现图像识别;也可以据此判断颜色分布,以调节色彩均衡;还可以筛选出感兴趣的区域,并做进一步处理。
在股票数据处理中,也同理,统计出直方图后,可利用它和以往数据匹配,寻找近似的情况;统计有效数据集中区域,并聚焦于该区域进一步处理。
下面是一个最简单的实例:每天我们能看出大盘的整体涨跌,但并不了解各股涨跌情况的分布(比如:是普涨还是二八行情),下例分析并显示了昨天各股涨跌幅主要分布在哪些区间内。
2. 程序
1) 代码
123456789101112# -*- coding:utf-8 -*- import tushare as tsimport numpy as np import matplotlib.pyplot as plt e = ts.get_today_all()cc = e[u'c ...
Python股票处理之六_数据预处理A
Python 股票处理之六 _
数据预处理 A
1. 说明
在数据统计和预测的过程中,工程师基本都使用现成的算法,工程师的主要工作是根据具体业务逻辑预处理数据和选择算法。
首先要对数据预处理(数据清洗),包括数据的归一化,去除重复数据,修改错误数据,填充无效数据,抽象数据表示,筛选特征值,分配权重等等,以得到更准确的数据和更有效的结果。
继续上次关于股票直方图的话题,来看看简单的股票数据预处理。左图是昨天股票涨跌的直方图,从中看出,涨跌幅分布在
-10 到 50 的区间内。
涨幅超过 10% 是因为计入了新股的首日涨幅,跌涨超过
-10%,可能由于分红配送等原因引起。下面程序中将对此区域进行特殊处理。
对于当日停牌的数据,它的开盘价收盘价最高价最低价都是同一个值,如果加入统计,会在
0 附近形成一个无意义的峰值,在预处理中也把它去掉。
如果用左图结果做一个从 (-10,10) 共计 20
个区间的分类器,那么结果多半会落入 (-1,1)
的区间内,这并不是我们想要的。我们更希望看到的是将 3000
多支股票平均分布在这 20
个区域,每个区域股票数量相同,但是各区域大小不同。根据区域得 ...
Python股票处理之三_实时监测
Python 股票处理之三 _
实时监测
1. 说明
写个脚本帮你每天盯着某几支股票,达到预设值时响铃提醒。这是最简单的股票应用,虽然谈不上智能,但是自动化――老盯着就容易冲动操作。
本例中实现了每 5 秒取一次股票数据,并在上证指数高于 3200 点,或
601318 低于 49 元时响提醒。
2. 程序
1234567891011121314151617181920import osimport timeimport tushare as tsimport pandas as pddef check(code, low, high): df = ts.get_realtime_quotes(code) e = df[['code','name','price','time']] p = df[u'price'] print e if float(p[0]) > low and float(p[0]) < high: return True else : return ...