挑选海外域名服务商

根据最新的《境内网站管理》,未备案域名将在 7 月 24 日之前停止解析。由于这一项规定的落实需要各个域名服务商自己实施,如果实施得不好,可能连现有域名的转出也一起给禁止了,到时候可就叫天天不应了。所以趁还有时间,把所有的域名转到海外服务商才是上策。

以下介绍一下我使用过的几个域名服务商,仅供参考:

Google Domains

在域名管理方面,Google 算是后起之秀了。Google Domains 主要是为了完善 Google 的云生态环境,提供一些可以和其它服务集成的功能。基于这一点,Google Domains 中可选的根域名并不多,而且增加的速度较慢。

优势:

  • 管理界面干净,操作简便,无需额外的登录步骤(如果你已经登录了 GMail 的话)
  • 可以使用 Google Wallet 自动续费域名
  • 免费提供隐私保护,即 whois 查询不会显示注册人的真实信息

选择 Google Domains 的主要原因是本博客几乎全部使用了 Google 的服务,统一使用 Google Wallet 来付款比较方便。美中不足的是 Google 的 DNS 服务器由于大家都知道的原因而不太稳定,被迫使用了 CloudFlare

GoDaddy

大而全的服务商,什么服务都有,比如域名、主机、邮箱等,时常用打折活动。但是管理界面一直在升级,并且有部分新界面加上部分老界面的情况,操作比较复杂。

优势:

  • 可以顺便购买主机建站服务
  • 可以使用支付宝

GoDaddy 是我把域名迁移到国外后所使用的第一家服务商。有过一段时间,主机也用的是它家的。后来在 AWS 等云主机流行了之后才迁移了出去。由于 Google Domains 支持的域名并不多,所以之后还有一些域名是先注册在 GoDaddy 然后再迁移出去的。

Gandi

Gandi 是一家主要从事域名服务的商家,同时也提供了主机服务。

优势:

  • 支持几乎所有的根域名
  • 可以使用比特币支付

由于最上面的那一条通知,最近开始使用了 Gandi,把所有遗留在国内的域名全都转了出来。由于一些域名在 GoDaddy 上并不支持,所以就选择了 Gandi。从域名迁移的流程来看,Gandi 的服务基本令我满意。一点小缺陷是它似乎不支持使用信用卡自动续费,即每年到期的时候需要手动再输入一次信用卡信息,才可以续费。相比之下 GoDaddy 和 Google Domains 在这一点上做得很好。

再次提醒

为了避免不必要的问题,请尽快把没有备案的域名转移到国外的服务商。

比特币的主导权之争

摘要:最近两个月内,以比特大陆(BitMain)为代表的中国矿工势力,将和以比特币开发团队(Bitcoin Core)就比特币发展的话语权展开一场大规模斗争。如果你对事件的内幕不熟悉,建议其它货币(如 ETH 或 LTC)避险,等八月份之后事件平息了再做决定。

如果你想大致了解事情的前因后果,请继续往下读。

起因

简单来说,比特币的工作原理是一根链条(Blockchain),在这根链条上有一个一个连接着的区块(block),每一个区块记录了当前比特币的交易数据。在诞生之初,由于一些安全方面的考虑,比特币区块的大小被强制设定为最大 1MB。这个设定导致了比特币交易的速度大约是每秒 3 次交易。在比特币大热的今天,这样的交易速度显然不合理,平均一次交易的等待时间至少一个小时,而且会越来越久。

于是就有了一些加快交易速度的解决方案。

提案列表

Bitcoin Unlimited

Bitcoin Unlimited 提案直接把区块大小的上限取消,比特币矿工可以自行设定其大小,以加快交易速度。这个提案在去年试运行,期间出了各种问题,后来也就不了了之了。当时的主流意愿依然是维持当时的 1MB 区块大小不变。

SegWit 和 BIP 148

Segregated Witness (SegWit) 是区块链技术中的一个通用提案,它的作用是减少交易所使用的数据量。也就是说,虽然区块依然是 1MB,但每一个交易占用的数据少了,那每个块所能包含的交易量就多了,交易速度也就能相应提升。SegWit 是一个通用技术,在莱特币(Litecoin)已经正式启用了。而比特币圈内,用于支持 SegWit 的提案被称为 BIP 148,这两者是一回事。

