安装Golang
可以直接使用 yum 这个包管理器安装Golang

yum install golang

下载以太坊源码(Go Ethereum)
首先下载geth源码go-ethereum,这里以 go-ethereum-1.10.3.tar.gz 为例:

https://github.com/ethereum/go-ethereum/archive/refs/tags/v1.10.3.tar.gz


安装以太坊源码(安装Geth)
接下来解压缩源码:

tar -xzf go-ethereum-1.9.7.tar.gz

用下面的命令编译:

cd go-ethereum-1.9.7
make geth
[code]    
make geth 也可以用make all 进行替代,make all 还会编译一些其他的程序套件

如果国内用户安装超时,可设置代理,再进行安装。
[code]
go env -w GOPROXY=https://goproxy.cn


编译完成后,此时会在 go-ethereum-1.9.7/build/bin 中生成geth可执行文件。
输入 geth help 命令,会显示geth所有的命令和选项:

cd build/bin
./geth help

配置geth
直接使用geth命令可能出现:

-bash: geth: command not found

解决方法一:可以为其的安装路径建立软连接

ln -s /data/go-ethereum-1.9.7/build/bin/geth  /usr/local/bin/geth

解决方法二:也可以为其创建全局配置(对所有系统用户生效,永久生效,推荐)
通过vim 打开编辑器

vim /etc/profile

在最后一行追加以下内容:

export PATH=$PATH:/data/go-ethereum-1.9.7/build/bin/

然后让配置立即生效:

source /etc/profile

用 geth version 测试一下:

geth version


同步的几种方式
Full同步

geth --syncmode "full"

获取区块的header
获取区块的body
从创始块开始校验没一个元素
PS:下载所有区块数据信息
Fast同步

geth --syncmode "fast"

获取区块的header
获取区块的body
在同步到当前块之前不处理任何事务,然后获得一个快照,像full节点一样进行后面的同步操作。沿着区块下载最近数据库中的交易,有可能丢失历史数据。比如,你的账户地址A上面有10个ETH,但转入的的交易存在于较老的历史交易中,此同步模式无法获取到交易的详细情况。
使用此模式时注意需要设置–cache,默认16M,建议设置为1G(1024)到2G(2048)。

Ligth同步

geth --syncmode "light"

仅获取当前状态。验证元素需要向full节点发起相应的请求。
开启本地RPC端口
# light模式同步区块并开启RCP:rpcaddr:rpcport

geth --rpc --rpcaddr localhost --rpcport "8545" --syncmode "light"

获取与RCP相关的命令

geth --help | grep rpc
  --rpc                         Enable the HTTP-RPC server
  --rpcaddr "127.0.0.1"         HTTP-RPC server listening interface
  --rpcport "8545"              HTTP-RPC server listening port
  --rpcapi "db,eth,net,web3"    API's offered over the HTTP-RPC interface
  --rpccorsdomain               Domains from which to accept cross origin requests (browser enforced)



geth –cache=2048 –goerli –rpc –rpcaddr 0.0.0.0 –rpcport=8545 –rpcvhosts=* –rpcapi=’eth,net,rpc’


启动geth开始后台同步区块

nohup geth --rpc --rpcapi web3,eth,net,db,personal --rpcaddr 0.0.0.0 --rpcport 8545 &

进入geth控制台

# geth attach rpc:http://127.0.0.1:8545

查看区块同步情况

> eth.syncing
{
  currentBlock: 513872,
  highestBlock: 8985345,
  knownStates: 806036,
  pulledStates: 794270,
  startingBlock: 0
}

firewalld 添加删除策略 不指定

jed , 2021-5-29 20:45 , 服务器技术 , 评论(0) , 阅读(1184) , Via 本站原创
添加:

sudo firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="0.0.0.0/24" port protocol="tcp" port="10050" accept"

加载:

firewall-cmd --reload
删除:

sudo firewall-cmd --permanent --zone=public --remove-rich-rule="rule family="ipv4" source address="10.0.5.0/24" port protocol="tcp" port="10050" accept"
加载:

