“人多力量大”,Bitcoin 计算网络威力初现

随着了解Bitcoin的人越来越多,对于这种不会贬值的虚拟货币兴趣也与日俱增。随着参与人数的增加,挖掘Bitcoin的难度是按指数级增长的。由于显卡中的GPU天生适合平行计算,其能力很容易扩展,因此利用GPU构建的计算平台在这种暴力计算环境下显得特别适合。问题是这样的计算能力增长的速度如此之快,以至于威胁到了互联网安全认证的核心——RSA算法。 RSA被广泛应用在SSL等端到端的加密通信中。目前国际的电子商务规范中,除了CA这样的根证书要求2048bit长度的密钥外,其他应用场合一般只要求1024bit。而目前所有BitCoin矿工的计算能力如果集中在一起,大概有46petaflops,破解RSA-1024大概需要6.4年。但是如果这个平台的计算能力积蓄增长,那么根据某俄罗斯博客的计算: 1)2012年初期,平台将具有3.8 eksaflops能力,破解RSA-1024将需要28.5天         2)2012年中期,能力将增加到242 eksaflops,破解RSA-1024将需要11小时 &#[……]

继续阅读 »

Bitcoin 与 Hadoop

Hadoop是一个分布式系统基础架构,由Apache基金会开发。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力高速运算和存储。Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。HDFS有着高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上。而且它提供高传输率(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了(relax)POSIX的要求(requirements)这样可以流的形式访问(streaming access)文件系统中的数据。 Hadoop 是一个能够对大量数据进行分布式处理的软件框架。但是 Hadoop 是以一种可靠、高效、可伸缩的方式进行处理的。Hadoop 是可靠的,因为它假设计算元素和存储会失败,因此它维护多个工作数据副本,确保能够针对失败的节点重新分布处理。Hadoop 是高效的,因为它以并行的方式工作,通过并行处理加快处理速度。Hadoop 还是可伸缩的,能够处理 PB[……]

继续阅读 »

Bitcoin任务分配随想

Bitcoin 所共享的数据就是一大堆 block,那么一个 block 里装有什么内容呢?见图1: 图5:一个Block的内容,以及Block链 一个block的主要内容是“最近的交易列表”和“上一个block的hash值”。交易列表记录着产生当前block这段时间内整个Bitcoin网络的所有交易记录,包括汇出地址、汇入地址、金额等。“上一个block的hash值”用于定位上一个block,有这个数据之后所有block就可以按顺序地形成一条链。一条完整的链记录着Bitcoin网络从诞生一刻开始直到未来所有的交易记录,这些记录会共享到每一个运行Bitcoin的节点。这里有个网站可以浏览每一个block和每一笔交易的具体内容:http://blockexplorer.com/ 。(题外话:在这个链当中的第一个block是比较特殊的,它是创始人Satoshi Nakamoto人为创造的,所以称为 Genesis Block)。 假如Bitcoin得到广泛应用,每个block中的交易列表会相当庞大,那么每个运行Bitcoin的节点会耗费大量的储存空间,到时可能更多人不再运行Bi[……]

继续阅读 »

Bitcoin P2P技术详解

Bitcoin网络不存在服务器或者中心节点,所以所有block都是从其他人所运行的Bitcoin程序处(下面称为节点)下载的,同时你已经下载的block也会共享给其他还没下载的节点。那么 Bitcoin是如何发现网络上其他节点的呢? 运行 Bitcoin 时它会首先连接一个指定的IRC(一种古老的网络聊天服务)服务器(irc.lfnet.org),然后加入 “#bitcoin”聊天频道并声明自己的IP地址,当 Bitcoin 程序查询当前聊天频道的用户时,就能获取网络上其他节点的IP地址了,然后bitcoin会自动连接一定数量的节点,可见IRC在Bitcoin网络中充当着媒介角色。假如IRC服务器当掉,那么第一次运行Bitcoin 程序时程序会调出内置的一批IP地址(称为“种子节点”)然后试图连接这些节点。Bitcoin 连接到某个节点之后还能通过那个节点获取更多其他节点,即所有节点同时也充当媒介角色,这样一个P2P网络就形成了。 Bitcoin 程序所有的功能都依赖于 Bitcoin P2P网络,有时运行 Bitcoin 程序会发现连接数(见图1窗口中底部的 connection[……]

继续阅读 »

WordPress: 利用xmlrpc的metaWeblog.newMediaObject方法上传图片

metaWeblog.newMediaObject (blogid, username, password, struct) 方法说明: 1.参数:blogid、username、password,blogid代表blog的id,在wordpress里一般是1;username、password分别是WordPress的用户名密码;struct是一种struct结构,必须包含name、type和bits三个元素,其中name就是数据名字,type之mime type,bits为经过base64编码的数据流,类型为string 2.返回值:如果调用成功,返回一个struct,至少包含一个url元素,代表数据的HTTP或者FTP URL 关于参数: 1.参数struct,name不用多说,提供字符串名字即可 2.type可以利用mime_content_type()函数获取(限于PHP5.3以下,这个函数5.3不用了,可以用fileinfo()代替) 3.bits元素,需要将媒体(图片)等打开,利用xmlrpcval类来进行base64 编码操作,不能直接[……]

继续阅读 »

PHP移除数组重复元素并重新索引: array_unique 和 array_values

问题: PHP中移除数组重复元素用的函数是array_unique。该函数移除重复的元素,但是剩下来这些元素的索引没有变化,这样的话如果用for循环调用这个数组元素的时候就会发生错误了,因为for循环的时候是按照数字递增,而且大多数人用的是count($test_array_unique)来获得数组的大小,这样就会造成一些元素被遗漏 解决办法: 当然,这里解决办法太多了,我介绍的只是一种我觉得比较简单的方法,那就是函数array_values,array_values是返回数组的值,跟索引没有关系,这样处理后会形成一个新的数组,严格按照数字递增的索引,这样再使用for循环输出边一切OK了! 转载自:http://www.fotree.com/tag/array-unique/[……]

继续阅读 »

WordPress 利用XML-RPC写远程日志,支持Custom Fields

采用metaWeblog.newPost而不是Weblog.newPost方法,支持添加Custom Fields字段

function post($result){
include(“xmlrpc.inc”);
$GLOBALS[‘xmlrpc_internalencoding’] = ‘UTF-8’;
$c = new xmlrpc_client(“xmlrpc.php”,”example.com”, 80);
$content[‘title’]=”title”;
$content[‘description’]=”content”;
$content[‘mt_keywords’]=”tag1,tag2″;
$content[‘wp_password’]=””;
$content[‘categories’] = array(“label”);
$content[‘custom_fields’] = array(
array( ‘key’ => ‘city’, ‘value’ => ‘Sacramento’ )
);[……]

继续阅读 »

集群并行文件系统 lustre 安装配置

自:http://www.goc.ac.cn/liuag/html/gnulinux_lustre_deployment.html 一 引言 Lustre是一个开源的、基于对象存储技术的集群并行文件系统,它具有很高的可扩展性、可用性、性能、易用性等,在高性能计算系统中被广泛使用。它主要包括三个部分:元数据服务器MDS (Metadata Server)、对象存储服务器OSS (Object Storage Server)和客户端Client。中科院高能所的BESIII 实验将使用网格计算技术(Grid Computing) 进行物理计算和分析,为此高能所计算中心正在基于gLite网格中间件搭建一个网格实验平台BES-GRID。传统的网络文件系统NFS在性能和可靠性等方面都存在问题,因此我们决定使用Lustre来替代NFS为网格环境提供共享存储空间。 下面我们在BES-GRID环境下进行Lustre部署。如果在其他计算环境下安装,请根据实际情况作相应改动。[……]

继续阅读 »

[转载]关于运维的一些经验

原文地址:http://www.forzw.com/archives/599 1、IP规划 IP最后位:1-30 为保留IP; IP最后位:31-240为服务器IP; IP最后位:241-254为网络设备IP; 服务器IP以31开始从小到大排列; 网络设备IP以254开始从大到小排列; DHCP分配IP从101开始; 内网地址建议抛弃192段,使用10段,无论涉及的网络规模大小,原因有三: 可扩展容量更大 减少输入次数 传说中的10段比192段更高性能; 硬件管理模块,如IMM、ILO,使用DHCP方法获取IP; 2、主机命名 所有主机,无论是unix、linux、windows系统,均采取统一主机名加域名命名办法,并确保内部DNS服务器可用。 3、用户管理 具有远程权限的用户,如root、administrator,绝对不允许具有远程登录权限,需要使用系统权限的,使用普通用户进行切换; 在当系统映像大于10的时候,应采取统用户的统一认证,推荐Windows DC 或者ldap; 4、备份管理 当备份与被备份对象[……]

继续阅读 »

redhat 5.6(RHEL5) 连接10T iSCSI SAN存储(DELL MD32xxi)

  1. 为iSCSI配置主机的网卡
    修改用于iSCSI的网卡配置文件,这里假设eth2为对应的网卡
    vim /etc/sysconfig/network-scripts/ifcfg-eth2
    DEVICE=eth2
    HWADDR=00:11:22:33:44:aa
    ONBOOT=yes
    BOOTPROTO=none
    NETMASK=255.255.255.0
    IPADDR=10.1.2.3
    TYPE=Ethernet
  2. 安装配置iSCSI initiator
    用rpm安装iSCSI Initiator:
    rpm -qa | grep iscsi
    rpm -ivh iscsi-initiator-utils-6.2.0.872-6.el5.x86_64.rpm

    配置/etc/iscsi/iscsid.conf,确保node.startup = automatic 以保证自动登录;另外根据存储的要求配置其他选项
    查看主机的iqn,用于与存储连接:
    cat /etc/iscsi/isc[……]

    继续阅读 »