【翻译悬赏】如何在Akash网络上部署Solana

为了让Akash中文社区更好的参与社区建设,文档充实,目前收集到英文电报群管理Andrey撰写的三篇技术性文章,本篇为如何在Akash网络上部署Solana 。

一、原文链接:

Solana on Akashnet

二、活动要求及规则:
1.具备技术类英语文章翻译经验,各自安排翻译接单,直接本帖跟帖即可;
2.翻译时间一周,10月19日前完成;
3.翻译文章经确认,准确无误的前提下,选出最佳的5篇,第一名奖励5Akt,剩余4位参与奖每人1Akt。
4.多次、优质参与社区文档翻译活动的活跃人员,未来可优先选择文章申领的权利。

三、Akash中文社区链接:
中文电报:Telegram: Contact @akashchinatalk
Discord: Akash-web3-云计算
中文论坛: Chinese Support | 中国 - Akash Community
推特: https://twitter.com/AkashCommunity
QQ群: http://t.cn/A6IayTx5
币乎: 币乎 - 好文有好报
币吧: https://akt.bihu.com/
微博: Sina Visitor System
语雀wiki: Akash去中心化云 · 语雀

我申领这个翻译任务。

2 Likes

报名参与,在贡献的同时可以获得奖励,很期待

1 Like

我申领这个翻译任务。

1 Like

本文将指导您如何在Akash网络上部署Solana节点。我会尽量用简洁的文字,从头到尾一步步的指导大家。
我必须说明的一点是,这仅仅是Solana开发节点而非正式产品节点。文末会有详细解释。
我使用了Ubuntu 20.04.2 LTS Linux 发行版和以下软件

  1. Akash: V0.12.1(在Akash网络上运行)
  2. Solana:V1.6.10(将其部署在Akash 网络上)
    简单介绍一下Akash和Solana。
    Akash是一个面向将来的去中心化的云
    Solana是一个高性能的区块链。它支持世界各地的开发者在其开发可扩展的加密应用。
    其实本文的想法非常简单,就是利用去中心化云-Akashnet去部署Solana应用。
    在Akashnet上运行一个实际的应用会比亚马逊AWS上便宜86%。Akashlytics
    其实,我不是很擅长说这些。为了节省大家的时间,让我们直接从命令行界面开始吧
  3. 安装akash客户端
    请一并安装jq工具,我们接下来会用到它。
  4. 创建个人akash钱包
    该命令将会输出主几次,请确保将其保存到安全的地方。
    它还会输出你的akash地址,在本文的例子中地址是:
    akash1h24fljt7p0nh82cq0za0uhsct3sfwsfu9w3c9h
    更多关于Akash钱包的信息可以在一下链接查看:Keplr Wallet - Akash Guidebook
  5. 向钱包充值
    开始之前,至少需要向该地址充值10 AKT(Akash 代币)
    你可以在以下交易所购买(其实现在很多CEX/DEX都可以购买AKT)
    THE AKT TOKEN
    充值后即可查询钱包余额
    汇率:1AKT=1000000UAKT(AKT*10^6).你也可以增加如下代码到你的指令行,
    -o json | jq -r ‘(.balances[0].amount | tonumber / pow(10; 6))’
    我是用的是akashnet-2 网络,具体有什么不同请到以下网址查询
    Page not found - Akash Guidebook.
  6. 创建证书
    要创建任意部署之前,必须要首先创建证书文件。
    运行下图命令。
    每个账户只需要创建一次证书,即可在说有部署中使用。有关证书的更多信息,请查询以下地址,
    Page not found - Akash Guidebook
  7. 准备部署清单文件
    创建一个文件夹,命名为solana.yml,具体文件内容如下图所示。
    定价:请注意会有多个不同的服务提供商出价。这种情况下会有两个不同的提供商碰巧都愿意接受1uAKT的价格。这意味着每个区块仅需1uAKT或者0.000001AKT就可以创建租用合约来执行任何部署。
    定价设置了限制,也就是你设定用多少uAKT来支付每个区块的租金(每6秒产生一个区块)。各个提供商们就知道如何对你的部署进行投标了。
    如果每个区块1uAKT的话,按照2021.5.31的AKT实时价格3.28USDT来计算,你需要每月支付((1*((60/6)6024*30.436875))/10^6)*3.28 = $1.44。
    注意solana.yml文件里面的signed by 必须是akash1365yvmc4s7awdyj3n2sav7xfx76adc6dnmlx63。
    原因请查看如下链接的文档
    Akash Deploy UI (Web App) - Akash Guidebook
    Signed by 是一个“验证”的事情。在提供商确认报价并被AKASH 网络批准后,他们会得到AKASH的签名,以其确保安全性和可靠性。
    更多关于使用SDL(堆栈定义语言)来编写AKASH清单请查询以下地址
    Page not found - Akash Guidebook
  8. 创建部署
    如果指令以Error: RPC error -32603 - Internal error: timed out waiting for tx to be included in a block结束的话,请不用担心。你可以从AKASH区块链上查询并找到你的部署ID
    查询部署:
    我明确不会导出以下3个“SEQ”变量,以免执行信息失败。
    如果你碰到以下这个错误提示,简单的执行“unset AKASH_DESQ”即可
    信息索引: 0: Deployment closed’ error on ‘akash tx deployment create’ later(部署已关闭,船舰akash tx部署时出错)。
    你或许已经注意到了,5AKT代币现在在escrow_account这个账户里并且你的akash钱包里面也相应的减少了5AKT。
    一旦你创建租约,这些代币会由改部署使用。当你结束相应租约或者部署后这些代币会很快返回你的钱包(当然时减去租赁本身的费用)。
    更多部署信息请查看,
    Akash Deploy UI (Web App) - Akash Guidebook
  9. 获取市场报价
    我们现在需要查看各个提供商的市场报价,接受那些我们觉得满意的报价。然后创建租约并发送我们的部署清单,让我们的部署真正的运行起来。
    将AKASH_PROVEIDER环境变量设置为你从市场上挑选价格合适的服务提供商。
    如果akash query market bid list没有显示任何的报价,请确保你删除AKASH_PROVIDER 环境变量。
  10. 创建租约/接受投标
    通过运行以下命令来为上述所选的提供商的投标创建租约。
    请注意:一旦租约创建,提供商将开始借记你不熟的托管账户,即使你还没有通过下文的上传清单步骤来完成部署。
  11. 发送清单用以部署Solana节点
    现在你需要将清单发送给提供商,从而让Solana节点部署启动。
    过一会,你就会看大到你的部署如下图所示。
    最后的URL是cluster.sjc1p0.mainnet.akashian.io:32509, 为什么现在的端口是32509而不是8899呢?在本文的末尾会找到相应的答案(参见节点端口)
  12. 在Akashnet上查看Solana的日志
    在这里,你可以看到Solana节点的助记词
  13. 在Akashnet上查询你的Solana 节点
    如下图使用Solana’s json PRC API,你可以查询到相应的Solana节点。
  14. 终止部署
    当测试完成后,你可以按照如下图所示终止你的部署。
  15. 为部署存放更多的AKT代币
    如果你还不像终止这个部署的话,可以考虑存放更多的AKT代币到托管账户里。
  16. 正式solana验证器节点
    对于正式的solana验证器节点部署,你需要将清单文件做如下修改。有可能还会按照建议一并提高CPU内存和存储限制。
    你可能需要公开更多的端口,例如在—dynamic-port-range 8010-8020参数中指定的端口。
    唯一需要注意的是,不能按照原样直接导出非http/https(80/443)TCP端口,也就是所谓的节点端口比如说8899/tcp,8010:8020/udp等。
    Akashnet的提供商在后台使用Kubernetes来运行你的部署。Kubernetes控制从—service-node-port-range指定的范围内分配端口(default:30000-32767)。
    这意味着操作者首先需要部署Solana节点,然后检查提供商的Kubernetes为你的Akash 部署分配了哪些端口。
    然后使用一些负载均衡器/反向代理(比如nginx/haprorxy/traefik)转发到这些端口。
    你还需要告知Solana验证器使用负载平衡器的主机名。方法是通过Solana验证器节点的—public-rpc-addressHOST:PORT参数指定它。
    然而,我们的目标仅仅是展示以下如何使用Akashnet 部署开发板而不是真的部署完整的Solana节点。
    Solana的官方文档并没有推荐Docker用于正式部署
    Solana正式节点推荐运行在12核,128Gi 内存,500Gi+固态硬盘上。而Akashnet是一个很新的网络并没有那么多提供商能满足这些硬件要求。
    这不是一个投资建议!
    如果你喜欢这篇文章,请在以下链接投它一票
    Twitter Deploy Challenge: Solana on Akash

