Metis0.3.0比官方还直接的节点部署文档!(含成功测试实例!!!)【有问题请回复】

纯小白贴,提问之前请先阅读《提问的智慧》

经过两天的研究和不断的删服务器重装,我终于摸索出一条适合小白的无脑节点部署方式,从现在开始,不要为什么,赶紧搞一台服务器(至少8C16G)开始执行以下操作吧!

第一步:买一台服务器,不限位置,配置Ubuntu18.04,8核16G5M,200GBSSD,然后登录进去,看到黑乎乎的界面,开始吧。

第二步:不用懂为什么,按顺序输入以下指令

# 安装git
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install git
#下载Metis-Deploy
git clone https://github.com/Metisnetwork/Metis-Deploy.git

# 切文件夹
cd Metis-Deploy

# 切分支
git checkout ansible

# 创建目录
mkdir log

# 装Python3
sudo apt install -y python python-pip python3 python3-pip

# 更新pip和setuptools
pip install --upgrade setuptools && python -m pip install --upgrade pip

# 装ansible和jinja2
pip install -r ./requirements.txt

# 下载安装部署文件
ansible-playbook --ask-sudo-pass local_prepare.yml

第三步:修改inventory.ini配置文件,你们直接抄我的吧

xxx.xxx.xxx.xxx 是你们的服务器内网IP
yyy.yyy.yyy.yyy 是你们的服务器公网IP

# 为当前服务器创建新用户(后面赋权的时候用)
sudo adduser xxx

这里的xxx,就是inventory.ini里面的ansible_ssh_user的值,要一一对应。

# 库存文件,主要用来配置主机列表和主机组

# 网关,一个组织有一个网关服务
[via]
xxx.xxx.xxx.xxx ansible_ssh_user="user" ansible_ssh_pass="Abc@123!" ansible_sudo_pass="Abc@123!"

# 调度,一个组织有一个调度服务
[carrier]
xxx.xxx.xxx.xxx ansible_ssh_user="user" ansible_ssh_pass="Abc@123!" ansible_sudo_pass="Abc@123!"

# 管理台,一个组织有一个管理台服务
[admin]
xxx.xxx.xxx.xxx ansible_ssh_user="user" ansible_ssh_pass="Abc@123!" ansible_sudo_pass="Abc@123!"

# 资源节点,一个组织可以配置多个资源服务
[data]
xxx.xxx.xxx.xxx ansible_ssh_user="user" ansible_ssh_pass="Abc@123!" ansible_sudo_pass="Abc@123!"

# 计算节点,一个组织可以配置多个计算服务
[compute]
xxx.xxx.xxx.xxx ansible_ssh_user="user" ansible_ssh_pass="Abc@123!" ansible_sudo_pass="Abc@123!"

# 注册中心,一个组织要配置奇数个(3,5,等)注册中心,方便 raft 选择leader
[consul]
yyy.yyy.yyy.yyy ansible_ssh_user="user" ansible_ssh_pass="Abc@123!" ansible_sudo_pass="Abc@123!"

## Global variables
[all:vars]
# 集群的名称,自定义即可
cluster_name = demo-xxx

# 部署服务开关
enable_deploy_via = True
enable_deploy_carrier = True
enable_deploy_admin = True
enable_deploy_data = True
enable_deploy_compute = True
enable_deploy_consul = True

# consul 服务的端口,根据自己的部署情况进行设置,数量要和 consul 组里面的 ip 数量一致。
consul_server_port = [8200]
consul_serf_lan_port = [8300]
consul_serf_wan_port = [8400]
consul_http_port = [8500]
consul_dns_port = [8600]

# admin web 服务证书相关配置信息
enable_tls = False # 是否启用 https,启用设置为 True,需要配置证书和相应的域名,证书里面的密码套件等,不启用设置为 False,忽略下面的配置。
admin_server_name = metis-admin.demo.network
admin_ssl_protocols = "TLSv1 TLSv1.1 TLSv1.2"
admin_ssl_ciphers = ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4

# admin web 的 mysql 相关用户名密码
mysql_root_password = metis_root
amin_user = metis_admin
admin_password = admin_123456

# admin web 服务端口号
admin_web_port = 9090

# carrier 外网 ip 地址
carrier_external_ip = yyy.yyy.yyy.yyy

# carrier 服务端口号
carrier_pprof_port = 7701
carrier_rpc_port = 10030
carrier_grpc_gateway_port = 7702
carrier_p2p_udp_port = 10031
carrier_p2p_tcp_port = 10032

# via 外网 ip 地址
via_external_ip = yyy.yyy.yyy.yyy