顺带提一句,SegWit 是一项临时方案,它的最终目标是向闪电网络(Lightning Network)整合。闪电网络是一个高速交易系统,目前还只停留在理论阶段。

SegWit2x

SegWit2x 是由比特大陆主导的一项提案,它的内容是在 SegWit 开启的前提下,同时把区块大小上限提升至 2MB,并在未来的两年内一步一步提升到 16MB。也就是基本包含了 SegWit 和 Bitcoin Unlimited 的内容。

各方意见

Bitcoin Core

虽然比特币是一个无中心、分散式的货币体系,但它总也需要有人维护吧。比特币矿工、比特币交易所使用的软件都需要有团队来进行升级和维护,上述的新功能也需要这些人来添加和验证。这个维护的团队被称为 Bitcoin Core。

目前 Core 支持的做法是 BIP 148。由于 Core 的开发人员也要赚钱吃饭,所以有阴谋论者说 Core 已经被某公司收买并按其商业利益进行开发。对于区块扩容一事 Core 迟迟没有进展,也是其被诟病的一大原因。

比特大陆

比特大陆的主要业务是挖矿。由于近几年比特币挖矿被中国矿工把持,至少占据了 60% 的算力,于是以比特大陆为首的中国矿工有着强烈的意愿要主导比特币的发展。

比特大陆从今年年初开始推广 SegWit2x,试图胁迫 Bitcoin Core 就范。

事件进展

2017.06.15

Core 定于今年 8 月 1 日进行 BIP 148 升级,届时不升级的矿工将被踢出区块链。由于之后区块链上所有矿工全部使用了新的技术,所以比特币依然维持单个区块链。

比特大陆一直在尝试说服 Core 在早些时候(7 月底)进行 SegWit2x 升级,如果 Core 被说服,那么在 7 月底所有矿工会升级到 SegWit2x,而之后的 BIP 148 就不复存在了。

如果 Core 不同意这么做,比特大陆会在 8 月 1 日的晚些时候进行一次硬分叉。硬分叉的意思是,比特大陆旗下的矿工使用 SegWit2x,而世界上其它矿工则使用 BIP 148,这样就会产生两条区块链。至于哪一个区块链才是真正的比特币,就要看哪条链上的矿工数量多,交易量大。后续情况有可能是两条链并存,或者一条链迅速死掉,所有矿工转投另一条链。

比特大陆在昨天发表了一篇博文,强调了对于 SegWit2x 的决心,也威胁了 Core 硬分叉的必然性。

2017.06.16

币信、F2Pool 和比特币中国在同一天分别发表公告称,将支持 SegWit2x。同时强调了 SegWit2x 对 SegWit 的兼容性,暗示 Core 放弃斗争。

2017.06.19

全中国拥有比特币总算力的 82.7%。今天关于 SegWit2x 的意向投票开始,目前已有 64.8% 算力表示有意支持 SegWit2x。即使最终数字没有达到 SegWit2x 的起点(80%),现在超过一半的算力也足以让另一条链维持不下去。Core 团队已然出局,除了妥协别无它法。

分析

比特币价格

比特币价格在国内市场开放比特币提现之后,有过迅速的拉升,然后在本周由于事态升级暴跌了 30%。目前市场上观望情绪明显,如果事情不能合理解决,未来的两个月内比特币价格还会下跌。

持币风险

当硬分叉发生之后,理论上你的比特币会在每个区块链上各有一份。也就是说,如果你现在拥有 100 个 BTC,那么分叉完,假如新的区块链称为 BTC2,你将拥有 100 个 BTC 和 100 个 BTC2。当然两个区块链之间将不能进行交易,每条链上的币值会不会减半现在很难说。

实践中,如果你用的是离线钱包,那么你必然会拥有两条链上的货币。如果你用的是在线钱包服务,那么就需要看所用的服务是否同时支持两条链。对于服务提供商来说,这将是一次非常大的升级。很有可能服务商只支持一条链,然后你在另一条链的货币就没了。

