您正在查看: Ethereum 分类下的文章

Swarm节点出票版本选择

目前0.5.3的节点还能接收到一些测试的支票,得到的支票还能参与空投么?

您可能会在 0.5.3 中获得支票,但自 6 月 1 日官方 0.6.2 更新公告以来,它们将不符合空投资格。
https://discord.com/channels/799027393297514537/810905662375854123/851855211835424768

为什么我看到很多特别组织的都声称已经接收了大量0.6.2版本的支票了

Actually, yes, someone or someones are attempting to cheat by cascading ever-increasing check values across checkbooks that they control. What they don't realize is that this is futile as NONE of the checks issued by non-trusted (read: our) nodes will ever convert to qBZZ because the queen bee nodes will be selected from "trusted" nodes, which to me means nodes that are run by the core swarm team.

实际上,是的,某人或某人正试图通过在他们控制的支票簿中级联不断增加的支票值来作弊。 他们没有意识到这是徒劳的,因为不受信任(阅读:我们的)节点发出的检查都不会转换为 qBZZ,因为蜂王节点将从“受信任”节点中选择,这对我来说意味着 由核心swarm 团队运行的节点

https://discord.com/channels/799027393297514537/810905662375854123/851842182747127818
https://discord.com/channels/799027393297514537/810905662375854123/851843762082283541

Swarm 分布式节点管理系统

为了方便管理Swarm bee大量节点以及减少用户的对节点的学习成本,计划提供一款CS架构的《Swarm分布式节点管理系统》,Agent部分负责与bee节点交互,代码开源,防止用户担心自己服务器私钥安全问题。Client客户端部分通过https和RSA+混淆与Agent进行加密通信,用户无需了解Swarm技术细节,通过界面操作即可完成bee节点管理以及相关的数据操作与聚合分析展示

Swarm-Agent

开源地址:稍后补充

依赖库

  1. [cpp-httplib] https://github.com/yhirose/cpp-httplib
  2. [spdlog] https://github.com/gabime/spdlog
  3. [nlohmann-json] https://github.com/nlohmann/json
  4. [args]https://github.com/Taywee/args
  5. [libuv]https://github.com/libuv/libuv

编译依赖库

分别clone完代码后执行

mkdir -p build
cd build/
cmake .. -DBUILD_TESTING=ON
sudo make install

Swarm-Client

Download file prompt "Permanent Redirect"

https://github.com/ethersphere/bee/issues/1985

I'm guessing following redirections (with -L) should fix this? Or adding a slash after your url:

curl -OJ http://localhost:6333/bzz/44002171b486e68853c48bb242dc8a61530b11cc7da802fbca308400e894a2c6/

Swarm 上传文件主动发出支票

要将数据上传到 Swarm,您必须执行以下步骤。

  • 使用 gBZZ 为您节点的钱包提供资金。
  • 购买一批邮票并烧毁您的 gBZZ。
  • 等待批处理传播到网络中。
  • 上传您的内容,指定批次 ID,以便 Bee 可以将图章附加到您的块上。
  • 使用您的内容的哈希下载您的内容。

后续补充

出票进度

curl localhost:1635/balances | jq '.[] | sort_by(.balance) | reverse | map_values((.balance / 10000000000000)*100)'

常见问题

cannot create batch

curl -s -XPOST http://localhost:6333/stamps/10000000/20
{"message":"cannot create batch","code":500}

确认下钱包地址的ETH是否足够

out of funds

curl -s -XPOST http://localhost:1633/stamps/10000000/20
{"message":"out of funds","code":400}

钱包地址BZZ不足
你可以直接从其他的地址转过来些,也可以从支票合约里提取出来些

curl -XPOST "http://localhost:1635/chequebook/withdraw/?amount=1000"

未兑换的合约

{
  "peer": "29ed4e280b2bf9e752f82b2087fe2ec03e909fd6fc2a2f6cb9f9f9c5533ce7ee",
  "lastCashedCheque": null,
  "transactionHash": null,
  "result": null,
  "uncashedAmount": 970000000000
}

https://docs.ethswarm.org/docs/access-the-swarm/upload-and-download/
https://docs.ethswarm.org/docs/access-the-swarm/keep-your-data-alive/