firewall-cmd --reload

docker中centos7安装ssh服务 不指定

jed , 2021-5-24 11:36 , 服务器技术 , 评论(0) , 阅读(1142) , Via 本站原创
容器中安装passwd,openssl,openssh-server

yum install passwd openssl openssh-server net-tools -y

安装完成后
启动sshd:

# /usr/sbin/sshd -D

这时报以下错误:

[root@ b3426410ff43 /]# /usr/sbin/sshd
Could not load host key: /etc/ssh/ssh_host_rsa_key
Could not load host key: /etc/ssh/ssh_host_ecdsa_key
Could not load host key: /etc/ssh/ssh_host_ed25519_key

执行以下命令解决:

[root@b3426410ff43 /]# ssh-keygen -q -t rsa -b 2048 -f /etc/ssh/ssh_host_rsa_key -N ''
[root@b3426410ff43 /]# ssh-keygen -q -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key -N ''
[root@b3426410ff43 /]# ssh-keygen -t dsa -f /etc/ssh/ssh_host_ed25519_key -N ''

然后,修改 /etc/ssh/sshd_config 配置信息:

UsePAM yes 改为 UsePAM no
UsePrivilegeSeparation sandbox 改为 UsePrivilegeSeparation no

可以用vi改,也可以用下面命令

[root@b3426410ff43 /]# sed -i "s/#UsePrivilegeSeparation.*/UsePrivilegeSeparation no/g" /etc/ssh/sshd_config
[root@b3426410ff43 /]# sed -i "s/UsePAM.*/UsePAM no/g" /etc/ssh/sshd_config

修改完后,重新启动sshd

[root@b3426410ff43 /]# /usr/sbin/sshd -D

然后修改root密码

passwd root

或者直接一句修改

echo “123456″ | passwd --stdin root

接着需要把修改后的镜像保存了,首先输入exit退出容器,再使用下面命令查看刚运行过的,
docker commit将修改后镜像保存到本地,参数是ID,名字

#docker ps -all
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b3426410ff43 centos:7 "/bin/bash" 4 minutes ago Exited (0) 4 seconds ago centos7ssh
#docker commit b5926410fe60 myimage/centos7-ssh

下次可以输入刚保存的名字启动修改过安装了ssh服务的镜像了。

为docker容器设置独立ip 不指定

jed , 2021-5-24 11:29 , 服务器技术 , 评论(0) , 阅读(1079) , Via 本站原创
docker 1.12使用新版macvlan设置与宿主机同网段ip

******************************************

由于开发的一些特殊需求,需要将容器部署在与宿主机同一个网段中,部署步骤如下:

步骤一:创建网络

$ docker network create -d macvlan --subnet=172.16.0.0/24 --gateway=172.16.0.1 -o parent=eno16777736 mynet
548d79fe04c613d3ca180e8689f2207f71534020bc39566d62d0b5aeb67fc8b5

参数解析:
-d macvlan  加载kernel的模块名
--subnet 宿主机所在网段
--gateway 宿主机所在网段网关
-o parent 继承指定网段的网卡

步骤二:运行容器

$ docker run --net=mynet --ip=172.16.0.100 -it -d --rm centos:6.7 /bin/bash

参数解析:
--ip 可以指定容器的IP

*******************************************************************************************


http://www.itnpc.com/news/web/146104788357316.html

在知乎上看到这一段,先mark一下。

CentOS8安装Docker 不指定

jed , 2021-5-24 10:05 , 服务器技术 , 评论(0) , 阅读(1051) , Via 本站原创
实现目标:在 Linux上 安装 Docker 环境

一、环境参数:

操作系统:CentOS 8.1.1911
Docker:19.03.12


二、安装步骤
在我们环境下,经常需要运营对网站进行测试,但是偶尔会出现不知道是在测试环境还是正式环境,因为测试环境都是通过Nginx反向代理进行访问.因此本文利用Nginx进行网页内容替换,然后在醒目位置进行提醒,以达到对测试环境的标识作用

