比特币 Insight API 接口用于其它虚拟币/山寨币

1. 更新配置文件:
insight/node_modules/insight-bitcore-api/config/config.js

修改端口号和数据文件目录。

2. 更新文件 networks.js 中的 exports.livenet 部分:
insight/node_modules/bitcore/networks.js

Litecoin 莱特币的参数:

exports.livenet = {
  name: 'livenet',
  magic: hex('fbc0b6db'),
  addressVersion: 0x30,
  privKeyVersion: 0xb0,
  P2SHVersion: 5,
  hkeyPublicVersion: 0x0488c42e,
  hkeyPrivateVersion: 0x0488e1f4,
  genesisBlock: {
    hash: hex('E2BF047E7E5A191AA4EF34D314979DC9986E0F19251EDABA5940FD1FE365A712'),
    merkle_root: hex('D9CED4ED1130F7B7FAAD9BE25323FFAFA33232A17C3EDF6CFD97BEE6BAFBDD97'),
    height: 0,
    nonce: 2084524493,
    version: 1,
    prev_hash: buffertools.fill(new Buffer(32), 0),
    timestamp: 1317972665,
    bits: 504365040,
  },
  dnsSeeds: [
    'dnsseed.litecointools.com',
    'dnsseed.litecoinpool.org',
    'dnsseed.ltc.xurious.com',
    'dnsseed.koin-project.com',
    'dnsseed.weminemnc.com'
  ],
  defaultClientPort: 9333
};

Dogecoin 狗狗币的参数:

exports.livenet = {
  name: 'livenet',
  magic: hex('c0c0c0c0'),
  addressVersion: 0x1e,
  privKeyVersion: 0x9e,
  P2SHVersion: 5,
  hkeyPublicVersion: 0x0488c42e,
  hkeyPrivateVersion: 0x0488e1f4,
  genesisBlock: {
    hash: hex('9156352c1818b32e90c9e792efd6a11a82fe7956a630f03bbee236cedae3911a'),
    merkle_root: hex('696ad20e2dd4365c7459b4a4a5af743d5e92c6da3229e6532cd605f6533f2a5b'),
    height: 0,
    nonce: 99943,
    version: 1,
    prev_hash: buffertools.fill(new Buffer(32), 0),
    timestamp: 1386325540,
    bits: 504365040,
  },
  dnsSeeds: [
    'seed.dogecoin.com',
    'seed.mophides.com',
    'seed.dglibrary.org',
    'seed.dogechain.info'
  ],
  defaultClientPort: 22556
};

3. 更新 PROTOCOL_VERSION 版本号后才能接受 RPC 连接。

打开文件:
insight/node_modules/bitcore/lib/Connection.js

修改:
var PROTOCOL_VERSION = 70000;

为:
var PROTOCOL_VERSION = 70003;

狗狗币区块链浏览工具实例: http://dogecoin.biteast.com
比特币区块链浏览工具实例: http://bitcoin.biteast.com

比特币初创公司的点子

修复模式

  • 类似 VeriSign/CloudFlare 的比特币公司
  • 比特币钱包监控应用
  • 比特币保险业将会成为一个填补大漏洞的范例
  • 双重身份验证的一些替代品
  • 区块链搜索
  • 区块链数据库的数据压缩功能

比特币哪里比现金好呢?

  • 跨境交易(汇款)
  • 微小面额交易(微支付)
  • 作为一些新兴市场的价值存贮手段

区块链

  • 风险投资合约
  • 区块链上的普通合约——不动产,股票,保险单
  • 区块链上的身份认证
  • 侧链技术
  • 区块链上的数据可视化
  • 区块链上的票务系统
  • 区块链上的税收分配

比特币: 区块链的基础创新的解释

很多人一开始接触比特币时都会不理解的是:区块链在组织上是去中心化的,而在逻辑上是中心化的。这是什么意思?看看下面这个矩阵:

Blockchain Clarifying

“在组织上是中心化的(organizationally centralized)” 这一栏含括的系统都是由一个单一的组织控制的,比如 EBay 和微软,但这也不一定专指某个公司,也可以指一个政府。相反,“在组织上是去中心化的(organizationally decentralized)” 则是指不受任何单一实体控制的系统,不管这个系统是否以盈利为目的。

“在逻辑上是去中心化的(logically decentralized)” 所含括的系统则拥有多个数据库,并且每个部分独立控制自己的数据库。比如说,当你发给我一个 Excel 文件,我就可以在自己的电脑上修改这份文件。还有 email,我们都是在分开的数据库里控制自己的 email,比方说,我可以删除一条你发给我的邮件,但是我不能删除你的“发件箱”里那份。

相反,“在逻辑上是中心化的(logically centralized)” 则是指貌似拥有一个统一的数据库的系统。我说“貌似”,是因为从技术上讲可以有很多分开的数据系统融合进来。简单地说,“在逻辑上是中心化的”就是说,任何向这个系统提问的人都会得到一个相同的答案。

区块链最大的革新就是,实现了这个矩阵右上角的 “在组织上去中心化,而在逻辑上中心化”。我们之前已经实现了这个矩阵左上角的那一栏,比如 Paypal,它的支付系统在逻辑上是中心化的,当我在 Paypal 上给某人钱时,他的账上的钱就会增加,我的就是减少,一直以来类似的系统都是由一个单一组织控制的。

