区块链技术

如何设置 OMC 节点

全节点是一个验证交易信息和区块信息的程序。当你在运行这项程序时,OMC区块链网络将变得更去中心化,同时促进OMC区块链技术的发展。

Almost all full nodes also help the network by accepting transactions and blocks from other full nodes, validating those transactions and blocks, and then relaying them to further full nodes.

大多数全节点也为轻量级客户机提供服务,让它们将交易信息传输到网络,并在钱包交易出现问题时通知他们。如果没有足够的节点执行去执行这项功能,客户端将无法通过点对点网络进行连接,这个原因迫使他们使用中心化服务。

Linux系统

在浏览器上打开 https://dotnet.microsoft.com/download/linux-package-manager/rhel/runtime-2.1.11

如下图所示,请选择所属操作系统,然后按照操作提示安装.Net Core 2.1 Runtime

Windows/Mac OS

在浏览器上打开 https://dotnet.microsoft.com/download/dotnet-core/2.1 如下图红框所示,选择所属操作系统和架构,点击对应的超链接下载安装文件,下载完成后按照所属系统标准安装操作进行安装即可。

下载Node程序

在浏览器打开 https://github.com/omcdev/blockchain/releases/download/0.0.3/Node_V0.0.3.zip 或者 https://onedrive.live.com/?authkey=%21AIJY8v0FWzmHAbA&id=A28FC3201AF2AC9A%211085&cid=A28FC3201AF2AC9A  或者如下图所示选择最新版本的继续点击进去,当前版本为0.0.

选择Node的zip格式压缩包,并下载到本地

将Node程序压缩包解压到您选择的文件夹下,例如

  • Windows下为D:\OmcNode
  • Linux下 ~/OmcNode

运行Node程序

命令行/终端下cd 进入 Node程序所在文件夹, 再运行命令:dotnet OmniCoin.Node.dll

Linux下运行上述命令,可能会有报错,具体原因可能是Leveldb环境缺失。请按照下面 步骤安装Leveldb环境,安装成功后再回到Node文件夹,运行 dotnet OmniCoin.Node.dll

如果操作系统为Linux,还需要手动安装Leveldb。

下载Leveldb源码并编译

cd ~ git clone https://github.com/google/leveldb.git cd leveldb cmake $PWD

如果cmake编译没有报错,则Leveldb编译、安装成功。

Ubuntu系统可能存在的问题

提示 ”Command 'cmake' not found, but can be installed with: sudo apt install cmake”

root账户执行命令安装cmake:

apt install cmake

非root账户执行命令安装cmake:

sudo apt install cmake

提示cmake版本过低,需手动安装cmake 3.9.1

将cmake 3.9.1的压缩包下载解压到Home目录下

cd ~ wget https://cmake.org/files/v3.9/cmake-3.9.1-Linux-x86_64.tar.gz tar -zxvf cmake-3.9.1-Linux-x86_64.tar.gz

将 ~/ cmake-3.9.1-Linux-x86_64/bin添加到所属shell(默认bash)的环境变量

在最后一行加上cmake bin文件夹路径,并保存、退出编辑器

vim ~ / .bashrc export PATH = ~ / cmake-3.9.1-Linux-x86_64 / bin: $ PATH

更新环境变量

source ~ / .bashrc

验证安装是否成功,如果以下命令结果为cmake verison 3.9.1 说明安装成功,如果不是说明安装失败,另行分析原因。

cmake –version Centos系统可能存在的问题

Centos 下直接运行dotnet OmniCoin.Node.dll报错,错误信息可能如下

“Unable to load shared library ‘leveldb.dll’ or one of its dependencies. In order to help diagnose loading problems, consider setting the LD_DEBUG environment variable: libleveldb.dll: cannot open shared object file: No such file or directory”

终端下进入Node文件夹路径\runtimes\linux-x64\native ,执行 ldd leveldb.dll ,得到的相关信息表示缺少两个依赖包,而这两个依赖包是因为gcc版本太低造成的,所以需要升级gcc

升级GCC(例如gcc-8.3.0)

cd ~ mkdir gcc_temp cd gcc_temp wget http://ftp.gnu.org/gnu/gcc/gcc-8.3.0/gcc-8.3.0.tar.gz tar -zxvf gcc-8.3.0.tar.gz yum -y install bzip2 # gcc-8.3.0 Two of the three dependency packages are bzip2 compressed files. If bzip2 is already installed on the system, there is no need to repeat the installation cd gcc-8.3.0 ./contrib/download_prerequisites yum install -y gcc-c ++ glibc-static gcc # To avoid errors when compiling and installing gcc, install the required components in advance ./configure –prefix = / usr / local / gcc –enable-bootstrap –enable-checking = release –enable-languages ​​= c, c ++ –disable-multilib make # 此命令执行可能需要1个小时左右,请耐心等待

make install gcc –version

如果上述命令得到的版本号不是当前安装的8.3.0,则需要修改配置文件

vim /etc/profile.d/gcc.sh # 在最后面添加一行 export PATH = / usr / local / gcc / bin: $ PATH 保存 source /etc/profile.d/gcc.sh gcc –version # 确保是当前安装的版本 ln -sv / usr / local / gcc / include / / usr / include / gcc #导出头文件 vim /etc/ld.so.conf.d/gcc.conf add a line / usr / local / gcc / lib64 保存 ldconfig -v ldconfig -p | grep gcc # 验证是否导出 如果有导出说明 GCC 安装完成 3.3.2 缺少GLIBCXX_3.4.2X

终端下进入Node文件夹路径\runtimes\linux-x64\native ,执行 ldd leveldb.dll , 可能还是缺少GLIBCXX_3.4.2X,以下是解决办法:

strings /usr/lib64/libstdc++.so.6 | grep GLIBC #发现包没有缺少的 find / -name “libstdc ++. so.6 *” 是否发现高版本的 libstdc ++. so.6.0.X 如果存在高版本的, copy 相关文件,再创建一个软连接即可 cp /usr/local/gcc/lib64/libstdc++.so.6.0.24 / usr / lib64 / ln -s /usr/lib64/libstdc++.so.6.0.24 /usr/lib64/libstdc++.so.6

终端下进入Node文件夹路径\runtimes\linux-x64\native ,执行 ldd leveldb.dll,发现依赖都有了。至此CentOS7下的Leveldb环境彻底完成。

zh_CNChinese
en_USEnglish zh_CNChinese