yum -y install openssl openssl-devel

在编译nginx的时候添加--with-http_sub_module以加载sub模块

Centos防火墙配置 不指定

jed , 2021-5-18 08:10 , 服务器技术 , 评论(0) , 阅读(1304) , Via 本站原创
一、防火墙的概念

防火墙技术是用于安全管理的软件和硬件设备,在计算机内/外网之间构建一道相对隔绝的保护屏障,以保护数据和信息安全性的一种技术。

防火墙分为网络防火墙和主机防火墙。

网络防火墙由软件和硬件组成,可以保护整个网络,价格也很贵,从几万到几十万的都有,功能非常强大,主要包括入侵检测、网络地址转换、网络操作的审计监控、强化网络安全服务等功能。

主机防火墙只有软件部分(操作系统和杀毒软件自带),用于保护本操作系统,功能比较简单,只能防范简单的攻击。

本文将介绍主机防火墙(CentOS7以上版本)的使用和配置。
too many open files是Linux系统中常见的错误,从字面意思上看就是说程序打开的文件数过多,不过这里的files不单是文件的意思,也包括打开的通讯链接(比如socket),正在监听的端口等等,所以有时候也可以叫做句柄(handle),这个错误通常也可以叫做句柄数超出系统限制。 
引起的原因就是进程在某个时刻打开了超过系统限制的文件数量以及通讯链接数,通过命令ulimit -a可以查看当前系统设置的最大句柄数是多少:


1、增大允许打开的文件数——命令方式
ulimit -n 2048
这样就可以把当前用户的最大允许打开文件数量设置为2048了,但这种设置方法在重启后会还原为默认值。 
ulimit -n命令非root用户只能设置到4096。 
想要设置到更大需要sudo权限或者root用户。

2、增大允许打开的文件数——修改系统配置文件
vi /etc/security/limits.conf  
#在最后加入  
* soft nofile 65535
* hard nofile 65535
或者只加入

 * - nofile 8192

最前的 * 表示所有用户,可根据需要设置某一用户,例如

roy soft nofile 8192  
roy hard nofile 8192  
注意”nofile”项有两个可能的限制措施。就是项下的hard和soft。 要使修改过得最大打开文件数生效,必须对这两种限制进行设定。 如果使用”-“字符设定, 则hard和soft设定会同时被设定。
系统优化

vi /etc/security/limits.conf

在文件底部添加

* soft nofile 65535
* hard nofile 65535

保存退出。

ulimit -n 65535

安装screen

yum install screen

安装jq

yum install epel-release
yum list jq
yum install jq

安装wget

yum install wget

创建Bee文件夹:

cd /mnt
mkdir bee
cd bee

下载clef,安装clef

wget https://github.com/ethersphere/bee-clef/releases/download/v0.4.9/bee-clef_0.4.9_amd64.rpm
rpm -i bee-clef_0.4.9_amd64.rpm

下载Bee,安装bee

wget https://github.com/ethersphere/bee/releases/download/v0.5.2/bee_0.5.2_amd64.rpm
rpm -i bee_0.5.2_amd64.rpm

将clef-service拷贝至/mnt/bee文件夹下,并赋予文件权限
clef-service下载连接:https://www.jianguoyun.com/p/DXx1mTUQ_t-OCRjgyeUD =
怎么拷贝到文件夹下面,网络不好暂时我的文件信息没刷新出,你们这里是会有文件管理的。
或者直接从对象存储拉取:

wget https://dworld-1252691683.cos.ap-nanjing.myqcloud.com/clef-service

赋予文件权限

chmod a+x clef-service

启动CLEF

./clef-service start

这里没有报错的话就OK了,然后直接断开连接
再重新连接服务器,跳转到bee文件夹

cd /mnt/bee

新建Screen窗口,此界面用于运行bee

screen -S bee

获取提取支票脚本