Swarm BZZ常见技术问题

1. swarm官方网站是什么

https://swarm.ethereum.org/

2. 哪里能联系Swarm开发人员

https://discord.gg/GU22h2utj6

3. 目前测试网运行一个节点需要多少gBZZ

需要1个gBZZ和0.1个左右的gETH,对于0.6.x版本默认配置已经修改为了1个gBZZ,如果0.5.3版本,需要改下配置添加或修改swap-initial-deposit: "10000000000000000"

4. 大家说的买卖水是什么意思

因为启动Swarm项目需要质押gBZZ测试币,但由于免费领取测试币的接口都被专门薅羊毛的搞光了,被薅出的gBZZ就被成为“水”

5. 如何免费领取gETH和gBZZ

目前最好的就是通过 https://faucet.goerli.mudit.blog/ 发twitter领取完,再到https://app.uniswap.org/#/swap?use=V2 去兑换gBZZ,兑换步骤参考https://www.bcskill.com/index.php/archives/1105.html

还可以去
或者https://discord.gg/GU22h2utj6 中的#faucet频道去领取
发送 /faucet sprinkle 你的地址

来获取,一旦你成功启动3个节点后,你可以在 #faucet 频道继续申请。

6. 使用cashout.sh兑现支票时交易手续费过低怎么办

