大家好,关于比特币算法程序设计软件很多朋友都还不太明白,今天小编就来为大家分享关于比特币算法程序设计软件下载的知识,希望对各位有所帮助!
本文目录
如何在windows平台下编译比特币bi比特币如何算出来的比特币算法原理比特币的原理如何在windows平台下编译比特币bi很多朋友都知道如何在linux平台如何编译比特币程序,但是,到了windows平台,
就会感觉到无从下手.其实,比特币程序是跨平台的.
你要编译windows版的比特币程序,基本上有两种方法,一种是在linux平台
(推荐ubuntu13.10)通过交叉编译的方法来编译.另外一种,就是直接在windows平台编译.
我想,你既然要在windows平台使用,我就详细介绍一下如何在windwows平台编译比特币程序.
我的平台:windows7
第一步:安装变编译环境QT和MINGW,msys
1、msys是一个在windows平台模拟shell的程序。
访问http://sourceforge.net/projects/mingw/files/Installer/mingw-get-setup.exe/download
下载安装程序之后,通过安装管理程序,按安装以下内容:
FromMinGWinstallationmanager->Allpackages->MSYS
选中以下安装包
msys-base-bin
msys-autoconf-bin
msys-automake-bin
msys-libtool-bin
点applychanges开始安装。他会自动下载安装好。
需要注意的是,确保不要安装msys-gcc和msys-w32api,因为这两个包和我们的编译系统发生冲突。
很多人出现一些莫名其妙的问题,就是因为这两个包。
2、安装MinGW-builds
访问
http://sourceforge.net/projects/mingw-w64/files/ToolchainstargettingWin32/PersonalBuilds/mingw-builds/4.8.2/threads-posix/dwarf/i686-4.8.2-release-posix-dwarf-rt_v3-rev3.7z/download
下载并解压缩i686-4.8.2-release-posix-dwarf-rt_v3-rev3.7z到C盘根目录C:\
注意我的目录结构。你尽量和我一样。
3、设置PATH环境变量,将C:\mingw32\bin;添加到第一个。
4、在命令行模式下输入gc-v会得到以下内容
c:\gcc-v
Usingbuilt-inspecs.
COLLECT_GCC=c:\mingw32\bin\gcc.exe
COLLECT_LTO_WRAPPER=c:/mingw32/bin/../libexec/gcc/i686-w64-mingw32/4.8.2/lto-wrapper.exe
Target:i686-w64-mingw32
Configuredwith:../../../src/gcc-4.8.2/configure--host=i686-w64-mingw32--build=i686-w64-mingw32--target=i686-w64-mingw32--prefix=/mingw32--with-sysroot=/c/mingw482/i686-482-posix-dwarf-rt_v3-rev3/mingw32--with-gxx-include-dir=/mingw32/i686-w64-mingw32/include/c++--enable-shared--enable-static--disable-multilib--enable-languages=ada,c,c++,fortran,objc,obj-c++,lto--enable-libstdcxx-time=yes--enable-threads=posix--enable-libgomp--enable-libatomic--enable-lto--enable-graphite--enable-checking=release--enable-fully-dynamic-string--enable-version-specific-runtime-libs--disable-sjlj-exceptions--with-dwarf2--disable-isl-version-check--disable-cloog-version-check--disable-libstdcxx-pch--disable-libstdcxx-debug--enable-bootstrap--disable-rpath--disable-win32-registry--disable-nls--disable-werror--disable-symvers--with-gnu-as--with-gnu-ld--with-arch=i686--with-tune=generic--with-libiconv--with-system-zlib--with-gmp=/c/mingw482/prerequisites/i686-w64-mingw32-static--with-mpfr=/c/mingw482/prerequisites/i686-w64-mingw32-static--with-mpc=/c/mingw482/prerequisites/i686-w64-mingw32-static--with-isl=/c/mingw482/prerequisites/i686-w64-mingw32-static--with-cloog=/c/mingw482/prerequisites/i686-w64-mingw32-static--enable-cloog-backend=isl--with-pkgversion='i686-posix-dwarf-rev3,BuiltbyMinGW-W64project'--with-bugurl=http://sourceforge.net/projects/mingw-w64CFLAGS='-O2-pipe-I/c/mingw482/i686-482-posix-dwarf-rt_v3-rev3/mingw32/opt/include-I/c/mingw482/prerequisites/i686-zlib-static/include-I/c/mingw482/prerequisites/i686-w64-mingw32-static/include'CXXFLAGS='-O2-pipe-I/c/mingw482/i686-482-posix-dwarf-rt_v3-rev3/mingw32/opt/include-I/c/mingw482/prerequisites/i686-zlib-static/include-I/c/mingw482/prerequisites/i686-w64-mingw32-static/include'CPPFLAGS=LDFLAGS='-pipe-L/c/mingw482/i686-482-posix-dwarf-rt_v3-rev3/mingw32/opt/lib-L/c/mingw482/prerequisites/i686-zlib-static/lib-L/c/mingw482/prerequisites/i686-w64-mingw32-static/lib-Wl,--large-address-aware'
Threadmodel:posix
gccversion4.8.2(i686-posix-dwarf-rev3,BuiltbyMinGW-W64project)
至此,你的开发环境已经搭建好了,很简单吧
第二部分:下载bitcoin引用的外部库
我们把它们全部放在C:\deps目录下
2.1安装OpenSSL下载:http://www.openssl.org/source/openssl-1.0.1g.tar.gz
进入启动MinGwshell比如目录:(C:\MinGW\msys\1.0\msys.bat)运行这个msys.bat,就会启动一个shell环境,提示符是$
输入命令
cd/c/deps/
tarxvfzopenssl-1.0.1g.tar.gz
cdopenssl-1.0.1g
Configureno-sharedno-dsomingw
make
等待几分钟后,就把openssl编译好了。
2.2下载BerkeleyDB访问:http://download.oracle.com/berkeley-db/db-4.8.30.NC.tar.gz
我们推荐使用4.8版本
同样在msysshell环境下输入以下命令
cd/c/deps/
tarxvfzdb-4.8.30.NC.tar.gz
cddb-4.8.30.NC/build_unix
../dist/configure--enable-mingw--enable-cxx--disable-shared--disable-replication
make
等待编译
2.3安装Boost,下载地址:http://sourceforge.net/projects/boost/files/boost/1.55.0/
msys命令:
cdC:\deps\boost_1_55_0\
bootstrap.batmingw
b2--build-type=complete--with-chrono--with-filesystem--with-program_options--with-system--with-threadtoolset=gccvariant=releaselink=staticthreading=multiruntime-link=staticstage
2.4安装Miniupnpc下载地址:http://miniupnp.free.fr/files/download.php?file=miniupnpc-1.9.tar.gz
cdC:\deps\miniupnpc
mingw32-make-fMakefile.mingwinitupnpc-static
2.5下载protoc和libprotobuf:
Downloadandunpackhttp://protobuf.googlecode.com/files/protobuf-2.5.0.zip
msysshell命令
cd/c/deps/protobuf-2.5.0
configure--disable-shared
make
2.6qrencode:
下载地址:http://prdownloads.sourceforge.net/libpng/libpng-1.6.10.tar.gz?download
命令
cd/c/deps/libpng-1.6.10
configure--disable-shared
make
下载http://fukuchi.org/works/qrencode/qrencode-3.4.3.tar.gzode:
cd/c/deps/qrencode-3.4.3
LIBS="../libpng-1.6.10/.libs/libpng16.a../../mingw32/i686-w64-mingw32/lib/libz.a"\
png_CFLAGS="-I../libpng-1.6.10"\
png_LIBS="-L../libpng-1.6.10/.libs"\
configure--enable-static--disable-shared--without-tools
make
2.7安装Qt5库
下载和解压缩
http://download.qt-project.org/official_releases/qt/5.2/5.2.1/submodules/qtbase-opensource-src-5.2.1.7z
http://download.qt-project.org/official_releases/qt/5.2/5.2.1/submodules/qttools-opensource-src-5.2.1.7z
在windows命令行输入:
setINCLUDE=C:\deps\libpng-1.6.10;C:\deps\openssl-1.0.1g\include
setLIB=C:\deps\libpng-1.6.10\.libs;C:\deps\openssl-1.0.1g
cdC:\Qt\5.2.1
configure.bat-release-opensource-confirm-license-static-makelibs-no-sql-sqlite-no-opengl-system-zlib-qt-pcre-no-icu-no-gif-system-libpng-no-libjpeg-no-freetype-no-angle-no-vcproj-openssl-linked-no-dbus-no-audio-backend-no-wmf-backend-no-qml-debug
mingw32-make
setPATH=%PATH%;C:\Qt\5.2.1\bin
cdC:\Qt\qttools-opensource-src-5.2.1
qmakeqttools.pro
mingw32-make
3.下载Bitcoin0.9.1地址:https://github.com/bitcoin/bitcoin/archive/v0.9.1.zip
在msysshell下输入以下命令行:
cp/c/deps/libpng-1.6.10/.libs/libpng16.a/c/deps/libpng-1.6.10/.libs/libpng.a
cd/c/bitcoin-0.9.1
./autogen.sh
CPPFLAGS="-I/c/deps/boost_1_55_0\
-I/c/deps/db-4.8.30.NC/build_unix\
-I/c/deps/openssl-1.0.1g/include\
-I/c/deps\
-I/c/deps/protobuf-2.5.0/src\
-I/c/deps/libpng-1.6.10\
-I/c/deps/qrencode-3.4.3"\
LDFLAGS="-L/c/deps/boost_1_55_0/stage/lib\
-L/c/deps/db-4.8.30.NC/build_unix\
-L/c/deps/openssl-1.0.1g\
-L/c/deps/miniupnpc\
-L/c/deps/protobuf-2.5.0/src/.libs\
-L/c/deps/libpng-1.6.10/.libs\
-L/c/deps/qrencode-3.4.3/.libs"\
./configure\
--disable-upnp-default\
--disable-tests\
--with-qt-incdir=/c/Qt/5.2.1/include\
--with-qt-libdir=/c/Qt/5.2.1/lib\
--with-qt-bindir=/c/Qt/5.2.1/bin\
--with-qt-plugindir=/c/Qt/5.2.1/plugins\
--with-boost-system=mgw48-mt-s-1_55\
--with-boost-filesystem=mgw48-mt-s-1_55\
--with-boost-program-options=mgw48-mt-s-1_55\
--with-boost-thread=mgw48-mt-s-1_55\
--with-boost-chrono=mgw48-mt-s-1_55\
--with-protoc-bindir=/c/deps/protobuf-2.5.0/src
make
stripsrc/bitcoin-cli.exe
stripsrc/bitcoind.exe
stripsrc/qt/bitcoin-qt.exe
这样,你就得到了变异好的bitcoin-cli.exe和bitcoind.exe,bitcoin-qt.exe(windowsQT图形界面的钱包软件)
比特币如何算出来的从比特币的本质说起,比特币的本质其实就是一堆复杂算法所生成的特解。特解是指方程组所能得到有限个解中的一组。而每一个特解都能解开方程并且是唯一的。
以钞票来比喻的话,比特币就是钞票的冠字号码,知道了某张钞票上的冠字号码,就拥有了这张钞票。而挖矿的过程就是通过庞大的计算量不断的去寻求这个方程组的特解,这个方程组被设计成了只有2100万个特解,所以比特币的上限就是2100万个。
要挖掘比特币可以下载专用的比特币运算工具,然后注册各种合作网站,把注册来的用户名和密码填入计算程序中,再点击运算就正式开始。完成Bitcoin客户端安装后,可以直接获得一个Bitcoin地址,当别人付钱的时候,只需要自己把地址贴给别人,就能通过同样的客户端进行付款。
在安装好比特币客户端后,它将会分配一个私钥和一个公钥。需要备份你包含私钥的钱包数据,才能保证财产不丢失。如果不幸完全格式化硬盘,个人的比特币将会完全丢失。
钱包
比特币钱包使用户可以检查、存储、花费其持有的比特币,其形式多种多样,功能可繁可简,它可以是遵守比特币协议运行的各种工具,如电脑客户端、手机客户端、网站服务、专用设备;
也可以只是存储著比特币私密密钥的介质,如一张纸、一段暗号、一个快闪U盘、一个文本文档,因为只要掌握比特币的私密密钥,就可以处置其对应地址中包含的比特币。比特币无法存入一般的银行账户,交易只能在比特币网络上进行,使用前需下载客户端或接入线上网络。
以上内容参考百度百科-比特币
比特币算法原理比特币算法主要有两种,分别是椭圆曲线数字签名算法和SHA256哈希算法。
椭圆曲线数字签名算法主要运用在比特币公钥和私钥的生成过程中,该算法是构成比特币系统的基石。SHA-256哈希算法主要是运用在比特币的工作量证明机制中。
比特币产生的原理是经过复杂的运算法产生的特解,挖矿就是寻找特解的过程。不过比特币的总数量只有2100万个,而且随着比特币不断被挖掘,越往后产生比特币的难度会增加,可能获得比特币的成本要比比特币本身的价格高。
比特币的区块由区块头及该区块所包含的交易列表组成,区块头的大小为80字节,由4字节的版本号、32字节的上一个区块的散列值、32字节的MerkleRootHash、4字节的时间戳(当前时间)、4字节的当前难度值、4字节的随机数组成。拥有80字节固定长度的区块头,就是用于比特币工作量证明的输入字符串。不停的变更区块头中的随机数即nonce的数值,并对每次变更后的的区块头做双重SHA256运算,将结果值与当前网络的目标值做对比,如果小于目标值,则解题成功,工作量证明完成。
比特币的本质其实是一堆复杂算法所生成的一组方程组的特解(该解具有唯一性)。比特币是世界上第一种分布式的虚拟货币,其没有特定的发行中心,比特币的网络由所有用户构成,因为没有中心的存在能够保证了数据的安全性。
比特币的原理比特币交易平台的盈利方式是手续费,也有其它的增值收费模式。
比特币(Bitcoin)是一种基于去中心化,采用点对点网络与共识主动性,开放源代码,以区块链作为底层技术的虚拟加密货币。
由中本聪在2008年提出,2009年诞生,与其他虚拟货币最大的不同,是其总数量非常有限,具有的稀缺性。
与所有的货币不同,比特币不依靠特定货币机构发行,它依据特定算法,通过大量的计算产生,比特币经济使用整个P2P网络中众多节点构成的分布式数据库来确认并记录所有的交易行为,并使用密码学的设计来确保货币流通各个环节安全性。
END,本文到此结束,如果可以帮助到大家,还望关注本站哦!