zoukankan      html  css  js  c++  java
  • 比特币学习笔记(一)---在windows下编译搭建比特币环境

    最近打算研究下比特币源码,却发现这套源码正常情况下得在linux下编译运行,而我的机器是windows的。

    怎么办呢?

    起初打算用mingw和cygwin搞搞看,试了许久后发现行不通,必须转到linux环境下才行。

    为了在windows下使用linux环境,最初是打算用虚拟机的,后来又想起win10下已经支持linux了(WSL),所以打算先用WSL试试,没想到竟然真的成功了。

    故写下这篇文章,记录下环境搭建过程,以免以后再有类似需求的话会走弯路。

    安装并配置WSL

    在开始之前先确定一下Windows版本是不是Windows10,然后建议更新到最新版.
    打开 Microsoft Store , 搜索 Linux 会有三个结果 Ubuntu , openSUSE Leap42 , SUSE Linux Enterprise Srever

     


    因为日用为主所以这里选择 Ubuntu,用Ubuntu作为示范(WSL里的Ubuntu自带git,vim,ssh等常用软件,其他的没用过不清楚).
    傻瓜式安装完成之后(连下一步都没有),会弹出通知直接打开就行,如果没有通知可以去开始里找到刚刚安装好的 Ubuntu 打开就行了

     


    但是,这个时候会发现,不能用提示没有打开WSL,需要启动后重试

     


    需要到 控制面板所有控制面板项程序和功能 中选择 启用或者关闭Windows功能

     


    找到 适用于Linux的Windows子系统 并勾选,然后 确定 选择 立即重新启动

     

    重启之后再次打开 Ubuntu 就可以使用了,根据提示输入用户名,两次输入密码就可以看见熟悉的命令行

     

    然后熟悉的套路,先设置root用户

    sudo passwd root

    su root

    然后输入root用户的密码即可,接着更换 apt 的数据源

    cd /etc/apt  #进入配置文件所在目录
    cp sources.list sources.list.bak  #备份配置文件
    vim sources.list  #编辑配置文件

    将下面的配置覆盖 sources.list 中的配置

    deb http://mirrors.163.com/ubuntu/ bionic main restricted universe multiverse
    deb http://mirrors.163.com/ubuntu/ bionic-security main restricted universe multiverse
    deb http://mirrors.163.com/ubuntu/ bionic-updates main restricted universe multiverse
    deb http://mirrors.163.com/ubuntu/ bionic-proposed main restricted universe multiverse
    deb http://mirrors.163.com/ubuntu/ bionic-backports main restricted universe multiverse
    deb-src http://mirrors.163.com/ubuntu/ bionic main restricted universe multiverse
    deb-src http://mirrors.163.com/ubuntu/ bionic-security main restricted universe multiverse
    deb-src http://mirrors.163.com/ubuntu/ bionic-updates main restricted universe multiverse
    deb-src http://mirrors.163.com/ubuntu/ bionic-proposed main restricted universe multiverse
    deb-src http://mirrors.163.com/ubuntu/ bionic-backports main restricted universe multiverse

    于是我就想,既然这是安装在Windows上的子系统,那是不是应该有着类似于共享文件夹的东西,于是找到了这么一个文件夹

    C:Users\%USERNAME%AppDataLocalPackagesCanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgscLocalState
    ootfs

    这个就是 Ubuntu WSL版的根目录,接着到 *etcapt* 下找到 sources.list 用之前贴的配置文件覆盖即可.接着更新数据源

    sudo apt-get update  #更新源  
    sudo apt-get upgrade  #更新软件 

    安装并编译比特币源码

    首先,我们去拿比特币源码

    git clone https://github.com/bitcoin/bitcoin.git

    然后,执行以下命令,安装编译所需的组件

    sudo apt-get install make
    
    sudo apt-get install gcc
    
    sudo apt-get install g++
    
    sudo apt-get install libdb-dev
    
    sudo apt-get install libdb++-dev
    
    sudo apt-get install libdb5.1++-dev
    
    sudo apt-get install libboost-dev
    
    sudo apt-get install libboost-all-dev
    
    sudo apt-get install zlib1g-dev
    
    sudo apt-get install libssl-dev
    
    sudo apt-get install build-essential
    
    sudo apt-get install libminiupnpc-dev
    
    sudo apt-get install autoconf
    
    sudo apt-get install libqt5gui5 libqt5core5a libqt5dbus5 qttools5-dev qttools5-dev-tools libprotobuf-dev protobuf-compiler
    
    sudo apt-get install libqrencode-dev libminiupnpc-dev

    第三步,安装berkeley-db(伯克利 数据库):

    Berkeley DB是一个开源的文件数据库,介于关系数据库与内存数据库之间,使用方式与内存数据库类似,它提供的是一系列直接访问数据库的函数,而不是像关系数据库那样需要网络通讯、SQL解析等步骤。

    在bitcoin目录下建立文件夹db4:

    cd bitcoin

    mkdir db4

    然后下载berkeley-db安装包:

    wget 'http://download.oracle.com/berkeley-db/db-4.8.30.NC.tar.gz' 

    我安装这个版本的berkeley挺顺利的。如果不顺利,可以尝试下载

    wget 'http://download.oracle.com/berkeley-db/db-6.2.32.NC.gz'

    这个版本的数据库。

    接下来就是解压和编译:

    tar -xzvf db-4.8.30.NC.tar.gz

    cd db-4.8.30.NC/build_unix/

    ../dist/configure --enable-cxx --disable-shared --with-pic --prefix=/home/theusername/bitcoin/db4/

    make install

    最后,编译比特币主代码:

    进入代码主目录

    ./autogen.sh

    ./configure LDFLAGS="-L/home/theusername/bitcoin/db4/lib/" CPPFLAGS="-I/home/theusername/bitcoin/db4/include/"

    make

    sudo make install

    验证是否安装成功:

    那怎样证明安装成功了呢。我们通过以下两个命令行进行验证:

    $ which bitcoind

    /usr/local/bin/bitcoind

    $ which bitcoin-cli

    /usr/local/bin/bitcoin-cli

    结果正常输出了。终于完成了进入比特币源码世界的第一步了。

    本博文借鉴资料:

    https://www.jianshu.com/p/0d3a32a0a973
    https://www.jianshu.com/p/6b02948b3d37

  • 相关阅读:
    OAuth2在微服务架构中的应用
    使用SpringSecurity体验OAuth2 (入门2)
    SpringSecurity的配置分析
    SpringSecurity在Springboot下使用的初步体验
    Spring框架中的org.springframework.context.annotation.Import注解类
    使用SpringSecurity体验OAUTH2之一 (入门1)
    5. SpringBoot —— Actuator简介
    无题
    C# 委托的本质
    json 字符串 反序列化
  • 原文地址:https://www.cnblogs.com/lsm19870508/p/11468764.html
Copyright © 2011-2022 走看看