我再强调一下:在区块链系统存在之前,“没有”系统在组织方式上是去中心化的,而在逻辑上是中心化的。这就是比特币是一个基础技术的原因。当我会给某人比特币时,这就会记录在区块链上,即使这个数据库不是由任一组织控制的。这也意味着,很多需要一个整体数据库的应用现在可以在区块链应用层级(Blockchain Application Stack)上搭建了。

来源: Bitcoin: Clarifying the Foundational Innovation of the Blockchain

FRAPI 的缓存机制

使用FRAPI有一段时间了,中文文档和资料都比较少,因此就翻译了这篇,也算为开源做点贡献吧

FRAPI 可以使用 PHP 的各种缓存机制。FRAPI 内置这些接口,只要修改一行代码,就能充分利用您喜欢的缓存机制。

本中文文档翻译自英文资料,介绍了如何配置这些缓存接口:

基础知识

要使用您选择的缓存接口,需要手工修改 FRAPI 目前仅有的一行配置,配置文件位于 FRAPI_PATH/src/frapi/custom/AllFiles.php。打开文件后可以看到,仅有的常量定义是 FRAPI_CACHE_ADAPTER。您可以设置为 apc, memcached, redis, wincache, zenddisk, zendshm 或者 dummy。

在 FRAPI 以后的版本中,会在管理界面让用户指定缓存接口和服务器。

使用 APC 缓存机制

FRAPI 把 PHP 的可选缓存 — APC — 作为默认的缓存接口,也就是下载 FRAPI 后,默认的 FRAPI_CACHE_ADAPTER 常量是设置为 apc

如果您还没安装 APC 但又想用 APC,可以参阅 这里的说明。

使用 Memcached 缓存机制

如果您喜欢 Memcached 缓存机制,可以使用 FRAPI 的 “memcached” 缓存接口。memcached 缓存接口默认只连接本地主机,目前 FRAPI 还不能使用 memcached 集群,不久就会实现这个功能。

可以手工在模型中连接到 memcached 服务器集群:

    $options = array(
        'servers' => array(
            '192.168.2.1' => 11211,
            '192.168.2.2' => 11211,
        )
    );

    $cache = Frapi_Cache::getInstance('memcached', $options);
    $cache->add('foo', 'bar');
    echo $cache->get('foo');
    $cache->delete('foo');

FRAPI memcached 接口使用 PHP memcached 扩展。要安装 memcached 扩展,请参阅 这里的说明。

安装扩展并重启服务器后,设置 FRAPI_CACHE_ADAPTER 常量为 memcached,FRAPI 会在 127.0.0.1 和端口 11211 上使用 Memcached 服务器。

也可以使用 memcache 扩展。要使用 memcache 接口,需要修改 FRAPI_CACHE_ADAPTER 常量并设置为 memcache

目前不能在管理界面设置集群信息,但是已在计划之中。如果要修改默认服务器的位置,可以修改文件  FRAPI_PATH/src/frapi/library/Frapi/Cache/Adapter/Memcached.php 指向您自己的服务器。这个功能以后会加入管理界面。

使用 Redis 缓存机制

FRAPI Redis 缓存接口使用owlient 的 phpredis 扩展。如果您要安装这个扩展,请参阅 这里的说明。

安装扩展并重启服务器后,设置 FRAPI_CACHE_ADAPTER 常量为 redis,FRAPI 会通过 127.0.0.1 和 端口 6379 使用 Redis 服务器。

目前不能在管理界面设置集群信息,但是已在计划之中。如果要修改默认服务器的位置,可以修改文件 FRAPI_PATH/src/frapi/library/Frapi/Cache/Adapter/Redis.php 指向您自己的服务器。这个功能以后会加入管理界面。

使用 WinCache 缓存机制

要使用 WinCache 缓存机制,首先要 安装 WinCache 扩展。

安装扩展并重启服务器后,设置 FRAPI_CACHE_ADAPTER 常量为 wincache,FRAPI 会使用 WinCache 缓存机制。

使用 Zend Disk 缓存机制

使用 Zend 服务器,并且程序员可以访问 Zend Disk 缓存机制。要充分利用扩展的所有功能,使用 Zend 服务器的程序员唯一要做的就是设置 FRAPI_CACHE_ADAPTER 常量为 zenddisk,这样 FRAPI 会自动使用 zenddisk 缓存机制。

使用 Zend Shm 缓存机制

使用 Zend 服务器,并且程序员可以访问 Zend Shm 缓存机制。要充分利用扩展的所有功能,使用 Zend 服务器的程序员唯一要做的就是设置 FRAPI_CACHE_ADAPTER 变量为 zendshm,这样 FRAPI 会自动使用 zendshm 缓存机制。

不使用缓存

我们强烈建议不要这么做,因为 FRAPI  配置文件通常有缓存。但是,没有缓存机制的程序员,如果只是测试或体验 FRAPI,可以设置 FRAPI_CACHE_ADAPTER 常量为 dummy,FRAPI 会与有缓存一样执行但不实际使用缓存。

申请其它的接口

如果您需要其它的缓存接口,可以在 github 上提供补丁 。如果您自己没有时间或兴趣开发需要的接口,可以发邮件到 frapi-dev 邮件列表上提出申请 — 如果可能,请给出相关文档链接。