比特币

      比特币自2008年中本聪首次提出之后,2009年问世,至今4年,从不起眼的虚拟货币变成世界最具价值的电子货币,不少国家已经承认比特币的货币地位。基于密码学和分布式网络的基本原理,利用P2P网络管理和维持整个货币体系,没有中央来管理,没有发行货币的机构,这是完全不同于真实货币的。而且比特币的数量是有限的,2100万个,现有数量已超过一半。预计到2140年全部挖掘完毕。

      首先是比特币是怎么产生的。比特币能够永久保留交易记录,靠的是整个P2P网络。比特币矿工通过解决具有一定工作量的工作量证明机制问题,来确认交易和防止双重支付,来管理比特币网络。这个工作量不是个人能轻易解决的,需要网络的合作。这个工作量的来源就是比特币的交易,每次比特币交易都会被打包到一个数据块,附到整个block chain。这个数据块附加一个随机调整数,可以调节工作量,从而调节比特币的产生速率。比如交易量多了,提高破解难度。现在每个区块的破解都会产生25个额外的比特币,奖励矿工。到以后,25会变成12.5直到2140年变成零,那时奖励矿工的就是交易费了。

      那么矿工是干嘛的? 比特币的挖矿与节点软件主要是通过对等网络、数字签名、交互式证明系统来进行发起零知识证明与验证交易。每一个网络节点向网络进行广播交易。首先数据块是使用sha256哈希的,是不可逆的,需要不断试错。因此需要大量计算力和大量矿工。谁解决了block,谁就能拿钱。靠个人解决block是很困难的,因此就诞生了pool。就是很多人协作挖矿。然后平分成果。这个平分机制比较复杂。而且有很多矿池,可以对比一下。所以随便选择一个喜欢的矿池就好了。

       基本原理到这。要开始首次挖矿。打住。请看,硬件比较。sha256d不是内存密集型的,可以通过设计针对性的硬件来计算,大大超越GPU和CPU。所以我们这GPU和CPU是赚不了钱的,电费都不够。人家ASIC和FPGA牛的飞起。我们想分一杯羹有点难。所以我决定不挖bitcoin了。而且bitcoin之前出了个事件,mt.cox里的bitcoin被盗了,我无法理解为何会发生这样的事情。。据说是bitcoin自身的漏洞。反正这事件过后,bitcoin就开始有点贬值了。所以我决定挖litecoin。见后文。

      ps:我在想,如果使用bitcoin的网络,来计算科学问题,比如生物基因什么的,这个计算量远远超过超级计算机啊。然后相关组织付给网络钱,这样也很好。但是设计难度估计不小。

有用链接:

  1. TP’s Bitcoin Calculator FAQ
  2. 硬件比较
  3. 挖矿指南
  4. we use coins
  5. getting start
  6. 矿池对比

 

本地dns代理(unbound)

DNS即Domain Name System,主要是管理和解析域名。像www.google.com这样的字符串路由器是不认的,路由器认ip地址,192.168.1.1这样的。为何路由器不直接根据字符串来路由呢?因为字符串没有层次化这个概念,ip有,比如美国的主要ip段,路由器就不必知道每个具体ip,只要根据前几位即可路由。而字符串则没有这样的层次化。所以需要DNS,这是非常重要的协议。 前面也说了,dns是非常不安全的,所以我用dnscrypt使dns能够安全一些。

前面的博文已经介绍了如何在本机上搭建dns代理,并使用dnscrypt。那我的手机平板和其他电脑也想使用这个dns代理怎么办?

dns

其实很方便,只要修改unbound的设置即可。具体设置如下。为何forward-zone端口是40,见前面的博文。其实为了增加稳定性,可以再加一个forward-addr: 8.8.8.8 。本地的dnscrypt-proxy跪了也问题不大。access-control: 59.78.11.0/24 allow,其中的ip是一个子网,代表59.78.11.0-59.78.11.255能ip都能使用。请根据自己的情况修改该选项。

 

这样设置之后,重启服务,然后手机或者平板要设置dns服务器,长按相应的无线,modify network->show advanced options->填入dns 1 为dns代理服务器的ip。

天朝现在(2014.3)这么做之后就可以上facebook了,或者这样说能通过改hosts来上的网站现在都能上了。

PPTP VPN

     虽然PPTP不是很安全的VPN,但是PPTP比较成熟,安装配置也很方便。像IPSec和OpenVPN配置起来非常麻烦。在DigitalOcean上买了个VPS后,必须得利用资源啊,PPTP装起,这完全是私人PPTP。速度飞起。

安装PPTP很简单, apt-get install pptpd,就可以搞定。

配置:

  1. vim /etc/pptpd.conf,加入以下说明。localip指在pptp网络中,服务器的ip,而remoteip是分配给客户端的ip。
    localip 10.12.0.100
    remoteip 10.12.0.101-200
  2. vim /etc/ppp/pptpd-options,加入dns解析服务器。随便加合理的dns服务器。
    ms-dns 8.8.8.8
    ms-dns 8.8.4.4
  3. 启用端口转发,否则无法连接外网。
    vim /etc/sysctl.conf:
    加入net.ipv4.ip_forward = 1
  4. 设置iptables,最好安装 apt-get install iptables-persistent 免得每次开机都要重新设置。
    $iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
    $iptables-save> /etc/iptables/rules.v4
  5. 设置可以使用的用户名和密码:如下所示。
    vim /etc/ppp/chap-secrets
    user1 pptpd user1password *
  6. 启用服务:

    现在就可以用手机或者电脑试试能否连接pptp,浏览和高墙之外的世界。在客户端,ifconfig -a,可以看到以下信息,说明成功。关于更复杂更安全的L2TP下次再说。

cpu14

参考链接:

  1. How To Setup Your Own VPN With PPTP
  2. Linux L2TP/IPsec VPN Server