对于普通用户来说,如果不想深入了解这次的冲突,建议使用避险货币如 ETH 和 LTC,等风平浪静了再说。

后续发展

从比特大陆的博文来看,无论是 Core 妥协还是硬分叉,SegWit2x 势在必行。由于有着矿工数量优势,如果 Core 一意孤行坚持 BIP 148,极有可能届时 Core 被孤立,不愿意与比特大陆合作的矿工被踢出局,比特币成为中国人的游戏。

当然比特币被中国垄断也不是件坏事,错过了炒房的同学们机会来了,我们善于炒各种东西啊。 :)

五分钟翻倍你的比特币

如果你错过了上半年比特币从 750 美元涨到了接近 3000 美元的行情,不要失落,你还有很多其它的方式可以把手中的比特币翻个几倍。

拼手气

首先声明,本站不鼓励也不提倡赌博,请按照你所在地区的规定进行合理的安排。但不可否认的是,赌博在全世界的很多地区都是开放的合法的。如果你想试试手气,而碰巧手上又有一些空闲的比特币,那么不妨小试一下,在家里就可以操作,不必特地飞去澳门或是 Las Vegas。

BitCasino

BitCasino.io 这个网站提供了一些常见的桌上游戏,如 21 点、轮盘、百家乐等,而且还有来自世界各地的真人荷官亲自发牌。最小注码是 0.0001 BTC,按现在的市值合人民币大约也就是 2 元钱。

图为游戏中真人荷官发牌的现场截图。

大多数桌上游戏的赔率都是至少一赔一,还有像轮盘这种一赔三十六的变态玩法,手气好的时候,翻个倍轻而易举哦。

FreeBitcoin

FreeBitcoin 是一个入门级的游戏网站,它提供了一些简单的小游戏,并且还能定期领到一些免费派送的比特币。最小注码没有限制,比上面的 0.0001 BTC 还要小,用来去去霉运是再好不过了。

投资理财

如果你对赌钱完全提不起兴趣,或是觉得风险太高,那么也有其它的方式可以让你的资产增值。

BitBond

BitBond 提供了基于比特币的投资服务。简单来说,就是把你的比特币借给别人,然后按一定的利息和时间收回来。当然这个利息会比一般的投资利息都高,比如下面这个,想想余额宝的年化利率只有 4% 左右,欧洲地区的存款利率已经无限接近于零,这个 26% 算是相当高了。

BitBond 最近刚刚收到了一笔 500 万欧元的投资,上升势头很盛,不必担心它破产。

当然,如果你手头缺钱的话,也可以去 BitBond 借一点哦。

BitFinex

如果你觉得 BitBond 贷款周期 12 个月太长的话,这里有一个快一点的。BitFinex 提供了每天结算的贷款,利率是约每天 0.18%,换算一下一个月有 5%,一年就有约 60% 的利润,相当可观。由于是每天结算,不想投资了可以及时撤出来,不会拖累其它的事情。

顺便说一句,在 BitFinex 中由于是充值和提现都用的是比特币,连身份验证都不需要,非常高效。

总结

比特币的好处是它不受任何线下机构的管制,汇入汇出都非常快捷,在家里有一台电脑就可以操作了。相比起用现金投资,要专门跑去银行排队签约,不同的理财要去不同的机构,充值提现可能都要等上一天,非常麻烦。而比特币无论是用来玩游戏,还是投资,都非常方便。已经持有了一些比特币,正在观望的朋友们,不妨试试上述的方式,让自己的存款变得更多。

比特币交易站点汇总

时隔两年之后,比特币再一次热了起来,同时也带动了其它数字货币的升值。以太坊(ETH)的价值在今年就上涨了 20 多倍,让投资人们看着心痒。

相对于传统的投资来说,数字货币依然是一个新兴市场。由于缺乏兼管,加上复杂的概念,普通投资者想进入这个市场的风险依然很大。为了方便后来人,这里简单介绍一下我常用的几个交易市场,如果你也有兴趣,不妨试一下。

和股市一样,交易有风险,入市需谨慎

交易市场

以下是一些可以直接使用现金货币来交易数字货币的市场。每个市场所支持的货币种类不尽相同。交易的方式大体是相同的,即先汇款到市场自己的帐户,然后买/卖数字货币,最后提现。

