Group Details Private

Global Moderators

Forum wide moderators

Member List

  • RE: Q&A

    Q:Nervos DAO 的存取规则是什么?

    Nervos DAO 是存在一个最低锁定周期的,为 180 个 epoch,一个 epoch 约为 4 小时,因此 180 个 epoch 约合 30 天。

    1.我存进去了什么时候可以取出来?

    这是大家最关心的问题,简单地讲,其实从将 CKB 存入 Nervos DAO 开始计算,您操作得当的话,可以在 180 个 epoch 的整数倍之后,取出之前存入的 CKB 的啦。

    2.如何简明地理解 Nervos DAO 的存取过程?

    首先,Nervos DAO 完整的存取一共有三个步骤,包括 1 次存入,2 次取出。

    • 1 次存入很好理解,和将钱存入银行一样,用户可以直接将 CKB 存入 Nervos DAO。

    • 2 次取出可以这样理解,第 1 次取出,就好比您和银行提出了一份申请,表明您需要将存入的金额取出来。

    • 经过银行核对,在您的取出条件满足规定后(在 Nervos DAO 这边就是,从存入的区块高度开始计算,180 个 epoch 的整数倍后您可以取出),您就可以发起第 2 次提取,最终将 CKB 提取到您的钱包内。

    理解上,存入 Nervos DAO 就是存了一个为期 30 天的定期,到期之后会自动再为您存一个 30 天的定期。您只有在定期时间到了之后,才能真正取出存入的 CKB。

    3.真实的存取情况会是什么样的?

    假设您在 epoch 高度为 5 的时候,将 CKB 存入了 Nervos DAO。

    当您在 epoch 高度为 100 的时候,发起了第 1 次取出申请,并被及时打包上链。那么您将获得从 epoch 从 5 - 100 期间的利息。但是此时因为存入周期不足 180 个 epoch,您无法发起第 2 次取出交易,您需要等到 epoch 高度大于 185(5+180)之后,再发起第 2 次取出交易,最终将存入的 CKB 取出。

    当您在 epoch 高度为 186 的时候,发起了第 1 次取出申请,并被及时打包上链。那么您将获得从 epoch 从 5 - 186 期间的利息。但是此时因为存入周期已经超过了第一个 180 个 epoch,但是不满足第二个 180 个 epoch,您无法发起第 2 次取出交易,您需要等到 epoch 高度大于 365(5+180*2)之后,才能再发起第 2 次取出交易,最终将存入的 CKB 取出。

    也就是正常而言,您在 epoch 高度等于 5 的时候存入,您一般可以在 epoch 高度大于 185,365,545... 之后,完成 CKB 的最终取出。

    4.其他注意事项

    • Nervos DAO 会自动转存下一期,就是上面所提到的一旦没有在一个定期期满之前,发起第 1 笔提取交易,会自动转存一个新的定期。

    • Nervos DAO 的收益是实时减小的并非恒定值,所以存入 Nervos DAO 最好的时机就是现在。

    posted in 产品
  • RE: Q&A

    Q:Nervos DAO 收益如何?

    在区块浏览器的 Nervos DAO 页面中:https://explorer.nervos.org/nervosdao ,可以直接查看 Nervos DAO 当前收益率,即其中的预计 APC(预计年化收益率)。

    例子:那么在此时,您打算存 100,000 CKB 到 Nervos DAO 中,存入 1 个周期(30 天),则可以预计获得多少收益呢?
    估算:100000 * 3.59 % / 12 = 299.2 CKB
    根据当前预计年化收益率为 3.59 %,您预计可以获得 299.2 CKB,因为手续费等原因,实际收益率会略低一点。

    请注意 Nervos DAO 的收益是实时变化的,并非恒定值,且 Nervos DAO 的收益率是随着时间不断减少的。

    Nervos DAO 收益率 = 二级发行量 / 当前 CKB 总量 = 二级发行通胀率

    posted in 产品
  • RE: Q&A

    Q:如何将 CKB 存入 Nervos DAO?

    截至目前只能通过 Neuron 钱包将 CKB 存入 Nervos DAO。

    建议您下载最新版本的 Neuron 钱包,完成安装,然后在页面栏选择 Nervos DAO 根据提示步骤,将 CKB 存入 Nervos DAO 即可。

    未来一定会有更多的钱包和 dApp 等轻量级的形式,支持 Nervos DAO 的存取,本文会持续更新。

    附:

    Neuron 钱包下载地址:https://github.com/nervosnetwork/neuron/releases 。目前 Neuron 只提供电脑端钱包,暂不提供手机端钱包。关于 Neuron 更多的问题,欢迎查看 Neuron 部分。

    posted in 产品
  • RE: Q&A

    Q:Nervos DAO 是什么?

    posted in 产品
  • [建议] 关于回复的设计

    捕获.PNG

    如图所示,目前一个帖子内主要有两个类型的回复,一个是回复主题帖,一个是回复留言帖。

    回复主题帖属于在当前主题下开设一个新的内容帖,应该单独成为一贴。

    回复留言帖、或者明确提问对象的内容,是否需要再单独成为一贴?

    比如:

    主题帖
    ----├── 小问题1
    -----------├── 回答1
    -----------├── 回答2
    ----├── 小问题2
    -----------├── 回答3
    ------------------├── 回复
    ├── 主题讨论1
    -------├── 小问题3
    ├── 主题讨论2

    整体会和 reddit 的回复效果更类似,总体逻辑大概就是讨论单独成回复帖,较小的明确对象的问答就折叠成系列回复内容。

    posted in 反馈建议
  • Q&A

    Nervos Network 作为一个公链项目,涉及到的内容相当多,如何向大家介绍与科普 Nervos 始终是一个困扰社区宣传人员的难题,本贴主要会详细列出目前大部分涉及到的关于 Nervos 的相关问题,所有答案会尽量做到通俗易懂,方便新用户了解认识 Nervos。对于一部分希望深入了解 Nervos 的用户,也会尽量提供一些相关资料,但请注意本贴始终以科普为主。

    Nervos

    • Nervos 是什么?

    CKB

    • CKB 是什么?
    • Cell 是什么意思?

    Nervos 经济模型

    • Nervos 的经济模型是什么?

    Nervos DAO

    Neuron 钱包

    • Neuron 钱包是什么?
    • Neuron 钱包要如何安装?
    • Neuron 钱包为什么是电脑端的,有手机端的么?
    • Neuron 钱包里面为什么有这么多地址,这些都是我的地址吗?
    • 为什么最低转账金额目前是 61 CKB?

    CKB 挖矿

    • 如何参与 CKB 挖矿?
    • CKB 采用的挖矿算法是什么?
    • 目前支持 CKB 的矿池有哪些?
    • CKB 挖矿收益如何?
    • 如何查看 CKB 全网算力分布?

    Nervos Grants 计划

    • Grants 计划是什么?
    • 有哪些项目可以申请 Grants 计划?
    • 如何申请 Grants 计划,申请流程是什么样的?
    • 已经有哪些项目获得了 Grants ?
    • 如何参与 Grants 计划的社区讨论?
    posted in 产品
  • Grants RFCs 汇总

    已经通过的 Grants:

    姓名 项目名 Grants RFC 其他链接 发布时间 Grants 当前状态
    James Prestwich Bitcoin SPV on CKB Bitcoin SPV Utils Github采访 2020/1/22 7.5w 进行中
    Obsidian Labs Nervos IDE Nervos IDE 2020/1/27 18w 进行中

    正在讨论中的 Grants:

    姓名 项目名 Grants RFC 其他链接 发布时间 当前状态
    Oscar Fonseca web3.js on CKB web3.js Port 2020/1/23 社区讨论中
    Fabrx Labs Stratosphere Network on CKB Nervos Interoperability Bridge with the Decentralized Cloud 采访 2020/1/23 社区讨论中
    Chainstack CKB nodes manager Managed Nervos nodes: instant access to the Nervos network 2020/1/28 社区讨论中
    Paytomat CKB wallet support Nervos support in Paytomat Wallet 2020/1/29 社区讨论中
    GrowFi Nervos DeFi Infrastructure Nervos DeFi Infrastructure GithubGrowdrop 2020/1/31 社区讨论中
    Harry Liu Connect dapp with wallet OneConnect - Connect CKB dapp with any wallet Tools 2020/2/1 社区讨论中
    Jason Teutsch Truebit on Nervos Truebit on Nervos 2020/2/5 社区讨论中
    SECBIT Labs zkp-toolkit-ckb zkp-toolkit-ckb - a Zero-Knowledge Proof toolkit for CKB 2020/2/7 社区讨论中
    ABC Wallet decentralized CKB red packets decentralized CKB red packets on SNS Github 2020/2/14 社区讨论中
    Lay2 pw-sdk, ckb.pw Build DApps on CKB and Run Them Everywhere Github中文 2020/2/14 社区讨论中
    posted in 产品
  • UDT 交易

    UDT 存储在 cells 中,这就要求它的所有者也需要持有一些 CKByte。因此 UDT 持有者也是 CKB 持有者。在交易前,Alice 持有 Z 个 UDTs 和 X 个 CKBytes,UDTs 存储在 CKBytes 中。在交易后,Bob 将拥有 Z 个 UDTs 和 Y 个 CKBytes,而 UDTs 同样存储在这些 CKBytes。

    CKBytes 的存储功能解决了状态爆炸的问题,但也使得 UDT 交易变得更加复杂。在这里,我描述了几种具有不同优缺点的设计模式,希望可以引起大家对 UDT 这种特殊设计的认识。

    1. 捆绑转让

    Alice 将 UDTs 连同包含该 UDT 的 cell 一同转给 Bob。

    假设我们要将 Z 个 bananas 币从 Alice 转账给 Bob。Alice 有一个 X CKBytes 的 cell 包含 Z 个 bananas 币。交易是这样的:

    {
        inputs: [
            {capacity: X, data: Z, type: Banana, lock: Alice}
        ],
        outputs: [
            {capacity: X, data: Z, type: Banana, lock: Bob}
        ]
    }
    

    在这里例子中,X 个 CKBytes 和 Z 个 bananas 币是同时转账给 Bob 的。这是最简单的模式,但在大部分情况下这样的设计对用户并不友好。

    2. 接收 Cell

    在此模式中,Bob 会预先准备一个接收 cell。它的 lock user_owner(Alice,Bob) 允许 Alice 将这个接收 cell 作为 input,只要 Alice 创建的 output 具有相同的 capacity 和一个特定的 lock (比如 Bob 的 lock)。Alice 在 Bob 的接收 cell 中只能写入 UDT 数据。

    {
        inputs: [
            {capacity: X, data: Z, type: Banana, lock: Alice},
            {capacity: Y, data: "", type: "", lock: user_owner(Alice, Bob)}
        ],
        outputs: [
            {capacity: X, data: "", type: "", lock: Alice},
            {capacity: Y, data: Z, type: Banana, lock: Bob}
        ]
    }
    

    这里的优点是 Alice 在 UDT 交易中,不需要放弃自己的 CKBytes。而缺点就是 Bob 需要提前获取一些 CKBytes。

    3. 共享接收 Cell

    在一个 n-pay-one(多方向一方进行支付)的场景中,比如向商家付款或者向交易所存款。我们可以提供方案 2 中接收方的 CKBytes 使用效率,这样接收方就不需要为每个用户准备单独的接收 cell。

    在一开始,Bob 显示需要支付多少 bananas 币的信息(可能编码在条形码中)以及如何与 Alice 建立一个链下通道。Alice 创建一个 open transaction,将她的 bananas 币作为输入,一个空的找零作为输出,然后通过已经建立的链下通道将这个 open transaction 发送给 Bob。Bob 在一段时间内(比如 5 秒)从多个用户这边收集这些 open transactions,并将这些 open transactions 和一个额外的共享接收 cell 聚合到一笔交易中去。

    // Alice's open transaction, off-chain
    {
        inputs: [
            {capacity: X1, data: Z1, type: Banana, lock: Alice}
        ],
        outputs: [
            {capacity: X1, data: "", type: "", lock: Alice}
        ]
    }
    
    // Charlie's open transaction, off-chain
    {
        inputs: [
            {capacity: X2, data: Z2, type: Banana, lock: Charlie}
        ],
        outputs: [
            {capacity: X2, data: "", type: "", lock: Charlie}
        ]
    }
    
    // Bob's aggregated transaction, on-chain
    {
        inputs: [
            {capacity: X1, data: Z1, type: Banana, lock: Alice},
            {capacity: X2, data: Z2, type: Banana, lock: Charlie},
            {capacity: Y, data: "", type: "", lock: Bob}
        ],
        outputs: [
            {capacity: X1, data: "", type: "", lock: Alice},
            {capacity: X2, data: "", type: "", lock: Charlie},
            {capacity: Y, data: Z1+Z2, type: Banana, lock: Bob}
        ]
    }
    

    请注意,open transaction 和它的链下传输是技术细节,这些是可以对用户隐藏的。对于用户来说,他们不需要知道钱包发送给商家的是一笔普通的链上交易还是一笔 open transaction。对于用户而言,使用体验是相同的。

    这样的模式不仅减少了商家对于 CKByte 的需求,还减少了链上交易的数量,有效地提高了网络的吞吐量。

    Griefing 攻击是一个问题:如果一个用户试图在 open transaction 中双花他/她的 input,那么聚合交易将会失败。当然如果收款人知道付款人的身份,一旦发生这样的敌对行为,收款人可以很容易地将付款人移入黑名单中。

    4. 多签收集

    Alice 将她的 bananas 币发送到一个 lock 是 user_owner(Bob,Alice) 的 1-of-2 多签输出中,该输出赋予 Alice 完全控制权以及 Bob 特权来修改它的数据和类型。Bob 扫描每一个区块,然后收集这些多签 cells 中的 bananas 币存储到他自己的 cell 中。

    // Alice's payment
    {
        inputs: [
            {capacity: X1, data: Z1, type: Banana, lock: Alice}
        ],
        outputs: [
            {capacity: X1, data: Z1, type: Banana, lock: user_owner(Bob, Alice)}
        ]
    }
    
    // Charlie's payment
    {
        inputs: [
            {capacity: X2, data: Z2, type: Banana, lock: Charlie}
        ],
        outputs: [
            {capacity: X2, data: Z2, type: Banana, lock: user_owner(Bob, Charlie)}
        ]
    }
    
    // Bob's collect transaction, refers to above two transactions
    {
        inputs: [
            {capacity: X1, data: Z1, type: Banana, lock: user_owner(Bob, Alice)},
            {capacity: X2, data: Z2, type: Banana, lock: user_owner(Bob, Charlie)},
            {capacity: Y, data: "", type: "", lock: Bob}
        ],
        outputs: [
            {capacity: X1, data: "", type: "", lock: user_owner(Bob, Alice)},
            {capacity: X2, data: "", type: "", lock: user_owner(Bob, Charlie)},
            {capacity: Y, data: Z1+Z2, type: Banana, lock: Bob}
        ]
    }
    

    这种模式是方案 3 的变体,使用 CKB 而不是链下通道作为通信通道,使得上述的 griefing 攻击不可能发生。因为转账有两个阶段,只有在 Bob 的收集交易在链上完成(并得到 X 个区块的确认)后,才能被视为完成。

    使用两个阶段完成转账的好处是,你不可能失去你的资金。如果 Alice 使用了一个错误的地址,她可以简单地将自己的 bananas 币收回,因为她总是可以访问多签输出。

    5. 时间锁-多签收集

    如果我们在方案 4 中,在 user_owner(Bob,Alice) lock 中加入一个时间锁,Bob 可以确保 Alice 不能再时间 T 之前取回她的 bananas 币。

    posted in 技术
  • CKB 上亟待开发的项目 posted in 技术
  • [建议] Markdown 加入上下标功能

    目前 CKB.DEV 不支持 Markdown 上标、下标的功能

    <sup>xxx</sup>

    <sub>xxx</sub>

    经测试,支持以下特殊格式:

    • CKB.DEV® //商标

    • ƒ(x)=x+1 //函数

    • √5 //根号

    • 30° //角度

    posted in 反馈建议