附:
给我自己或者任何看到文章且想要继续推动的人几条备注
Solana docker 运行solana-run.sh
solana/build.sh at v1.6.10 · solana-labs/solana · GitHub, solana/run.sh at v1.6.10 · solana-labs/solana · GitHub
在实际运行Solana验证器之前,看一下solana-sys-tuner的可行性如何。
Starting a Validator | Solana Docs
设置 ulimit nofile=700000(好像Akash SDL在2021.5.31还不支持这一点)

图片没有插进去,不知道会不会影响大家查阅。其实我是在本地word文档编辑的。有喜欢的我可以把翻译好的word文档分享出来

1 Like

译文已完成 @Mark_Crypto
对文章做了少量的修改及补充
译文链接:

1 Like

用markdown格式化一下, 参考其他几位的内容

效率很高 :+1: :+1:

每篇文章最终选取一篇作为翻译结果,另外选出4篇获得活动参与奖,相当于5位参与者皆可获得奖励,目前还有2个坑 :heart_eyes: :heart_eyes:

P.S. 大家效率杠杠的,目测周日皆可完成翻译任务!

申请任务,昨日已经完成了,只是没注册社区

@Mark_Crypto

在Akash云中部署Solana节点 (notion.site)

注:

为了便于阅读和使用,翻译过程中对文章内容、结构做了细微的补充说明和调整。

今天是活动最后一天,欢迎大家积极参与!
截止时间,10月18日23:59分。