多数市场都提供了杠杆交易的方式,即可以向庄家借钱,赢了钱之后只需要退还本金(和一些手续费),利润全是自己的,而亏钱只会亏掉自己的本金,无需还高利贷。

Coinbase

  • 现金货币:USD、EUR
  • 数字货币:BTC、ETH、LTC
  • 注册地:美国旧金山

Coinbase 的定位是一个支付工具,它可以用于向别人付款或是收款。当然它也可以被用于投资,只不过它的模式是每次你都和 Coinbase 交易,而不是其它投资人。于是BTC 的价格就是由 Coinbase 来定,其中多少有一些水分。Coinbase 的转帐效率很高,基本上能做到当天确认。

BitFinex

  • 现金货币:USD
  • 数字货币:BTC、ETH、XRP、XMR、DASH 等
  • 注册地:中国香港

BitFinex 号称是全球最大的交易市场,接过了 Mt.Gox 的大旗,继续在一个奇怪的地方经营大型交易市场。BitFinex 的注册地在香港,银行帐户开在台湾。历史上 BitFinex 也被黑过,被盗了超过 7000 万美元。但和 Mt.Gox 不同,BitFinex 在事后努力弥补,最终在半年之后还清了所有欠款,也赢得了投资人的信心。

除了常规交易之外,BitFinex 还提供了一个借款模式,即你可以把钱借给其它人,然后从中获得利息。目前的利率稳定在 0.18% 左右每天,即一万美元一个月可以返利 500 美元左右,也算是一个比较不错的投资方式吧。

LocalBitcoins

  • 现金货币:几乎所有
  • 数字货币:BTC
  • 注册地:芬兰

LocalBitcoins 是一个线下 P2P 的交易市场,之前介绍过。无论你在哪,都可以找到适合你的买/卖家以及交易方式。交易方式和淘宝类似,一手交钱一手交货,LocalBitcoins 提供了一定程度的担保。

CEX.IO

  • 现金货币:USD、EUR
  • 数字货币:BTC、ETH
  • 注册地:英国伦敦

CEX.IO 也是一个有一些历史的交易平台了。它之前是做挖矿的,后来比特币挖矿难度越来越大之后,就转型成为一个正式的交易平台。

BitStamp

  • 现金货币:USD、EUR
  • 数字货币:BTC、XRP
  • 注册地:英国伦敦

BTC-e

  • 现金货币:USD、EUR、RUB
  • 数字货币:BTC、ETH、LTC、NMC、PPC 等
  • 注册地:俄罗斯

老牌的俄罗斯交易平台,长期以来 BTC-e 的价格都低于其它的市场,有兴趣的同学可以尝试搬砖,即在 BTC-e 买入 BTC,再去价格高的市场卖掉赚差价。

xBTCe

  • 现金货币:USD、EUR、RUB、CNY、BGP
  • 数字货币:BTC、ETH、LTC、NMC、PPC 等
  • 注册地:未知

上面 BTC-e 的合作伙伴,这两家共享了一些数据,比如报价和身份验证。xBTCe 似乎提供了银联帐款的付款方式,似乎对中国用户很友好,还没有尝试,之后再说。

火币网

  • 现金货币:USD、CNY
  • 数字货币:BTC、ETH
  • 注册地:中国

BTCTrade

  • 现金货币:USD、CNY
  • 数字货币:BTC、ETH、LTC 等
  • 注册地:中国

OKCoin

  • 现金货币:USD、CNY
  • 数字货币:BTC
  • 注册地:中国

比特币中国

  • 现金货币:CNY
  • 数字货币:BTC、LTC
  • 注册地:中国

游戏平台

FreeBitcoin

一个活了蛮久的游戏平台,之前有介绍。主要的游戏方式是猜大小和赌彩票,其中猜大小的庄家优势是 5%,如果你对数字比较敏感,可以试试看。

相关服务

TransferWise

