㈠ 如何在windows平台下编译比特币bitcoin客户端
很多朋友都知道如何在linux平台如何编译比特币程序,但是,到了windows平台,
就会感觉到无从下手. 其实, 比特币程序是跨平台的.
你要编译windows版的比特币程序,基本上有两种方法,一种是在linux平台
(推荐ubuntu 13.10)通过交叉编译的方法来编译.另外一种,就是直接在windows平台编译.
我想,你既然要在windows平台使用,我就详细介绍一下如何在windwows平台编译比特币程序.
我的平台:windows7
第一步:安装变编译环境QT和MINGW,msys
1、msys是一个在windows平台模拟shell的程序。
下载安装程序之后,通过安装管理程序,按安装以下内容:
From MinGW installation manager -> All packages -> MSYS
选中以下安装包
msys-base-bin
msys-autoconf-bin
msys-automake-bin
msys-libtool-bin
点 apply changes开始安装。他会自动下载安装好。
需要注意的是,确保不要安装msys-gcc和msys-w32api ,因为这两个包和我们的编译系统发生冲突。
很多人出现一些莫名其妙的问题,就是因为这两个包。
2、安装 MinGW-builds
下载并解压缩 i686-4.8.2-release-posix-dwarf-rt_v3-rev3.7z 到C盘根目录 C:\
注意我的目录结构。你尽量和我一样。
3、设置PATH环境变量,将C:\mingw32\bin;添加到第一个。
4、在命令行模式下输入 gc -v 会得到以下内容
c:\gcc -v
Using built-in specs.
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
Configured with: ../../../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, Built by MinGW-W64 project' --with-bugurl=http://sourceforge.net/projects/mingw-w64 CFLAGS='-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'
Thread model: posix
gcc version 4.8.2 (i686-posix-dwarf-rev3, Built by MinGW-W64 project)
至此,你的开发环境已经搭建好了,很简单吧
第二部分:下载bitcoin引用的外部库
我们把它们全部放在 C:\deps目录下
2.1 安装OpenSSL
进入启动 MinGw shell 比如目录:(C:\MinGW\msys\1.0\msys.bat)运行这个msys.bat,就会启动一个shell环境,提示符是$
输入命令
cd /c/deps/
tar xvfz openssl-1.0.1g.tar.gz
cd openssl-1.0.1g
Configure no-shared no-dso mingw
make
等待几分钟后,就把openssl编译好了。
2.2 下载Berkeley DB
我们推荐使用 4.8版本
同样在msys shell环境下输入以下命令
cd /c/deps/
tar xvfz db-4.8.30.NC.tar.gz
cd db-4.8.30.NC/build_unix
../dist/configure --enable-mingw --enable-cxx --disable-shared --disable-replication
make
等待编译
2.3 安装Boost
msys命令:
cd C:\deps\boost_1_55_0\
bootstrap.bat mingw
b2 --build-type=complete --with-chrono --with-filesystem --with-program_options --with-system --with-thread toolset=gcc variant=release link=static threading=multi runtime-link=static stage
2.4 安装Miniupnpc
cd C:\deps\miniupnpc
mingw32-make -f Makefile.mingw init upnpc-static
msys shell命令
cd /c/deps/protobuf-2.5.0
configure --disable-shared
make
2.6 qrencode:
命令
cd /c/deps/libpng-1.6.10
configure --disable-shared
make
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 安装 Qt 5 库
下载和解压缩
在 windows命令行输入:
set INCLUDE=C:\deps\libpng-1.6.10;C:\deps\openssl-1.0.1g\include
set LIB=C:\deps\libpng-1.6.10\.libs;C:\deps\openssl-1.0.1g
cd C:\Qt\5.2.1
configure.bat -release -opensource -confirm-license -static -make libs -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
set PATH=%PATH%;C:\Qt\5.2.1\bin
cd C:\Qt\qttools-opensource-src-5.2.1
qmake qttools.pro
mingw32-make
3. 下载Bitcoin 0.9.1
在msys shell下输入以下命令行:
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
strip src/bitcoin-cli.exe
strip src/bitcoind.exe
strip src/qt/bitcoin-qt.exe
这样,你就得到了变异好的 bitcoin-cli.exe和bitcoind.exe ,bitcoin-qt.exe(windows QT图形界面的钱包软件)
数字货币挖矿 我们经常提到的一个词就是 矿机的算力,
比如:挖BTC比特币的蚂蚁矿机T9+ 算力10.5TH/S,
挖LTC莱特币的蚂蚁矿机L3+ 算力504MH/S,
挖LCC数字链的好矿机Ubuntu×64 算力180KH/S.
那究竟算力是什么意思呢? 算力代表了什么 算力单位是怎么定义的呢?
其实算力的意思很简单,他就是代表矿机的计算能力、计算性能的衡量 他具体代表的是每秒矿机的整体hash算法运算次数。
我们先要知道挖矿的本质就是解决一个数学计算,谁先算出来谁就获得奖励(币),这个数学计算方式也很简单,就是一直不断的尝试碰撞结果![什么是矿机算力?挖矿算力单位怎么换算?
就类似于你暴力破解一个手机密码 (假设尝试多次手机不会被锁),
你不断的尝试密码 从 000000 ~ 999999 一个一个的尝试直到你解锁成功,
如果你1秒内能尝试一次 你的算力就是1次/s ,1秒内能尝试两次 你的算力就是2次/s
你1秒内尝试的次数越多你的算力就越大, 你解锁的时间也就越短 。
矿机也是一样, 矿机1秒内能计算的hash算法次数越多算力越大,挖的币越多。
最开始比特币使用 CPU挖矿, 后来使用显卡GPU挖矿,到现在的使用ASIC专业定制芯片挖矿,计算速度一直不断提升
算力单位:
算力每隔千位划为一个单位,
最小单位 H=1次 1000H = 1K 1000K = 1G 1000G = 1T 1000T = 1P 1000P=1E
S9+ 10.5T 也等于 10500G / 0.0105P
比特币全网算力现在 24.42 EH/s 相当于232万台S9的算力
不同币种的算力
不同的币种的挖矿算法可能会不一样
比如比特币是sha256算法,莱特币是scrypt算法, 以太坊是Ethash算法,数字链是SHA-2算法。
这就像 手机1的密码4位随便输入, 手机2的密码6位, 输一次后 隔1s才能再次输入, 实际比这个要复杂的多,
解锁这两种不同的手机的方式是不一样的, 那我尝试解锁的速度也不一样, 解锁手机1 我会更快一点。
不用的币种之间的算力 是没有任何关系的, 比特币矿机是不能挖莱特, 因为算法不一样, 他不会解莱特币的题。
㈢ 如何通过比特币钱包地址QR码存钱
通过安全的加密技术存储数字货币,只需要有个合约地址就可以转币,这个钱包的作用,可以让你在不用币的时候,将币放在钱包里,比在交易所的安全系数要高些。
钱包其实是作为一个地址协议,因为区块链上所有的交易都是全网记录的,每一枚比特币交易到一个地址都是全网记录不可篡改以此来记录,比特币到你钱包的时候每一个人都可以看到记录以此证明。
与大多数传统货币不同,比特币是一种数字货币。因此,这种货币的方法是完全不同的,特别是在获取和存储它时。由于比特币不存在任何物理形状或形式,因此技术上无法存储在任何地方。相反,它是用于访问您的公共比特币地址的私钥,并签署需要安全存储的交易。收件人的公钥和私钥的组合使得比特币交易成为可能
有几种不同形式的比特币钱包,可满足不同的需求,并在安全性,便利性,可访问性等方面有所不同。
纸质钱包
纸质钱包本质上是一个文档,其中包含可用于接收比特币的公共地址和私钥,允许您花费或转移存储在该地址的比特币。这些通常以QR码的形式打印,以便您可以快速扫描它们并将密钥添加到软件钱包中以进行交易。
可以使用BitAddress或Bitcoinpaperwallet等服务生成纸质钱包,允许用户创建完全随机的比特币地址和私钥。然后可以打印生成的文档,其中一些服务提供防篡改设计,甚至可以选择订购全息标签,并且可以使用。
纸币钱包的主要优点是键不会以数字形式存储在任何地方,这使得它完全不受黑客攻击,可以记录用户击键的恶意软件以及基本上任何形式的数字盗窃。但是,仍然需要在创建钱包时采取一些预防措施。
显然,在生成纸质钱包之前,您需要确保没有人在看着您这样做。为了排除任何间谍软件监控活动的风险,建议使用从USB闪存驱动器或DVD运行的干净的操作系统,如Ubuntu。
此外,一旦设置了纸质钱包,网站代码应该能够脱机运行,这允许您在实际生成密钥之前断开与Internet的连接。最后,使用未连接到网络的打印机。
此外,了解您在一张纸上打印有价值的私人信息非常重要。因此,您需要采取某些措施来保护那张纸。例如,建议将其放在密封的塑料袋中,以防止水,潮湿和一般磨损,有些人喜欢将其层压并存放在保险箱,存放箱中或委托律师处理。
物理比特币
物理比特币通常预加载固定数量的BTC,并且意图是只要私钥保持隐藏就不能花费它的值。这通常通过实施防篡改密封来实现。
Bitbill的第一款产品就像一张信用卡,但其后的大多数替代品都被塑造成一枚圆形奖牌。Mike Cadwell是一位绰号为“Casascius”的加密货币爱好者,他在2011年创造了第一款流行的Casascius实体比特币。
私钥被隐藏在可剥离的全息图下,当它被移除时,它留下了防篡改模式。在兑换时,硬币失去了数字价值。从那以后,有几家新的硬币制造商。
物理比特币是一种非常方便的方式,可以更安全地存储您的资金,在离线交易时非常有用。最重要的是,他们最近成为珍贵的收藏品。然而,主要的缺点是严重安全问题。
2013年11月,Mike Cadwell被要求停止金融犯罪执法网络的运营,因为他的工作被认为是货币发送者。这项活动的规定难以承受,因此他不得不停止销售包含数字比特币的物品。由于BTC在许多国家仍然是一个合法的灰色地带,这些物品甚至可能被当局视为假币。
移动
对于那些积极利用每天的比特币,在商店支付商品或交易他们面对面面对面,移动钱包BTC是一个必不可少的工具。它运行作为智能手机的应用程序,存储你的私钥,并允许您直接从您的手机支付的东西。
此外,一些应用程序使用户能够使用他们的智能手机近场通信功能,这意味着它们可以简单地点击他们的电话反对读者,而不必在所有提供的任何信息。
任何完整的比特币客户端都需要访问整个区块链分类账,该分类账不断增长,需要几千兆字节的存储空间。因此,移动钱包利用简化的支付验证(SPV)技术。它们仅适用于区块链的非常小的子集,依赖于比特币网络中的可信节点,以确保它们具有正确的信息。
尽管比特币存储是一种方便的移动解决方案,但移动钱包很容易受到黑客攻击。此外,如果有人只是访问您的移动设备,您可能会失去对钱包的控制权。在Android上运行的设备有各种各样的比特币钱包应用程序。Apple于2014年2月从AppStore中禁止比特币钱包,但在几个月后撤销了其决定。
Web钱包
Web钱包将您的私钥存储在提供此类服务的公司的服务器上。服务器始终在线并由其他人控制。不同的服务提供不同的功能,其中一些功能连接到移动和桌面钱包,在您拥有的设备上复制您的地址。
与移动钱包非常相似,电子钱包使用户可以通过连接到互联网的任何设备随时随地访问他们的资金。但除非正确实施,否则运营该网站的组织可能会访问您的私钥,从而完全控制您的资金。此外,一些电子钱包在交易所的基础上运营,并且有些交易所关闭和逃离用户的资金。
桌面钱包
桌面钱包已下载并安装在您的计算机上,将您的私钥存储在硬盘上。根据定义,它们比在线和移动钱包更安全,因为它们不依赖第三方获取数据并且更难窃取。它们仍然连接到互联网,这使它们本身就不安全。但是,对于那些从他们的计算机上交易少量比特币的人来说,桌面钱包是一个很好的解决方案。
桌面钱包有多种不同的选择,可满足不同的需求。一些专注于安全性,一些专注于匿名性等。
硬件
硬件钱包是一种相当独特的比特币钱包,可将用户的私钥存储在安全的硬件设备中。这是存储任何数量的比特币的最安全的方式,没有可验证的钱从硬件钱包中被盗的事件。
与纸钱包不同,纸钱包必须在某些时候导入软件,硬件钱包可以安全和交互使用。此外,它们不受计算机病毒的影响,所存储的资金不能以明文形式传输出设备,在大多数情况下,它们的软件是开源的。
有些硬件钱包甚至还有屏幕,这增加了另一层安全性,因为它们可以用来验证和显示重要的钱包细节。例如,屏幕可用于生成恢复短语并确认您要进行的付款的金额和地址。因此,只要您投资一个由值得信赖且称职的制造商制造的具有良好声誉的真实设备,您的资金将是安全可靠的。
比特币钱包和安全
可能的问题 :
捕获恶意软件。恶意软件可以扫描您的磁盘并找到您的私钥。几秒钟之后,你所有的比特币都可以消失。特洛伊木马可以加密硬盘上的所有文件。之后,它可能会找到你钱包的所有链接,意识到你拥有多少钱并要求确切数量的比特币来解密你的硬盘。
虚拟交换可以用你的钱逃跑。您可以丢失安装在其上的钱包的笔记本电脑或手机。
建议 :
避免使用任何需要互联网连接的钱包;请改用冷藏选项。
要小心谨慎,仔细检查一切。例如,您可以收到一封来自BlockWallet的电子邮件,但它实际上来自BlokcWallet,如果您授权,您的比特币将立即消失。
㈣ electrum比特币钱包在ubuntu下怎么安装
第一步, 找一台新电脑或硬盘低级格式化后的旧电脑,在断网的状态下安装Linux操作系统Ubuntu(下图是使用U盘安装ubuntu的示例):
第二步, 安装Electrum 比特币钱包。
安
装完Ubuntu Linux操作系统后, 离线安装Electrum比特币钱包(笔者个人比较喜欢Electrum,
各位也可以使用Multibit等其他轻钱包)
第三步,生成新的冷钱包地址
安
装完以后, 打开Electrum, 并创建新的钱包, 按照图四到图八的步骤生成新的冷钱包地址, Electrum缺省情况下是一次创建5个新地址,
注意图八, 在命令行键入 “listaddressese()"的命令,
系统会列出新创建的5个比特币地址,再用getpubkeys命令,或者从菜单 master public
key拿到公钥(公钥和地址不是同一个概念哦), 请把这个公钥拷贝下来, 另存到一个文本文件里。图九是显示这5个新地址的私钥,
放着这里只是给大家说明一下,用来和图十二对比, 5个私钥是在这个永不触网的linux操作系统里的钱包里,
大家实际操作中不要做图九这个步骤。也不要把自己的私钥告诉其他任何人。
㈤ 如何加入区块链节点(如何接入区块链网点)
如何使用同心互助区块链客服端查看节点?首先先注册加入计划,然后在用邮箱申请区块链客服端,审核通过后会从邮箱中发达下载地址,安装完成后登陆账号才进行节点查看。
Tbtcoin如何设置节点呢?租凭一个服务器服务器租凭网站:my.vultr.com选择10美金一月的服务器即可使用以下说明在UbuntuServer18.04masternode。服务器确保您具有以下要求。-设置主节点所需的硬币数量。-存放硬币的钱包。-服务器或VPS。说明分为三个部分。设置控制钱包(1/2)打开你的钱包,等到钱包下载了完整的区块链。转到“工具”。单击“调试控制台”。这是您将执行所有命令的控制台。创建一个masternode私钥。masternodegenkey示例输出显示您的抵押品地址。getaccountaddress"MN1"示例输出记下masternode私钥和附属地址。设置VPS在VPS上安装UbuntuServer18.04。更新你的Ubuntu机器。sudoapt-getupdatesudoapt-getupgrade安装所需的依赖项。sudoapt-getinstallbuild-essentiallibtoolautotools-devautomakepkg-configlibssl-devlibevent--system-devlibboost-filesystem-devlibboost-chrono-devlibboost-test-devlibboost-thread-devlibboost-all-devlibboost-program-options-devsudoapt-getinstalllibminiupnpc-devlibzmq3-devlibprotobuf-devprotobuf-compilerunzipsoftware-properties-common安装BerkeleyDB。sudoadd-apt-repositoryppa:bitcoin/bitcoinsudoapt-getupdatesudoapt-getinstalllibdb4.8-devlibdb4.8++-dev。从官方网站下载守护进程和工具。提取tar文件。tar-xzvftbtcoin-daemon-linux.tar.gztar-xzvftbtcoin-qt-linux.tar.gz安装守护程序和工具。sudomvtbtcoinndtbtcoin-clitbtcoin-tx/usr/bin/创建配置文件。mkdir$HOME/.tbtcoincd$HOMEcdtbtcoin.confTouchtbtcoin.confVitbtcoin.conf在examplecoin.conf中粘贴以下行。#----rpcuser=rpc_tbtcoinrpcpassword==127.0.0.1#----listen=1server=1daemon=1maxconnections=64#----masternode=1masternodeprivkey=REPLACE_WITH_MASTERNODE_PRIVATE_KEYexternalip=REPLACE_WITH_EXTERNAL_IP_OF_VPS#----将文本“REPLACE_WITH_MASTERNODE_PRIVATE_KEY”替换为使用命令“masternodegenkey”创建的“masternode私钥”。例如masternodeprivkey=将文本“REPLACE_WITH_EXTERNAL_IP_OF_VPS”替换为VPS的外部IP地址。例如externalip=136.144.171.201使用以下命令启动节点。examplecoind设置控制钱包(2/2)使用命令“getaccountaddress”MN1“”将所需数量的硬币转移到您创建的“附属地址”。等到事务具有所需的masternode确认。转到工具。单击调试控制台。输入以下命令。masternodeoutputs示例输出[{"":"0",}]转到“工具”。单击“打开Masternode配置文件”。修改以下行并将其粘贴到记事本中。MN1136.144.171.201:99990MN1-您的masternode的别名。136.144.171.201-您的VPS的外部IP。9999-更换硬币的P2P端口。-来自命令“masternodegenkey”的Masternode私钥。-来自命令“masternodeoutputs”的事务哈希。0-命令“masternodeoutputs”中的单个数字。保存文件并关闭记事本。关闭钱包并重新打开钱包。前往设置”。点击“解锁钱包”。输入您的钱包密码并解锁您的钱包。转到“工具”。单击“调试控制台”。使用该命令启动masternode。masternodestart-aliasMN1激活你的masternode需要+/-30分钟
【科普】如何选择区块链的最长链本文由币车HIT(biche.yaofache.com)大V养成计划支持。
基于逐利,节点就会自发的遵守协议。共识就是数以万计的独立节点遵守了简单的规则(通过异步交互)自发形成的。
比特币没有中心机构,几乎所有的完整节点都有一份公共总帐本,那么大家如何达成共识:确认哪一份才是公认权威的总账本呢?
为什么要遵守协议
这其实是一个经济问题,在经济活动中的每个人都是自私自利的,追求的是利益的最大化,一个节点工作量只有在其他的节点认同其是有效的(打包的新区块,其他的节点只有验证通过才会加入到区块链中,并在网络上传播),才能够过得收益,?而只有遵守规则才会得到其他的节点认同。?因此,基于逐利,节点就会自发的遵守协议。共识就是数以万计的独立节点遵守了简单的规则(通过异步交互)自发形成的。
去中心化共识
实际上,比特币的共识由所有节点的4个独立过程相互作用而产生:
每个节点(挖矿节点)依据标准对每个交易进行独立验证;挖矿节点通过完成工作量证明,将交易记录独立打包进新区块;每个节点独立的对新区块进行校验并组装进区块链;每个节点对区块链进行独立选择,在工作量证明机制下选择累计工作量最大的区块链;共识最终目的是保证比特币不停的在工作量最大的区块链上运转,工作量最大的区块链就是权威的公共总帐本。
最长链的选择
先来一个定义,把累计了最多难度的区块链。在一般情况下,也是包含最多区块的那个链称为主链
每一个(挖矿)节点总是选择并尝试延长主链。
分叉
当有两名矿工在几乎在相同的时间内,各自都算得了工作量证明解,便立即传播自己的“获胜”区块到网络中,先是传播给邻近的节点而后传播到整个网络。每个收到有效区块的节点都会将其并入并延长区块链。?当这个两个区块传播时,一些节点首先收到#3458A,?一些节点首先收到#3458B,这两个候选区块(通常这两个候选区块会包含几乎相同的交易)都是主链的延伸,分叉就会产生,这时分叉出有竞争关系的两条链。两个块都收到的节点,会把其中有更多工作量的一条会继续作为主链,另一条作为备用链保存(保存是因为备用链将来可能会超过主链难度称为新主链)。
分叉解决
收到#3458A的(挖矿)节点,会立刻以这个区块为父区块来产生新的候选区块,并尝试寻找这个候选区块的工作量证明解。同样地,接受#3458B区块的节点会以这个区块为链的顶点开始生成新块,延长这个链(下面称为B链)。?当原本以#3458A为父区块求解的节点在收到#3458B,?#3459B之后,会立刻将B链作为主链(因为#3458A为顶点的链已经不是最长链了)继续挖矿。节点也有可能先收到#3459B,再收到#3458B,收到#3459B时,会被认为是“孤块“(因为还找不到#3459B的父块#3458B)保存在孤块池中,一旦收到父块#3458B时,节点就会将孤块从孤块池中取出,并且连接到它的父区块,让它作为区块链的一部分。
比特币将区块间隔设计为10分钟,是在更快速的交易确认和更低的分叉概率间作出的妥协。更短的区块产生间隔会让交易确认更快地完成,也会导致更加频繁地区块链分叉。与之相对地,长的间隔会减少分叉数量,却会导致更长的确认时间。
如何简单易懂解析区块链?对于很多人来说,可能一看到这么高大上的词汇,一看到这么晦涩难懂的技术解说,然后衡量一下自己的知识储备量,就被吓得稍微有点退后了。
一句话,它是一种特殊的分布式数据库。首先,区块链的主要作用是储存信息。任何需要保存的信息,都可以写入区块链,也可以从里面读取,所以它是数据库。其次,任何人都可以架设服务器,加入区块链网络,成为一个节点。区块链的世界里面,没有中心节点,每个节点都是平等的,都保存着整个数据库。你可以向任何一个节点,写入/读取数据,因为所有节点最后都会同步,保证区块链一致。
区块链的最大特点:分布式数据库并非新发明,市场上早有此类产品。但是,区块链有一个革命性特点。区块链没有管理员,它是彻底无中心的。其他的数据库都有管理员,但是区块链没有。如果有人想对区块链添加审核,也实现不了,因为它的设计目标就是防止出现居于中心地位的管理当局。正是因为无法管理,区块链才能做到无法被控制。否则一旦大公司大集团控制了管理权,他们就会控制整个平台,其他使用者就都必须听命于他们了。但是,没有了管理员,人人都可以往里面写入数据,怎么才能保证数据是可信的呢?被坏人改了怎么办?请接着往下读,这就是区块链奇妙的地方。
链乔教育在线旗下学硕创新区块链技术工作站是中国教育部学校规划建设发展中心开展的“智慧学习工场2020-学硕创新工作站”唯一获准的“区块链技术专业”试点工作站。专业站立足为学生提供多样化成长路径,推进专业学位研究生产学研结合培养模式改革,构建应用型、复合型人才培养体系。
区块链节点是什么意思?
区块链节点的意思是一个连接在区块链网络上的智能设备,都可以称之为一个节点,只是这个节点根据设备的特性可能起到不同的作用。这是分布式网络的一个很大的特点,并且整个区块链网络上节点越多,意味着这个区块链网络分布得越广泛,越稳定以及越安全。节点包含了手机,矿机和服务器等等。操作一个节点的可以是普通的钱包用户,矿工和多个人协作的矿池用户。”
【拓展资料】
节点就是一个区域的服务器。在互联网区域,一个企业所有运行的数据都在一个服务器里,那么这个服务器就是节点。
就像是我们每天使用的微信,每天处理着这么多的聊天信息、转账等。这些数据的存储和运行都在腾讯的公司的服务器里面。那么这个处理数据的服务器,我们就可以称之为“节点”。再说区块链的世界,大家都已经知道区块链是去中心化的分布式数据库,它不依托于哪一个中心化的服务器,是由千千万万个“小服务器”组成。只要我们下载一个区块链客户端,我们就变成了那千千万万个“小服务器”中的一员。
这样来说,如果我们要玩区块链的话,我们自己就相当于是一个节点。
节点也分轻节点和全节点。全节点就是拥有全网所有的交易数据的节点,那么轻节点就是只拥有和自己相关的交易数据节点。而且节点分布越多、越广泛,区块链网络就更加的去中心化,网络运行也就越安全稳定。比如说链信,现在链信用户有1600万,这样就说明,现在链信节点也是有很多。现在想玩区块链的朋友可以去试试链信。链信是一个不错的区块链应用。
节点的存在就是区块链分布式的表征,也是区块链的魅力所在。
区块链是个分布式系统,系统里有很多节点,这些节点你只要单纯地理解为通过互联网相连的电脑或者服务器就好了。然后根据区块链性质的不同,成为节点的方式也不同,当然,对于节点的定义也不同。对于像比特币这样的公有链,理论上来讲,你下载完整的区块链,参与交易和挖矿,才算是节点。
然而,在现在的比特币里,矿工,完全节点,轻量节点,甚至普通用户,在不同的语境下都可能被称为节点。但无论如何,比特币的系统与其说是“连入网络就会自动更新区块链”,不如说是你想要挖矿或者是交易(同时你不信任其他人的验证结果),就必须更新整条区块链,这不是一个自动义务的事情,而是自愿的事情。
㈥ 如何在windows平台下编译比特币bitcoin客户端
很多朋友都知道如何在linux平台如何编译比特币程序,但是,到了windows平台,
就会感觉到无从下手. 其实, 比特币程序是跨平台的.
你要编译windows版的比特币程序,基本上有两种方法,一种是在linux平台
(推荐ubuntu 13.10)通过交叉编译的方法来编译.另外一种,就是直接在windows平台编译.
我想,你既然要在windows平台使用,我就详细介绍一下如何在windwows平台编译比特币程序.
我的平台:windows7
第一步:安装变编译环境QT和MINGW,msys
1、msys是一个在windows平台模拟shell的程序。
下载安装程序之后,通过安装管理程序,按安装以下内容:
From MinGW installation manager -> All packages -> MSYS
选中以下安装包
msys-base-bin
msys-autoconf-bin
msys-automake-bin
msys-libtool-bin
点 apply changes开始安装。他会自动下载安装好。
需要注意的是,确保不要安装msys-gcc和msys-w32api ,因为这两个包和我们的编译系统发生冲突。
很多人出现一些莫名其妙的问题,就是因为这两个包。
2、安装 MinGW-builds
下载并解压缩 i686-4.8.2-release-posix-dwarf-rt_v3-rev3.7z 到C盘根目录 C:\
注意我的目录结构。你尽量和我一样。
3、设置PATH环境变量,将C:\mingw32\bin;添加到第一个。
4、在命令行模式下输入 gc -v 会得到以下内容
c:\gcc -v
Using built-in specs.
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
Configured with: ../../../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, Built by MinGW-W64 project' --with-bugurl=http://sourceforge.net/projects/mingw-w64 CFLAGS='-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'
Thread model: posix
gcc version 4.8.2 (i686-posix-dwarf-rev3, Built by MinGW-W64 project)
至此,你的开发环境已经搭建好了,很简单吧
第二部分:下载bitcoin引用的外部库
我们把它们全部放在 C:\deps目录下
2.1 安装OpenSSL下载:
进入启动 MinGw shell 比如目录:(C:\MinGW\msys\1.0\msys.bat)运行这个msys.bat,就会启动一个shell环境,提示符是$
输入命令
cd /c/deps/
tar xvfz openssl-1.0.1g.tar.gz
cd openssl-1.0.1g
Configure no-shared no-dso mingw
make
等待几分钟后,就把openssl编译好了。
2.2 下载Berkeley DB
我们推荐使用 4.8版本
同样在msys shell环境下输入以下命令
cd /c/deps/
tar xvfz db-4.8.30.NC.tar.gz
cd db-4.8.30.NC/build_unix
../dist/configure --enable-mingw --enable-cxx --disable-shared --disable-replication
make
等待编译
2.3 安装Boost
msys命令:
cd C:\deps\boost_1_55_0\
bootstrap.bat mingw
b2 --build-type=complete --with-chrono --with-filesystem --with-program_options --with-system --with-thread toolset=gcc variant=release link=static threading=multi runtime-link=static stage
2.4 安装Miniupnpc
cd C:\deps\miniupnpc
mingw32-make -f Makefile.mingw init upnpc-static
2.5下载 protoc 和 libprotobuf:
msys shell命令
cd /c/deps/protobuf-2.5.0
configure --disable-shared
make
2.6 qrencode:
命令
cd /c/deps/libpng-1.6.10
configure --disable-shared
make
ode:
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 安装 Qt 5 库
在 windows命令行输入:
set INCLUDE=C:\deps\libpng-1.6.10;C:\deps\openssl-1.0.1g\include
set LIB=C:\deps\libpng-1.6.10\.libs;C:\deps\openssl-1.0.1g
cd C:\Qt\5.2.1
configure.bat -release -opensource -confirm-license -static -make libs -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
set PATH=%PATH%;C:\Qt\5.2.1\bin
cd C:\Qt\qttools-opensource-src-5.2.1
qmake qttools.pro
mingw32-make
3. 下载Bitcoin 0.9.1
在msys shell下输入以下命令行:
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
strip src/bitcoin-cli.exe
strip src/bitcoind.exe
strip src/qt/bitcoin-qt.exe
这样,你就得到了变异好的 bitcoin-cli.exe和bitcoind.exe ,bitcoin-qt.exe(windows QT图形界面的钱包软件)
㈦ HIPOCA是什么车
1990年,海南跟马自达开始了合资办厂。1991年,海南汽车就开始小批量试生产MAZDA 929 Station Wagon旅行车,而HIPOCA就是它的中国名字。