Dyson快速撸毛教程

直达相关链接

要详细做的朋友直接看下面的链接一步步跟着做。推特thread里是最基础的几步,截图和描述性的文字比较多,但操作其实很简单。按官方的说法这里是前3部分

https://twitter.com/Abrahamchase09/status/1570723379501735937

第4部分

https://medium.com/@dysonprotocol/how-to-read-from-storage-and-render-a-website-on-the-dyson-protocol-part-4-of-4-9f3e0d62f04c

第5部分

https://medium.com/@dysonprotocol/how-to-change-the-look-of-your-website-using-html-and-css-on-the-dyson-protocol-part-5-ab15260cec7a

目前只出了5部分,看第5部分结尾好像还有后续。

干货部分

这里我把重点的几步直接一次性做完,想干1000个号的朋友可以上。

关注下官方推特:https://twitter.com/DysonProtocol

加入官方discord:https://discord.gg/6sCCtDaH

准备keplr钱包,就是ATOM(阿童木)的钱包,这里不详细描述下载和安装。

登录:https://dys.dysonvalidator.com/ 后,keplr会弹出添加测试网络和允许访问的请求,approve即可。将keplr网络切到Dyson,复制钱包地址,类似 dys***** 。

到discord的test-airdrop频道提交钱包地址领水,等待5-30分钟不等,看管理员心情。

测试开始

如果因为测试页面比较卡,手动做了刷新页面的操作,记得查看下右上角钱包有个锁的标记是不是锁了,点一下即可,再继续进行测试。

数据写入

1.     左侧选择 Tx Builder , 选择 Dyson/sendMsgCreateStorage,可以看到下面有4个选框,分部选中,creator填自己的dyson地址;index填地址加斜杆加一个英文名(可随便取,但要记住,后面要用);datau部分随便写点内容即可,不重要;force选false。然后,拉到上面,点击“Sign Transaction”, 成功之后最下面会跳出一些返回信息(见本节最后一张图)。

post image
post image
post image

2.     到上面的下拉框选择 Dyson/QueryStorage ,勾选index,填入上一步index中相同的内容(地址/你的英文名),然后点击 Run Query。会反馈你上一步写入的数据内容(见本节第2张图下面部分)。

post image
post image

3.     中间keplr钱包跳出确认的,点击同意(approve)即可。如果操作过程中页面长时间没有响应的,可以刷新页面,记得右上角解锁钱包。好了,如果上面2步执行没有问题。那我们的钱包和英文数据就写入系统成功了。

代码

4.     页面左侧选择 Your Script , 在右侧复制如下代码:

import html
from string import Template
from dys import _chain, get_script_address, get_caller


def say_hello(my_name: str):
    assert get_script_address() == get_caller(), "permission denied"
    data = "hello " + my_name
    print(data)  # to help debug
    return _chain(
        "dyson/sendMsgCreateStorage",
        creator=get_script_address(),
        index=get_script_address() + "/Constantine",
        data=data,
        force=True,
    )


def get_greeting():
    pass
    return _chain(
        "dyson/QueryStorage",
        index=get_script_address() + "/Constantine",
    )


def render_page(body: str):
    return Template(
        """<!doctype html>
    <html>
        <head>
            <title>Hello World</title>
            <meta charset=utf-8>
            <meta name="viewport" content="width=device-width, initial-scale=1">
            <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.0/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-gH2yIJqKdNHPEq0n4Mqa/HGKIhSkIHeL5AyhkYV8i59U5AR6csBvApHHNl/vI1Bx" crossorigin="anonymous">
            <style>
                .heading {
                    text-shadow: #FC0 1px 0 10px;
                }
            </style>
        </head>
        <body>
            <div class="container">
                <h1 class="heading">Greeting!</h1>
                <p>$body</p>
            </div>
        </body>
    </html>
    """
    ).safe_substitute(body=body)


def application(environ, start_response):
    start_response("200 ok", [("Content-type", "text/html")])
    greeting_data = get_greeting()["result"]["storage"]["data"]
    return [
        render_page(html.escape(greeting_data)).encode(),
    ]

代码中将其中2处”Constantine”替换为自己的英文名,然后点击 “save” ,弹框确认, 稍微等一会,等页面最下方出现一些返回信息,基本可以判断为成功。

5.     浏览器新开窗口,打开https://dys1v45kjm2kuk6dju************xw8ya.dysonvalidator.com/ ,将dys1v45kjm2kuk6dju************xw8ya这一段替换为自己的dyson地址,即可得到类似如下页面。

post image

结束

好了,至此官方文档中想呈现的结果我们已经做完了。想要详细了解具体原理的朋友请参照文章开头相关链接的步骤,一步步自己跟着做即可。看官方medium第5部分的最后还提到了后面会新出的关于编程循环部分的新内容,有兴趣的可以自己继续关注。

最后,可以关注我的twitter: https://twitter.com/Constantine_He