TransferWise 的主要用途是在不同的货币之间转帐,比如 USD 转到 CNY。它的优势是转帐手续费比银行低,几乎就是中间价了。最近提供了一项新的服务,可以为客户开设一个指定币种的银行帐户,比如欧元或者美元,这个帐户可以用于收发款项。于是,对于没有外汇帐号的朋友来说,这个帐户也就可以用于在不同的比特币市场之前周转了。

OKPay

一个金融服务,可以给上述的 BTC-e 充值。

BlockChain

一个查询比特币钱包信息,交易状态的在线工具。

EtherChain

一个查询以太坊钱包信息,交易状态的在线工具。

Linux 启动时不加载罗技无线驱动

罗技对于 Linux 的支持一直都不太好,官网上从来都没有 Linux 的驱动下载。通常来说,基础设备的驱动,比如键盘鼠标等,在操作系统中是自带的,不需要额外安装。但 Linux 这个奇葩有时候会有一些例外。

Linux 有一个全盘加密的特性,就是硬盘的所有内容是加密的,在启动时需要输一个密码才可以解开然后正常启动。输入密码的界面如下。

于是就有一个先有鸡还是先有蛋的问题:是先加载驱动,还是先问用户要密码。而 Linux 的选择是先问用户索要密码。于是在某一次重启之后,我的机器就卡住了。因为 Linux 问我要密码,输入密码要用到键盘,而 Linux 还没有加载键盘驱动。搜索了一下,这一问题大约是从 Linux 内核 3.2 开始的,影响很多发行版,至少有 Ubuntu 和 Arch Linux。

简单来说,原因就是 Linux 在这个界面之前没有加载罗技的无线驱动。而最直接的解决方案显而易见,更换有线键鼠。

显然我们不愿意为了一个傻 X 的设计而更换自己的硬件。在诅咒开发人员脑残的同时,我也找了一下不花钱的解决方案。

Linux 中有一个专为罗技设计的模块,称为 hid-logitech-hidpp,只要加载了这一模块,就可以在上述的界面中使用无线键盘了。

在 Ubuntu 中,修改 /etc/initramfs-tools/modules,新增一行写入上面的模块名,然后用下面的命名更新生成启动程序:

在 Arch Linux 中,编辑文件 /etc/mkinitcpio.conf,添加一行 MODULES="hid-logitech-hidpp",然后使用下面的命名重做启动程序:

生成完毕之后,重启即可。

Javascript 中的 Lambda 表达式

Lambda 表达式是一种简易的函数定义形式,通常在编程语言用来简化代码的结构。比如以下的 Javascript 函数:

在其它语言中的 Lambda 形式为:

Lambda 表达式之所以流行,是因为它可以方便地嵌在其它语句中,比如 Java 8 使用了 Lambda 表达式大规模简化了数组的处理:

Javascript 也终于迎来的 Lambda 表达式,在 ES6 中的定义是“箭头函数”(Arrow Function),第一个例子中的函数可以被简化为:

语法和 C# 类似,而和 Java 不同。

Lambda 表达式基本上可以看成是一个语法糖,但在 EC6 中,它和 function定义的函数有一点点的不一样。你可能已经想到了,就是 this的定义域。看下面的例子:

上面的函数中,一定要使用自定义的 self来把 this传到 .eachfunction中。而使用 Lambda 表达式的话,就不需要这么做了:

箭头函数在 Chrome 45.0 和 Firefox 22.0 以上版本中支持,具体的信息请参考 Arrow functions

Go 语言 select 语句的优先级

Go 语言中,配合通道“channel”的读写操作,特地提出一个 select语句,用于多个 channel 的并发读写操作。例如:

上述代码的意思是,同时在 a 和 b 中选择,哪个有内容就从哪个读,否则输出“No data”。由于 channel 的读写操作是阻塞操作,使用 select语句可以避免单个 channel 的阻塞。 default的作用是避免两个 channel 同时阻塞。

有一个问题, selectcase顺序是随机的,并不是按代码中写的顺序。于是就产生了优先级的问题。比如我想先从 a 读取,a 没有内容的时候,再从 b 读取,就不能用上述的方式了。这种情况下的逻辑要稍微麻烦一点:

描述起来倒是蛮简单,先从 a 读,没数据的话再从两个一起读。这种方式对于读和写操作都适用, default是否需要取决于应用场景。