wget -O cashout.sh https://gist.githubusercontent.com/ralph-pichler/3b5ccd7a5c5cd0500e6428752b37e975/raw/7ba05095e0836735f4a648aefe52c584e18e065f/cashout.sh
chmod a+x cashout.sh

建立计划任务,自动提取脚本

crontab -e

添加任务

* */6 * * * /mnt/bee/cashout.sh cashout-all 5 >/dev/null 2>&1

运行bee

bee start --verbosity 5 --swap-endpoint https://goerli.infura.io/v3/3c5c0f51e6c241f79a1638b484595c8b --debug-api-enable --clef-signer-enable --clef-signer-endpoint /var/lib/bee-clef/clef.ipc

备注:
如果出现不稳定的情况,

--swap-endpoint

是可以更换的:到https://goerli.infura.io 注册自己的swap
设置密码(第一次输入需要输入2遍)
如果没有报错,到这里一切正常!!
然后直接断开连接!!

====================================================

BZZ合约地址:0x2ac3c1d3e24b45c6c310534bc2dd84b5ed576335 小狐狸钱包添加代币+自定义代币就行了
如果这个图你没看到,你可以导入json文件到小狐狸钱包查看,后续就是导入小狐狸钱包教程!!!
定时领取票卷&状态查询命令
安装源,jq
依次输入
yum install epel-release
yum list jq
yum install jq
查看有无支票
curl localhost:1635/chequebook/cheque | jq
查看当前连接到多少个节点
curl -s http://localhost:1635/peers | jq '.peers | length'
检查网络拓扑
curl -X GET http://localhost:1635/topology | jq
测试连通
curl http://localhost:1633
查询当前节点余额
curl localhost:1635/chequebook/balance | jq
检查对等余额
curl localhost:1635/balances | jq
查询状态
systemctl status bee
尝试修复状态
systemctl start bee.service
查询自己节点地址
curl http://localhost:1635/addresses
兑换支票
下载脚本
wget -O cashout.sh
https://gist.githubusercontent.com/ralph-pichler/3b5ccd7a5c5cd0500e6428752b37e975/raw/7ba05095e0836735f4a648aefe52c584e18e065f/cashout.sh
自动兑换脚本
wget -O cashout.sh
https://gist.githubusercontent.com/ralph-pichler/3b5ccd7a5c5cd0500e6428752b37e975/raw/7ba05095e0836735f4a648aefe52c584e18e065f/cashout.sh
赋予执行权限
chmod a+x cashout.sh
查询兑换支票:有返回就代表又可以兑换的支票
./cashout.sh
兑换支票
./cashout.sh cashout-all 5
支票记得定时兑换,如果过期了就很亏哈哈哈
curl localhost:1635/chequebook/address
这个命令可以查看自己的支票合约地址,地址在区块浏览器能显示支票收支和余额
节点地址导入小狐狸钱包
从服务器器导出json和密码
导入小狐狸钱包
时间很久,五分钟以上!!!
到这里,教程就结束了,这个狐狸钱包导入所显示的地址就是你节点的地址,你可以往里面打测试币!!!!
screen的基础用法:
查看当前screen挂载几个界面
screen -ls
连接进入挂载界面
screen -r 页面名字
例子:screen -r bee
注意:进去screen窗口之后,你的任何动作都是在操作这个挂载进程,如果想要回到其他地方操作事务,最好不要在bee、cefl的screen里面操作,直接断开重新进去操作!!!
如果你修改了配置文件
启动bee如下

bee start --config /etc/bee/bee.yaml

centos下安装nodejs及websocket 不指定

jed , 2020-5-30 09:02 , 服务器技术 , 评论(0) , 阅读(1740) , Via 本站原创
软件环境:

VitrualBox

CentOS 6.4

NodeJS v0.12.5

安装过程:

Step 1、确认服务器有nodejs编译及依赖相关软件,如果没有可通过运行以下命令安装。
分页: 4/81 第一页 上页 1 2 3 4 5 6 7 8 9 10 下页 最后页 [ 显示模式: 摘要 | 列表 ]