精华内容
参与话题
问答
  • 区块链

    千次阅读 2019-11-14 10:34:47
    区块链开发 1、区块链的产生 2008-01中本聪提出里区块链的概念,2009-01-03创世区块链出现,2009-01-09出现序号为1的区块链,并与创世区块连接形成区块链。 2、区块链的特征 去中心化:区块链使用分布式核算储存自成...

    区块链

    区块链是一种以密码学方式保证的不可篡改和不可伪造的分布式账本。
    区块链开发

    1、区块链的产生
    2008-01中本聪提出里区块链的概念,2009-01-03创世区块链出现,2009-01-09出现序号为1的区块链,并与创世区块连接形成区块链。
    2、区块链的特征
    去中心化:区块链使用分布式核算储存自成一体,不依赖任何中心机构机构,也没有中心管制,任何节点的权力和义务都是均等的,系统中的数据由整个系统来维护。
    开放性:除了交易的私有信息被加密,其它数据对所有人开发,所有人都可以通过公开接口查询区块链数据和开发的相关应用,这个系统信息高度透明。
    独立性:区块链通过哈希算法让所有节点都产生信任,无法人为干预
    信息不可篡改:信息一旦存入,只要不能掌控全部数据节点的51%,就无法肆意操控修改网络数据,这使区块链本身变得相对安全,避免了主观人为的数据变更。
    匿名性:各区块节点的身份信息不需要公开或验证让对方产生信任,之需要遵循固定的算法,就可以达到数据交互的信任。
    3、区块链的核心技术
    分布式账本:交易记账由多个节点共同完成,而且每一个节点都记录的是完整的账目,因此它们都可以参与监督交易合法性,同时也可以共同为其作证。不同于传统的中心化记账方案,没有任何一个节点可以单独记录账目,从而避免了单一记账人被控制或者被贿赂而记假账的可能性。另一方面,由于记账节点足够多,理论上讲除非所有的节点被破坏,否则账目就不会丢失,从而保证了账目数据的安全性。
    对称加密和授权技术:存储在区块链上的交易信息是公开的,但是账户身份信息是高度加密的,只有在数据拥有者授权的情况下才能访问到,从而保证了数据的安全和个人的隐私。
    共识机制:就是所有记账节点之间怎么达成共识,去认定一个记录的有效性,这既是认定的手段,也是防止篡改的手段。
    智能合约:智能合约是基于这些可信的不可篡改的数据,可以自动化的执行一些预先定义好的规则和条款。
    4、区块链的发展前景
    从长远的角度来看,数字货币交易完成了向全球交易平台的转移,直接将数字货币推向了一个新的高度,数字货币在国际上的发展,将会直接影响到数字货币在各个国家的发展状况。所以未来的数字货币将成为不可阻挡的历史潮流。
    5、区块链的痛点
    基础技术层面,目前区块链的大规模应用也还存在不少瓶颈。
    许多人都质疑数字资产和区块链技术的真正价值。
    在这里插入图片描述

    展开全文
  • 最近还在继续研究AntShares区块链,可能是因为用C#实现,所以看起来特别怀旧,毕竟好久也没有写C#了。本文还会讲到搭建私有链,玩了一段时间,发现短期内是不能完全甩开Windows,所以干脆就3个Linux虚拟机(网络连接...

    最近还在继续研究AntShares 区块链,可能是因为用C#实现,所以看起来特别怀旧,毕竟好久也没有写C#了。本文还会讲到搭建私有链,玩了一段时间,发现短期内是不能完全甩开Windows,所以干脆就3个Linux虚拟机(网络连接方式:桥接网卡)+一个Windows机器来搭私有链好了。本文的环境:ubuntu 16.04 ,AntSharesCore-CLI-v1.6.1 ,AntSharesCore-GUI-v1.6.6354.35073 ,net core 1.0.4。

    首先,在ubuntu安装.net core,详见上篇《AntShares区块链的节点部署与搭建私有链

    其次,创建4个钱包文件,用AntSharesCore-GUI来创建:

    钱包1,文件名 1111.db3: 
    公钥:02494f3ff953e45ca4254375187004f17293f90a1aa4b1a89bc07065bc1da521f6
    私钥WIF : Kzo8BkCuamp9LX6KEHQ7c49QNunYX1KqrL8NZxNqy9H77B76tNiF

    系统IP:192.168.0.105,IP自己查系统


    钱包2,文件名 2222.db3
    0258104bb969fa7c5d82da43cd2c79ab65eea8d5cf659ebedaee4740bb5112b819
    L2yQ6JdFw9zQfWVER95Sgu9qfG6r5T5JkwkJCnHovmAUbxnTJaHa

    系统IP:192.168.0.108,IP自己查系统


    钱包3,文件名 3333.db3
    03386062735a119574aedecafe3f4643ab0d0f448f24792468457413cb25fe2319
    L3m41zNEHb96cGjYRJb663yDVbEGQ5cV9Ueu13SrKDujsqJyK9oH

    系统IP:192.168.0.109,IP自己查系统


    钱包4,文件名 4444.db3
    020a2cf0910ca684b1fcb2e4f55b8b2b8024aba5f28b17b8f0bfd8966ab4d1d30a
    L2s6eckoH6j9LTkAzqg7V4mJ6xxJaSPabysqVJPKkxPQyacXvk9F
    系统IP:192.168.0.107,IP自己查系统

    然后,4个节点上的AntSharesCore的procotol.json都修改成以下内容:
    {
      "ProtocolConfiguration": {
        "Magic": 20170603,
        "AddressVersion": 23,
        "StandbyValidators": [
          "02494f3ff953e45ca4254375187004f17293f90a1aa4b1a89bc07065bc1da521f6",
          "0258104bb969fa7c5d82da43cd2c79ab65eea8d5cf659ebedaee4740bb5112b819",
          "03386062735a119574aedecafe3f4643ab0d0f448f24792468457413cb25fe2319",
          "020a2cf0910ca684b1fcb2e4f55b8b2b8024aba5f28b17b8f0bfd8966ab4d1d30a"
        ],
        "SeedList": [
          "192.168.0.105:10333",
          "192.168.0.108:10333",
          "192.168.0.109:10333",
          "192.168.0.107:10333"
        ],
        "SystemFee": {
          "EnrollmentTransaction": 0,
          "IssueTransaction": 0,
          "PublishTransaction": 0,
          "RegisterTransaction": 0
        }
      }
    }


    准备工作结束后,可以开始跑起私有链,ubuntu的3个虚拟机分别执行以下命令,记得开RPC,注意分别修改 1111.db3、2222.db3、3333.db3
    cd AntSharesCore
    dotnet AntSharesDaemon.dll /rpc
    open wallet 1111.db3
    start consensus


    打开GUI版 AntSharesCore-GUI-v1.6.6354.35073,在PC版客户端中打开钱包 4444.db3,右键-》创建合约地址-》多放签名,输入 protocol.json 中的4个公钥,设置最小签名数量为3(共识节点数量/2 + 1), 如图所示


    然后,在菜单栏中点击“钱包”重建钱包索引,4个节点运行结果如下图:


    接下来,讲解如何部署智能合约。
    第一步,菜单栏--高级--Deploy Contract

    第二步,把智能合约load进去,Information那部分随便填,区块链的“交易”可以是发布智能合约,私有链这里零花费直接交易。


    第三步,获取交易编号,TXID = b25f28d590d58b8e287d343afadc69b2029f55359f15d5b4b630971b42c3d0f3 


    拿着这个TXID可以通过第三方的post工具来使用AntShares的RPC服务,这里使用getrawtransaction 方法
    (根据指定的散列值,返回对应的交易信息),使用方法详见(http://docs.antshares.org/document/node/api/getrawtransaction.html),查看交易的详情,192.168.0.108是Linux虚拟机IP,10332是Http的RPC端口:


    部署智能合约没问题,接下来要研究一下如何查询某个智能合约执行的结果。

    展开全文
  • 区块链开发环境搭建

    2018-11-27 14:25:27
    主要总结在基于Ubuntu14.04系统上搭建区块链开发平台的过程。目前搭建区块链开发环境还是比较复杂,推荐使用Mac OS X和Linux操作系统,目前不建议使用Windows,可能会碰到各种各样的问题,最后导致放弃。
  • 区块链搭建矿池

    千次阅读 2016-10-14 23:30:41
    所以一些针对性的区块链搭建是非常重要的。下面为大家介绍一下如何进行区块链搭建矿池?  说到比特币,大家最常的反应就是比特币挖矿,但实际上比特币的交易员不知比特币挖矿这么简单,其中涉及的区块链在建
    区块链是现在虚拟货币交易过程中的基础,大部分虚拟货币交易过程都需要用到区块链,区块链中的所有信息理论上是可以共享的,但是如果对于一些专业的或者经常性的虚拟交易,通过共有区块链进行交易会比较浪费时间。所以一些针对性的区块链搭建是非常重要的。下面为大家介绍一下如何进行区块链搭建矿池?
        说到比特币,大家最常的反应就是比特币挖矿,但实际上比特币的交易员不知比特币挖矿这么简单,其中涉及的区块链在建造过程中也需要搭建矿池。想要完整的建造和开发区块链,首先需要了解如何进行区块链搭建矿池。区块链的矿池实际上属于区块链的具体数据库,这些数据信息可以通过网络共有数据进行调取,但共有数据库由于涉及到的数据量非常大,从大量数据信息中调取有用数据需要大量计算和很长时间,而搭建交易相关的区块链,可以在数据池中只存取常用信息,这样在调取信息时可减少很多数据筛选的时间,大大加快交易速度。

    综上所述,区块链搭建矿池在区块链开发过程中是非常重要的,除了矿池的建设,具体的智能合约和数据提取方式也十分重要,只有各个步骤相互配合才能建设出有用且高效的区块链,想要搭建起完善的区块链需要很长时间的学习和经验,一开始最好从比较简单的入手,未来区块链的发展很有可能从网络走入现实。
    展开全文
  • BTC区块链搭建及应用

    千次阅读 2018-09-02 15:07:48
    《BTC区块链搭建及应用》 BTC区块链搭建 准备操作系统,目前使用的是64位的CentOS6.8阿里云服务器 查看操作系统磁盘空间,需要至少300G磁盘空间,目前生产和测试环境的BTC区块数据已经达到了200G左右,使用df -h...

    《BTC区块链搭建及应用》

    • BTC区块链搭建
    1. 准备操作系统,目前使用的是64位的CentOS6.8阿里云服务器
    2. 查看操作系统磁盘空间,需要至少300G磁盘空间,目前生产和测试环境的BTC区块数据已经达到了200G左右,使用df -h命令查看,如下:

    [root@iZ2zeauqkyqtj5k0ntwr5iZ bitcoin]# df -h

    1. 下载最新版本的BTC客户端同步工具,下载地址为:

    https://bitcoin.org/en/download

    使用技巧:对于连上网的Linux系统,可以使用wget命令下载,如下:

    [root@iZ2zeauqkyqtj5k0ntwr5iZ ~]# wget \

    https://bitcoin.org/bin/bitcoin-core-0.16.0/bitcoin-0.16.0-x86_64-linux-gnu.tar.gz

    1. 下载之后,创建文件夹,解压,按照名称加版本号重命名,如下:

    [root@iZ2zeauqkyqtj5k0ntwr5iZ bitcoin]# mkdir -pv /data/blockchain_data/bitcoin/

    [root@iZ2zeauqkyqtj5k0ntwr5iZ bitcoin]# tar xf bitcoin-0.16.0-x86_64-linux-gnu.tar.gz \

    -C /data/blockchain_data/bitcoin/

    [root@iZ2zeauqkyqtj5k0ntwr5iZ bitcoin]# cd /data/blockchain_data/bitcoin/

    [root@iZ2zeauqkyqtj5k0ntwr5iZ bitcoin]# mv bitcoin-0.16.0-x86_64-linux-gnu bitcoin-0.16.0

    1. 创建数据目录,并启动BTC客户端同步工具

    [root@iZ2zeauqkyqtj5k0ntwr5iZ bitcoin]# mkdir -pv data_0.16.0

    [root@iZ2zeauqkyqtj5k0ntwr5iZ bitcoin]# cd bitcoin-0.16.0/bin/

    [root@iZ2zeauqkyqtj5k0ntwr5iZ bin]# ./bitcoind -rpcuser=BpKgvNqEMYU \

    -rpcpassword=5McOBR6cpRNM8zaOxmxYf80AbWhCne0KbhNPjPbOM \

    -rpcallowip=120.27.14.93 \

    -datadir=/data/blockchain_data/bitcoin/data_0.16.0/ \

    -keypool=10000 \

    -daemon \

    -txindex=1

    参数含义:

    bitcoind: 该文件为一个可执行文件,是BTC客户端同步工具的核心

    -rpcuser:指定rpc方式访问BTC链时的用户名,在进行rpc访问时,需要进行身份认证

    -rpcpassword:指定rpc方式访问BTC链时的密码

    -rpcallowip:指定哪些IP可以通过远程的方式访问BTC区块链的API接口

    -datadir:表示BTC同步区块数据时的数据存放目录

    -daemon:表示以后台进程的方式启动,不向控制台实时输出日志,如果要实时查看日志,可以在datadir指定的目录下查看debug.log文件

    -txindex:表示是否开启交易信息查询功能,如果没有改选项,则在区块数据同步完成之后,无法查询到非本链上的交易记录.

    注意:如果需要更多的启动参数,可以通过./bitcoind --help命令查看。

    启动之后可以查看到类似于如下的输出信息:

    1. 验证是否启动成功:

    方法一:

    查看端口,使用如下命令:

    [root@iZ2zeauqkyqtj5k0ntwr5iZ data_0.16.0]# netstat -tunlp

    BTC启动之后,默认会开启两个tcp端口,8332为rpc服务监听的端口,远程rpc调用的时候使用这个端口,8333为bitcoind进程的默认端口。

    方法二:

    使用如下命令查看当前区块的信息:

    [root@iZ2zeauqkyqtj5k0ntwr5iZ data_0.16.0]# cd \

    /data/blockchain_data/bitcoin/bitcoin-0.16.0/bin/

    [root@iZ2zeauqkyqtj5k0ntwr5iZ bin]# ./bitcoin-cli getblockchaininfo

    注意:

    1. BTC链刚启动的时候有个初始化的过程,如果刚启动就使用这个命令查看当前区块信息,可能查不到,也可能会卡住没反应,可以等一会再试;
    2. 版本不同,这个命令也会有所不同,0.16.0之前的版本可以直接使用getinfo命令查看,即:

    [root@iZ2zeauqkyqtj5k0ntwr5iZ bin]# ./bitcoin-cli getinfo

    1. 验证是否同步完成

    第一步:首先查看当前区块的区块高度,0.16.0版本的使用如下命令查看:

    [root@iZ2zeauqkyqtj5k0ntwr5iZ bin]# ./bitcoin-cli getblockchaininfo

    第二步:查看区块链浏览器上的最新区块高度:

    地址:

    https://blockchain.info/zh-cn/

    如果上述两个地方查出的区块高度相差不大或者相等,则说明区块同步完成。

    • BTC区块链常见的操作
    1. BTC区块启动命令:

    [root@iZ2zeauqkyqtj5k0ntwr5iZ bin]# ./bitcoind -rpcuser=BpKgvNqEMYU -rpcpassword=5McOBR6cpRNM8zaOxmxYf80AbWhCne0KbhNPjPbOM -rpcallowip=120.27.14.93 -datadir=/data/blockchain_data/bitcoin/data_0.16.0/ -keypool=1000000 -daemon -txindex=1

    1. BTC区块停止命令:

    [root@iZ2zeauqkyqtj5k0ntwr5iZ bin]# ./bitcoind stop

    注意:如果上述命令长时间不能停止BTC区块,则可以使用kill命令结束bitcoind进程.

    3.BTC查询类命令:

    请参考文档:https://en.bitcoin.it/wiki/Original_Bitcoin_client/API_calls_list

    使用方法:

    进入到BTC的安装目录的bin目录下,然后执行:

    ./bitcoin-cli [command] [params] -rpcuser=xxx -rpcpassword=xxx即可

    如:./bitcoin-cli getbalance wb表示查询wb账户中的余额.

    使用技巧:

    如上命令每次使用都需要加-rpcuser和-rpcpassword参数,可以将此参数配置在用户家目录下的.bitcoin/bitcoin.conf文件中:

    • BTC区块同步过程中常见的问题
    1. 区块同步过程中由于网络原因链接超时,重启BTC区块即可。
    2. 区块数据写入磁盘失败,需要检查是否磁盘已满,如果磁盘已满,需要更换数据盘。
    3. 云服务器上BTC链部署好之后,无法远程访问

    可能的原因:

    1. 被云服务器自身的防火墙拦截
    2. 被云服务器的安全规则拦截
    3. 区块链上不允许某个IP访问

    解决办法:

    (1)查看云服务器的防火墙,安全规则是否允许某个IP访问

    (2)查看BTC区块链启动的时候,IP是否在其允许访问的列表中,如下:

    如上表示该区块链允许IP为120.27.14.93的客户端访问。

    • BTC升级步骤

    前提:升级之前,需要确保至少有两台BTC区块链服务器,否则会长时间的中断业务

    假设:有A服务器,和B服务器,BTC的版本目前都为V0.15.0

    业务:需要将BTC服务的版本由V0.15.0升级到V0.16.0

    升级步骤:

    1. 如果A服务器之前在使用,可以选则一台空闲的服务器,比如:B服务器。首先将使用到B服务器上BTC服务的接口都切换到A服务器的BTC服务上,如果没有则不用切换,直接升级B服务器即可;
    2. 目前需要切换的系统为区块链接口系统,服务为:

    发币及各类查询:修改Tomcat中项目的配置文件,然后重启tomcat即可。如下:

    1. 停止B服务器上的区块链服务,然后验证应用是否正常。如果正常,开始备份B服务器的datadir所指定的目录下的wallet.dat(BTC的钱包文件,如果之前正在使用该链发币,则这个文件很重要!)文件,如果之前没有使用B服务器做过发币操作,也没有收币操作,也可不用备份。然后删除B服务器上BTC的数据目录。
    2. 下载新版本的BTC客户端工具,按照区块链搭建的步骤重新操作一遍,启动即可。
    3. 一天之后,如果新的BTC区块链同步完成(验证方法为“一、”中的第7步),则将原来A服务器上的钱包文件传到B的datadir目录下,具体操作过程:
    1. 停止区块链接口系统(关闭区块链系统Tomcat服务),防止备份过程中出现数据不一致。此时需要给前端业务系统通知,然后通知用户服务正在升级;
    2. 停止B服务器上的BTC区块服务;
    3. 停止A服务器上的BTC区块服务,然后将A服务器上的datadir目录下的wallet.dat文件传到B服务器上,这个文件可能比较大,可以压缩之后通过scp命令传输;
    4. 传输完成之后,启动A服务器上的BTC区块服务和B服务器上的BTC区块服务,然后将Tomcat中的配置的BTC区块服务器IP改为B的IP。稍等10分钟左右启动Tomcat(因为在BTC的启动过程中有个初始化的过程,如果此时调用BTC区块链服务,会出现长时间卡顿现象);
    1. 通知业务系统,验证BTC服务是否正确,此时先不要删除A服务器上的区块数据,使其继续同步,防止出现异常可以及时回滚;
    2. 验证BTC服务正产之后,可以升级A服务器上的BTC服务。删除数据目录,使用区块链搭建中的方法重新执行一遍即可;
    3. 至此,两台区块链服务器升级完毕;
    • 常用查询类网站
    1. 交易查询浏览器和BTC在线钱包:https://blockchain.info/
    2. 图形化界面钱包:https://jaxx.io/
    3. BTC查询浏览器:https://btc.com/
    展开全文
  • 本地区块链搭建安装钱包

    千次阅读 2018-07-17 12:18:01
    1、Ganache:Ganache是搭建本地区块链最简单的工具。 下载地址: https://truffleframework.com/ganache 2、METAMASK钱包插件:METAMASK是一个管理账户的一个浏览器插件。 下载地址: ...
  • 区块链搭建以及智能合约的运行

    千次阅读 2017-05-17 13:08:26
    ( 强烈建议所有操作在root下搭建环境和运行. ) 实现目标:区块链技术-智能合约-以太坊 (译文) 安装环境ethereum&solc(此处参考:区块链技术-智能合约-以太坊(译文) , smartsponsor-github ) 安装ethereum,solcsudo apt...
  • Ethereum(以太坊)是一个使开发人员能够建立和发布下一代分布式应用的公共区块链平台。 通过其专用加密货币以太币(Ether)提供去中心化的虚拟机(称为“以太虚拟机”Ethereum Virtual Machine)来处理点对点合约。...
  • 经过前面文章介绍,已经搭建以太坊的区块链环境,但是没有一个界面能查看到区块链的块数等信息,不是很直观,本篇搭建以太坊区块链浏览器。 下载区块链浏览器代码 uiran@cuiran:~/ethereum$ git clone ...
  • 区块链软件平台搭建,期货软件平台搭建,数字货币,两融,股配 如何寻找好的区块链平台呢?随着市场的发展,区块链逐渐普及,市场到处都是区块链软件,当然有好的,也有坏的,好的平台功能齐全,性能稳定,价位相对...
  • 微信公众号:帝都小崔Cayden 如有问题或建议,请公众号留言 ...区块链是什么?一句话,它是一种特殊的(非关系型)...任何需要保存的信息,都可以写入区块链,也可以从里面读取,所以它是数据库。 其次,...
  • 区块链开发环境搭建总结

    千次阅读 2017-04-12 23:38:14
    这篇博客是我在搭建区块链开发环境的经验,遇到的问题和解决方法,希望能通过这篇博客帮助到需要的人
  • P3 搭建区块链底层技术 P4 区块链技术与应用 P5 搭建Fabric(实践中), P6 实战区块链落地(研究中) 未来的发展趋势,使得价值交换也会变得跟信息传播一样的方便。 人人都是掘金者,他们所说的话将成为了掘金...
  • 区块链开发的环境搭建

    万次阅读 2016-10-09 19:38:25
    区块链开发(一)搭建基于以太坊的私有链环境    通过本文所述方法和项目中的脚本,我们可以快速的搭建好自己的私有链进行区块链开发测试,本文基于以太坊技术进行搭建,分两个部分,一个是Ubuntu下搭建方法,另...
  • Java搭建区块链开发环境

    千次阅读 2018-06-05 21:39:54
    1.首先我们需要一个虚拟机或者ubuntu 16.04云服务器 我的环境是ubuntu 16.04 ok,第一步,跟着我的节奏来 至于怎么安装ubuntu,大家可自行度娘 建议搭建选择国内的源(国外的源访问实在实在实在....................
  • 区块链开发(一)搭建基于以太坊的私有链环境

    万次阅读 多人点赞 2016-07-07 23:10:00
    通过本文所述方法和项目中的脚本,我们可以快速的搭建好自己的私有链进行区块链开发测试,本文基于以太坊技术进行搭建,分两个部分,一个是Ubuntu下搭建方法,另一个是Windwos下搭建方法,关于以太坊相关的基础知识...
  • NULS 由微内核和功能模块组成,以弱化主链的全新思维,通过事件和服务的剥离,实现高度模块化的底层架构,提供智能合约、多链并行、跨链共识等运行机制,降低开发和使用的成本, 推动区块链商业应用进程。...

空空如也

1 2 3 4 5 ... 20
收藏数 12,206
精华内容 4,882
关键字:

区块链搭建