你可以自己修改下 cashout.sh 脚本中的 cashout() 方法,自己增加Gas-Price参数 “ local response=$(curl -s -H "Gas-Price: 150000000000" -X ...” 加大gas price 加快交易被打包

7. deploying new chequebook in transaction 等待很久

等待交易被打包呢,如果是 0.6以上版本可以加大gas price ,配置中增加 swap-deployment-gas-price,具体的值可以使用MetaMask发起一个转账,看一下建议的gas price是多少,自己适当加2-3倍即可,比如此时
swap-deployment-gas-price: 167500000004

如果是0.5.3版本,那就需要修改下源代码了
https://github.com/ethersphere/bee/blob/acbd0e2ebb4e23566320fdf5d0a40e672d2a8f1a/pkg/settlement/swap/transaction/transaction.go#L180 中的 prepareTransaction方法中,把 gasPrice放大两倍
gasPrice.Mul(gasPrice, big.NewInt(2)) //放大2倍

8. init chain: dial eth client: dial tcp: lookup goerli.infura.io: no such host

简单说infura.io域名被墙了,自己可以找下其他公开的RPC接口,或者自己同步个以太坊节点
https://www.bcskill.com/index.php/archives/1094.html

9. 去哪里下载Swarm 最新版本的节点程序

Swarm项目的节点程序叫做bee
官方目前唯一下载地址:https://github.com/ethersphere/bee/releases
到这个页面去下载对应的平台程序即可,强烈建议不要去使用其他三方提供的链程序,避免存在恶意代码。

10.bee节点程序最适合的系统是什么

建议使用linux系统,比如Ubuntu ,或者centos,因为社区大部分都在用linux系统,一些脚本也是linux 更多一些,也方便操作,并且Linux系统相对Windows相对长时间运行来说,性能更优。

11.官方推荐运行配置是什么

官方已经准备在整理了,https://github.com/ethersphere/bee/issues/1927

12.如何查看当前节点的连接数

curl -s http://localhost:1635/peers | jq '.peers | length'

13.如何将0.5.3版本升级到0.6.x

官方文档:https://docs.ethswarm.org/docs/working-with-bee/upgrading-bee/
简单说如果

curl -s localhost:1633/pin/chunks | jq ".chunks | length"

返回0的话,直接升级bee程序,重新运行就好了
如果不为0,那就按文档进行手动处理

并且记得配置文件中添加
full-node: true,改成full 节点才能出票,默认为false 轻节点

14.0.6.x 版本以上怎么升级

直接升级bee程序即可

15.查看已出票

curl localhost:1635/settlements | jq

16.如何兑换支票

直接使用社区提供的cashout.sh 脚本即可,对于测试网建议修改下脚本里的参数MIN_AMOUNT=10000,这样不必累计到一定额即可兑现
对于Linux,0.5.3版本直接下面命令执行,获取cashout.sh

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

对于0.6.x版本,使用已下版本
https://gist.github.com/ralph-pichler/3b5ccd7a5c5cd0500e6428752b37e975

17.对于Windows如何执行cashout.sh

可以使用git工具中bash,不过还是建议安装WSL或者安装个linux虚拟机,这样一劳永逸。

18.如何查看节点中的地址

curl -s localhost:1635/addresses | jq .ethereum

19.如何查看节点中的余额

curl localhost:1635/chequebook/balance | jq

20.如何判断一个节点是否正常运行

curl http://localhost:1633

返回Ethereum Swarm Bee
并且检查已连接的节点数大于0

curl -s http://localhost:1635/peers | jq '.peers | length'

21.对于Windows没有curl工具怎么办

可以直接去下载
https://curl.se/windows/dl-7.77.0/curl-7.77.0-win64-mingw.zip

22.对于节点地址和支票合约地址是一个么?

不是一个地址,可以简单理解成节点地址是你的钱包地址,支票合约地址是节点地址部署的一个合约,中间过程是SimpleSwapFactory合约帮忙部署的

23.对于目前测试网,如何查看交易状态

去区块浏览器直接查找 https://goerli.etherscan.io

24.目前节点出票率主要影响因素是什么

对于Swarm项目,最核心的就是带宽和网络的稳定性,对于网络稳定由于GFW原因,对于目前测试阶段,还是国外出票率高些

25.如何判断交易是兑现交易,并且成功了

去区块浏览器上查看自己的支票合约地址,显示的交易MethodCash Cheque Beneficiary就是对票交易,并且gBZZ转账金额大于0,最后交易被成功执行,即为有效兑现交易

26.目前什么版本的bee可以正常出票

截至目前发稿,0.5.3的可以通过手动指定bootnote启动新节点,之前已经运行的还可以正常运行出票。对于0.6.x所有版本暂未有正常出票的

27.如何进行多节点部署

官方禁止同一个地址运行多个节点
https://docs.ethswarm.org/docs/FAQ/#can-i-use-one-ethereum-addresswallet-for-many-nodes
只能一个地址运行一个节点

28.Swarm 中文白皮书

https://chinapeace.github.io/pdf/latest.bookofswarm.eth.ZH_CN.pdf

29. Swarm bee节点全球分布

https://beenodes.live/

30. 官方twitter地址

https://twitter.com/ethswarm

31. 官方博客地址

https://medium.com/ethereum-swarm

32. 官方技术文档

https://docs.ethswarm.org/docs/

33. 如何查看goerli测试网的区块高度和手续费价格

https://stats.goerli.net/
api获取:https://goerli.etherscan.io/apis#proxy

34.Bee使用哪个p2p端口,我应该在路由器中打开哪个端口?

Bee 的默认 p2p 端口为 1634,请使用您的路由器转发此端口,并根据需要允许流量通过防火墙。Bee 也支持 UPNP,但建议您不要使用此协议,因为它缺乏安全性。有关更多详细信息,请参阅文档中的连接部分。https://docs.ethswarm.org/docs/installation/connectivity

35.我如何知道我是否已连接到其他对等点

您可以使用它的 HTTP api 与您的 Bee 通信。

curl http://localhost:1635/peers | jq

在您的命令行中键入以查看您的同行列表。

36.Failed to connect to local host port 1635: Connection refused

您的节点未侦听端口 1635,或者未启用 debug-api,或者未在 localhost 上执行。确保您的 bee.yaml 文件具有debug-api-enable: true

37.could not connect to peer

“由于各种原因,可能会连接到对等点。” 最常见的一种情况是,您在地址簿中拥有来自前一个会话的对等方的标识符。再次尝试连接到此节点时,对等方可能不再在线。

38.context deadline exceeded

“超出上下文截止日期”是一个非严重警告。这意味着节点花费了意外的时间来响应来自您节点的请求。您的节点将通过另一个节点自动重试。

39.如何设置区块链端点swap-endpoint

  • 如果您使用“bee start”
    • 您可以在 --swap-endpoint 或 BEE_SWAP_ENDPOINT 下的 bee 配置中设置它
    • 打开 ~/.bee.yaml
    • 放 swap-endpoint: wss://goerli.infura.io/ws/v3/your-api-key
  • 如果您使用 bee.service
    • 您可以在 --swap-endpoint 或 BEE_SWAP_ENDPOINT 下的 bee 配置中设置它
    • 打开/etc/bee/bee.yaml
    • 然后取消注释swap-endpoint配置
    • 并将其设置为 wss://goerli.infura.io/ws/v3/your-api-key
    • 在那之后 sudo systemctl restart bee

40.如何从安装了 bee-clef 的节点导出私钥

如果您将 Bee 与 Bee-Clef 一起运行,您可以在命令行中输入bee-clef-keys,这会将 .JSON 文件存储到您的主文件夹中,并将密码复制到您的剪贴板中。

41.如何查看我有多少张已兑现的支票

您可以在 etherscan 查看您的支票簿合同。
通过以下方式获取您的支票簿合同地址:

curl http://localhost:1635/chequebook/address

42.我对比过我的以太坊地址和我的支票簿地址之间的交易,数量不同,这很奇怪

当您的同行现金支票由您签发时,您的支票簿将显示 OUT gBZZ 交易,但您无需为这些支付任何 gas,因此它们不会出现在您的以太坊地址交易列表中

43. 如何从节点导出私钥(没有 bee-clef)

下载最新的exportSwarmKey工具
https://github.com/ethersphere/exportSwarmKey/releases

exportSwarmKey xx/节点data目录/keys/ 密码

具体的data目录查看bee.yaml配置文件data-dir参数,密码查看password-file对应文件的内容
执行完,返回的内容中,找到swarm.key中的私钥即可在其他钱包中导入

44. waiting for transaction xxx to be mined: not found

等待交易被打包,建议避免出现此情况,先按文章中的问题7进行增加手续费价格

45. bee的重启命令是什么

如果您使用 bee.service

  • 开始: sudo systemctl start bee.service
  • 停止: sudo systemctl stop bee.service
  • 状态: sudo systemctl status bee.service

如果您使用bee start

  • 开始: bee start
  • 停止:ctrl + ccmd + c或关闭终端以停止进程

46.我可以将多个节点连接到 infura 端点吗

是的,但他们的免费计划每天限制 10 万个请求。

47.当我运行 http://localhost:1635/chequebook/balance 时,我得到“totalBalance”和“availableBalance”有什么区别

totalBalance是区块链上的余额,availableBalance是该余额减去您发给同行的未兑现(非兑现)支票。这些后面的检查不会出现在区块链上。这就像银行认为您的余额与您的支票簿所知道的实际上可用的余额,因为您写的支票仍然“在邮件中”并且尚未兑现。

48.什么决定了对等点的数量以及如何影响它们的数量?为什么有时有 300多个同行,有时有30个

连接对等点的数量由您的节点决定,因为它试图保持分布式 Kademlia 的良好连接。随着节点在网络中来来去去,您的对等点数会上下波动。如果您查看 bee 的“成功连接”输出日志,则在这些消息的末尾应该混合使用 (inbound) 和 (outbound)。如果您只获得(出站),那么您需要通过防火墙打开 p2p 端口和/或由路由器转发。查看文档https://docs.ethswarm.org/docs/installation/connectivity 中的连接部分。

49.我可以为多个节点使用一个以太坊地址/钱包吗

不,这违反了 Swarm 协议的要求。Swarm 协议依赖于Swarm Address,也称为peer address. 该地址是节点以太坊地址的散列,因此它是确定性的。由于所有节点都必须有一个唯一的地址,如果你使用同一个钱包,就会违反唯一性约束并导致节点故障。

因此,规则是,每个节点必须具有:

  • 1 以太坊地址
  • 1 支票簿
  • API / p2p / Debug API 的 3 个独特端口

50. waiting to sync with the Ethereum backend

更换稳定的swap-endpoint

持续更新

参考

https://docs.ethswarm.org/docs/FAQ
https://hackmd.io/tfKVeHaIQGewlGTC4ooESg#Swarm-FAQ