# via 服务端口号
via_port = 10040

# data 端口号,根据自己的部署情况进行设置,数量要和 data 组里面的 ip 数量一致。
data_port = [30000]

# compute 端口号,根据自己的部署情况进行设置,数量要和 compute 组里面的 ip 数量一致。
compute_port = [40000]

第四步:安装MySQL(看这个教程吧)

Ubuntu 服务器安装 MySQL 教程

【注:不要忘记配置metis_admin】

# 进入MySQL之后输入
## 授权root用户访问权限,并刷新权限
grant all privileges on *.* to root@"%"identified by"metis_root"with grant option;

## 创建新用户并授权访问权限
grant all privileges on *.* to metis_admin@"%"identified by"admin_123456"with grant option;

flush privileges;

exit;

# 重启MySQL服务
service mysql restart

第五步:准备进入隐私计算网络吧!

# 部署前的工作
ansible-playbook --ask-sudo-pass local_prepare.yml
ansible-playbook -i inventory.ini bootstrap.yml

# 如果bootstrap部署失败,出现提权失败的情况,则参考以下方案进行修正

chmod u+w /etc/sudoers
vi /etc/sudoers

## 在root下面一行添加youruser ALL=(ALL)ALL
## 这里的youruser就是在第三步的时候的xxx,你们xxx填了什么,这里就写什么

# 撤销写权限
chmod u-w /etc/sudoers

# 安装相关服务,依次输入

sudo python3 -m pip install --upgrade --force-reinstall pip
sudo apt install -y mysql-client
sudo apt-get install libmysqlclient-dev
sudo apt install libssl-dev
sudo apt install libcrypto++-dev
sudo apt-get install python-setuptools
pip3 install setuptools
pip3 install mysqlclient

# 如果执行pip3 install mysqlclient出现Linux-gcc报错,则先执行下面三个sudo

sudo apt-get install libffi-dev
sudo apt-get install python3.6-dev
sudo apt-get install build-essential

# 部署和启动Metis隐私节点

ansible-playbook -i inventory.ini deploy.yml
ansible-playbook -i inventory.ini start.yml

然后就可以了。

隐私计算网络管理平台见官方文档的操作。


这里是补充。

调度节点IP就是你服务器的公网IP

RPC端口,如果按照我的inventory.ini,就是10030


算了,我也把管理平台的操作说一下吧,心态有点儿小崩溃。

打开浏览器,输入 你的服务器的公网IP:80你服务器的公网IP:8500

80端口看的是你的管理平台,账号密码都是admin,验证码随便写,然后去注册网络身份就行了。

8500端口是consul服务情况,能打开就行,其他不用管了。

2 Likes

如何成功测试?可参考以下方案:

申请ReLeQianQian和人工智障两机构的数据Iris_01_fix和Iris_02_fix

提交工作流

输入配置请看下图

保存,启动即可等待成功。

建议大家搭建一个

配置8核16G = 2350元

13000LAT = 6000元吧
保守净赚: 3500元

我看有些节点是2核4G的也可以,保守还是8核16G妥些

我觉得官方应该给出数据,比如说节点运行一次用多少算力,负载多少,不然有些懂得人参与也不知道预留多少内容

13000lat四千出头 但服务器没那么贵 撑死六七百

雀实,直接跟你买听说免费?还不赶紧来几台

来啊来啊!!!!

另外一个亲测没问题的数据集

申请机构ReLeQianQian和隐私实验室的心脏疾病数据集A、B部分可以实现预测和训练

能问一下Vericode是什么来着嘛

1 Like

你是说管理平台的验证码吗?随便填的

哦哦好的,话说我搭建好后如果进一步操作,哈哈还有点不太理解~

1 Like

啊?你是已经部署完毕了对吧?不理解就对了,本教程不需要理解,只要无脑部署没有报错,且能打开管理平台,启用算力和上传数据文件就好啦

如果想要理解原理可以查看PlatON的官方教程

哈哈就是这个,启用算力和上传数据文件,我该如何操作,还有我看到你的教程里面有一个申请授权,那个申请了有什么用呢,是给我们一份数据文件吗

让用户可以使用数据进行训练和预测,并不会提供源文件。

哦哦,那就是我去申请然后进行训练就行嘛,这样就是启动算力了?那上传数据文件这个文件从哪里来尼

自己找,上网找,或者自己实验室处理一个

节点安装怎么验证是否成功呢?

1 Like

浏览器输入

你的IP:80 出现隐私计算网络管理平台,记得注册机构

你的IP:8500 出现consul服务界面

这个是必须要公网吗? ipv6 或者 域名能行么?