Skip to content

Neuron Functionalities

Chen Yu edited this page Jun 13, 2022 · 6 revisions

Neuron 完整功能说明流程文档

目前是 The release version: 2022.03.01 Neuron-v0.101.3

功能说明

  • Create new wallet:创建钱包

    • Input your seed
      • seed:12 个 有序英文单词组成的助记词
      • 在 Input your seed 输入助记词,若输入一致可点击 Next,
    • Set name and password
      • Wallet name 默认从1开始按顺序依次,例如 Wallet 1, Wallet 2, Wallet 3 ...(最长20位)
      • Password:密码做验证,包含大写字母,小写字母,数字,特殊符号(可包括空格)的至少三类,且长度在8位以上(8到50位)
      • 创建成功后,会生成 20 个 Receiving addresses 和 10 个 Change addresses
  • Overview

    • Balance:目前钱包上的 balance(包括首页、转账界面以及地址界面的balance展示) 统计都不包含带 data 或 type 的 cells,包含等待上链的金额;如果待上链的交易发送失败,金额即时更新。
    • Blockchain Status:
      • Chain Identity,Block Number,Epoch,Difficulty
      • 每隔3~4秒更新一次信息
    • Recent Activities
      • 钱包的所有转账记录,包括成功和失败的记录(按照时间戳最新在最前的顺序排序,时间戳变化会根据Neuron创建交易时间以及交易上链时间变化一次)
      • 4种状态:已提交(Pending)、确认中(Confirming)、成功(Success)、失败(Failed)。
        • 已提交:Neuron 提交但未上链的交易;
        • 确认中:已上链但确认数在24以内时的txs;
        • 成功:当确认数达到24时,状态显示为成功,也仍显示确认数;
        • 失败:发送失败的交易;
      • confirmations > 24 tx sent;
      • 所有 DAO 相关的交易,在首页Activity中类型都显示为“Nervos DAO”;
  • Import Wallet: 导入钱包

    • Import Mnemonic seed
      • Input your seed、Set name and password 不一定要与 Create new wallet 一致
      • 通过 seed 恢复 20 个 Receiving addresses 和 10 个 Change addresses,以及地址相关的 Balance 和 Tx 数量
    • Import from keystore
      • 如果是从ckb-cli生成的keystore导入Neuron,即使cli的地址在testnet上有balance或交易,在Neuron中balance仍显示为0且不会显示相关交易数据(cli的地址也不会显示在Neuron里的地址列表中),因为Neuron是根据BIP44生成的地址,cli只是私钥推导生成。
      • 导入 keystore 时,要求密码必须与备份钱包时导出该 keystore 的密码相同
    • 导入不同钱包会重新扫描,但导入已有的相同钱包不会再重新扫描。
    • 导入硬件钱包
      • 支持导入 Ledger Nano S 及 X 型号的硬件钱包
  • Send tx: 转账

    • 可多地址转账,History 实时显示转账记录,Address Book 同步地址相关的 Balance 和 Tx 数量。
    • 地址二维码扫描功能(v0.28.0暂时隐藏该功能)。
    • 交易费高级设置,包括:
      • 交易费(不可手动修改,随着单价联动);
      • 单价(可手动修改,默认 1000);
      • 快速选择单价。
    • 快速选择单价 下拉列表包括:1000/2000/5000 三个选项,修改选项,单价也会联动变化;
    • 交易费=单价*transaction size; (tx size 为精确计算);
    • 如果输入转账金额后的余额不足以支付找零,交易费会显示为0,即使提交支付输入完支付密码后也应提示“余额不足以支付找零”。
    • 转账页面默认单价1000。可设置为0(需要对节点进行参数配置最小单价min_fee_rate),是假设存在用户可能会有不给手续费转账的情况。
    • 一键全部转账:输入地址后,点击金额栏旁边的【Max】按钮,即可自动填入扣除手续费后的可转账最大金额。
    • 转账输入金额/单价自动逗号千分位显示(单价仅限整数,金额支持8位小数)。
    • 同时支持向官方 ACP lock 的长地址/短地址转账;
    • 支持长地址转账,地址格式见 RFC
      • 当转账时输入长地址解析成功时,下方不会给出比如第三方地址提示;“收款方可能需要第三方软件才能操作该地址资产, 请再次确认地址有效性”;
      • 当转账时长地址解析出 hashType=Type, codeHash=system code hash 时,查看交易详情时会显示为短地址,其它情况均显示为长地址;
      • 当长地址解析 code hash 及 type 属于官方 ACP lock时,查看交易详情时也会显示为短地址;
    • 支持向多签地址转账(包括多签短地址及多签长地址),查看交易详情时均显示为多签短地址(与浏览器表现一致);
    • 支持附带锁定期转账:
      • 仅支持对

        secp256k1_sighashall 短地址的带锁定期转账;

      • 仅在输入为短地址时才显示锁定期功能,否则隐藏锁定期功能;

      • 锁定期最早选择第二天,无法选择当天及之前的日期;

      • 锁定日期格式固定为 “月/日/年” 格式;

      • 锁定期按照到期日 00:00:00 计算到期小时数,除以 4 为需要锁定的 epochs;

      • 实际发送交易时将收款方的 lock script 按照如下规则设置(与 genesis 中的 cell 保持一致)

      • 在设定锁定时间时,有文案提醒:“锁定时间根据区块链实际运行情况会有一定的误差。”/“”

        According to the actual running block height, there may be some time variances in locktime.

      • 锁定期转账的 cells,显示在“自定义资产”tab中,不体现在当前钱包可用余额中。

      • 锁定期计算以发交易时当时的tip block time来计算。

      • 原始 PRD:支持转账时附带锁定期

      • 为了更好的保护隐私,如果是 v0.29.0-rc3 版本之后发出的交易,其 outputs 顺序将会被打乱。

  • 离线签名

    • 目前 Neuron 里的所有转账交易类型均支持离线签名;
    • 转账时可直接导出未签名的交易 JSON 文件;
    • 转账也可在输入密码后导出签名后的交易 JSON 文件;
    • 从菜单 工具 -> 离线签名,可导入未签名或已签名的交易 JSON 文件,显示交易状态(是否签名)及交易内容等;
    • 如果导入的是未签名交易 JSON 文件,可进行签名并导出为新的交易 JSON 文件,之后可选择广播交易;
    • 如果导入的是已签名交易 JSON 文件,可直接点击广播交易。
    • 原始 PRD:Support generating and signing offline transaction
  • Receive

    • Click to copy the address,二维码
  • History:历史记录+搜索+导出

    • History 展示转账记录的 Type、Time、Tx Hash、Status、Description、Amount
      • Status 分为4种状态:Success、Pending、Confirming、Failed
      • Description:填入当前交易的描述(仅保存在本地,不上链)
      • Amount:显示转账金额
      • 搜索:可根据交易哈希、地址(包括转账地址及收款地址)、日期(yyyy-mm-dd)进行精确匹配搜索(去掉了amount搜索)
      • 正常情况下发生新交易时交易历史界面会刷新出现新的交易,但如果遇到同步大批量的密集的交易,同步太快(大约500ms内),列表就不刷新了。
      • 双击交易记录可打开新的交易详情窗口;
      • Neuron 钱包只记录/统计 hash_type=type 的交易;
      • 如果前一笔交易发送失败,再次发起相同交易时,History中前一笔fail的交易状态会再次变成pending。
    • 可导出所有历史交易记录(包括 sUDT 交易),导出文件为 csv 格式,内容包括:交易时间、区块高度、交易哈希、交易类型、金额、备注。 支持中英繁体内容。
  • 交易详情:

    • Basic Information: 包括 Transaction Hash, Block Number, Date(yyyy-mm-dd hh:mm:ss), Income (单位 CKB,收入减少显示为负号(-)及金额,收入增加显示不带符号金额,收入无变化显示为0)
    • Inputs(n/N):
      • 包括 Index, Address, Amount (单位CKB)
      • 0<n<=10, N为实际inputs数量。即:Inputs中最多显示10条数据,index从0开始。
    • Outputs(m/M):
      • 包括 Index, Address, Amount (单位CKB)
      • 0<m<=10, M为实际outputs数量。即:Outputs中最多显示10条数据,index从0开始。
      • 如果是 v0.29.1-rc3 版本后发的交易,显示的将是已被打乱顺序后的outputs信息。
    • View on Explorer: 位于窗口右下角,可点击跳转到浏览器中查看交易详情。
  • Neuron Nervos DAO 界面

    • 界面包括 当前可用余额(包含等待上链的金额)、已锁定余额、当前年化锁定补贴率、存入记录和已解锁记录;
    • 存入记录升序排序(最新的在最下面),已解锁记录降序排序(最新的在最上面);
    • 存入按钮下方有 存款规则/Deposit rules 说明链接 https://docs.nervos.org/docs/basics/guides/neuron#5-deposit-your-nervos-ckbyte-tokens-into-nervos-dao
    • APC: Annual percentage compensation。具体计算公式:https://github.com/CipherWang/Nervos-DAO-RFC/blob/master/APC-Calculation.md
    • 目前可进行 Deposit(存入) 、Withdraw(取出)、Claim(解锁) 操作;
    • Deposit 最低 102 CKB,若仅存入 102 CKB 不会产生补贴;
    • Deposit 后随时可以“Withdraw”,此时为提交 phase 1 的tx,可用余额会相应减少(减去 deposit 金额及手续费),锁定余额 会显示为 deposit 金额,且会持续增加(补贴);
    • Deposit 之后 4 个 epochs 之内,无法进行 Withdraw 操作(按钮置灰不可点击);
    • 当前 epoch 接近与存入 epoch 180*n 整数倍 - 5 epoch 之内时,若尝试 Withdraw,在弹窗中会有 epoch 快到期的提醒;
    • Withdraw 之后,按钮变为置灰状态的 “Claim”,直到锁定期( N(deposit) +180*M 整数倍 个 epochs )之前都不会再产生补贴;
    • Withdraw 之后,在到达锁定期时 ( N(deposit) +180*M 整数倍 个epochs)+ 4 epochs (immature) 后可 Claim,此时钱包 available balance 会增加,包括补贴数额(扣除手续费);
    • 在刚 deposit 时提醒: CKB cannot be withdrawn in 14.6 hours (X 小时内无法提取 CKB);withdraw 后锁定周期结束后还在 immature 时提醒: CKB cannot be unlocked in 14.2 hours(X 小时内无法解锁 CKB),结束 immature后: Cycle has ended, CKB is ready to be unlocked
    • 更多详细需求参见:Add NervosDAO Management Page
    • 所有 DAO 相关的交易手续费的费率均为 medium,即 6000.
    • 一键存入所有到 DAO:
      • 在点击【存入】按钮弹出的“存入 Nervos DAO”窗口中,拖动滑块到最右边,即可全部存入(会自动算出扣除手续费后的最大可存入金额,不包含找零);
      • 当滑到最右边时,会有红字提醒 “建议保留部分 CKB 作为提现手续费”;
      • 如果滑块没有拖到最右边,但剩余小于一个最小找零cell的大小时,滑块自动吸附到最右边并显示为最大可存入金额;
      • 如果是直接在弹窗中的金额栏输入金额且剩余金额小于最小cell大小,则会提示“余额不足以支付找零”。
    • 三色进度条显示当前补偿周期进度:
      • 目前显示三色进度条:总长度 180 epoch,最后 6 个epoch 为黄色,再 36 个 epoch 为绿色,分别对应最后一天、最后一周;其余为灰色。
      • 鼠标移过进度条会自动显示进度条周期说明。
    • 当同步状态处于同步中或同步失败时,DAO 界面的已锁定金额变成 - - ,同步完成时显示正确的锁定金额。
    • 已解锁的交易显示在“Completed”(已解锁) tab 页中。
    • Completed(已解锁)和Deposits(存入)两个tab里的记录排序都是新的在后面,老的在前面;存入界面优先显示Locked 记录(按钮为 Unlock)。
    • 存入记录会显示“存入时间”,如果已做“Withdraw/取出”操作,点击记录展开可看到该记录已做的 存入及 提取时间;
    • 已解锁记录会显示“已取出时间”,点击展开可看到 存入/提取/解锁 时间。
    • 若断开节点,则 DAO 界面的 存入记录 tab 里的所有文案均会消失,位移箭头和补贴都重置,按钮都置灰;Completed tab 界面的记录单独计算,文案不会消失。
    • 离线/正在发交易/无法发起全部存入的交易 ,这三种情况,DAO 界面的 deposit 按钮置灰。
  • 自定义资产界面 (Customized Assets)

    • 目前(v0.29.0-rc1)可展示内容:锁定期转账的锁定 cells;创世块锁定币;(v0.36.0-rc1)NFT 相关的 cells(issuer cell、nft class cell、nft cell);cheque cell (v0.101.3)
    • 目前(v0.29.0-rc1)暂时未实现的展示内容:data 或 type 不为空的 cells;
    • 界面列表显示 日期、金额、T/D指示灯、已锁定/领取 按钮、查看详情链接(跳转浏览器查看对应的cell);
    • T/D 指示灯仅在 cell 的 data 或 type 不为空的时候高亮,且在高亮时显示 tooltips;
    • 当锁定币还未到期时,按钮置灰,显示为“已锁定”文案,且有 tooltip 提示到期 epoch 参数及预计可解锁日期;
    • 当锁定币到期后,按钮高亮,显示为“领取”文案,点击领取,弹窗中确认后,锁定币被解锁。解锁的币自动打给该钱包的最新可用收款地址上,钱包可用余额也增加。
    • 原始 PRD:非规 Cell 的展示与锁定代币的提取功能
    • Cheque Cell 支持:
      • 原始PRD:支持两步支付
      • Asset Accounts 里的 sUDT Account 向短地址发起转账 sudt 时,提示对话框
        • 向该地址转账需要临时锁定 162 ckb,对方领取后自动解锁
        • "A 162 ckbyte capacity is going to be temperary locked to initialize the token transfer, and it will be automatically returned after the token being claimed by the receiver."
      • 发送方会在 Customized Assets 里显示一条 撤回/ Withdraw 的记录,该按钮在 24 小时内是置灰不可点击的;发送方的交易记录里会有一条 UDT Send 的记录;
      • 接收方的交易记录里不会新增记录;但在 Customized Assets 里会有一条待 领取 / Claim 的记录;
      • 如果钱包里没有对该 sUDT 的简称定义,该记录的 “资产”/"Assets" 名称显示为 “sUDT Token ”;
      • 过了 24 小时后,如果接收方还没有领取该 sUDT 的话,发送方的 撤回 按钮变为可点击状态,如果撤回,则接收方在 Customized Assets 里的该记录消失;
      • 如果接收方(余额大于 142 CKB)点击 领取 该 sUDT,会弹窗设置 sUDT Account 信息,提交“创建账户并领取 Cheque 资产”,此时会生成一条 UDT Receive 的交易记录;交易上链后,会在 Asset Accounts 里看到一个 sUDT account,sUDT 余额即为发送方发送的 UDT 数量。
      • 当接收方领取或者发送方撤回后,发送方之前被锁定的 162CKB 会被解锁并返回发送方账户,生成一条收到 162CKB 的交易记录。
      • Cheque Cell 仅针对 ACP lock 地址管理的 sUDT 生效。
    • NFT 支持:
      • 注意:NFT 合约如果有更新,Neuron 这边也需要更新 NFT 合约信息。
      • 该钱包所属地址下的所有 Issuer Cell 和 NFT Class Cell 在 Asset 列里均显示为 Unknow Asset , Actions 列里的操作显示为空, View Details 点击打开默认浏览器跳转到 CKB 浏览器上创建该 issuer cell,或者 class cell 的交易详情页面;
      • 该钱包所属地址下的所有 NFT Cell(s) 在 Asset 列里显示为:“#(issuer id 后四字母,hex 格式)-十进制classid-十进制tokenid m-NFT”,例如:"#17fe-1-1 m-NFT"(其中 issuer id 可从 nft cell 交易中的 type script.args 中查看验证); Actions 列中显示 Send / 转让 按钮;View Details 点击打开默认浏览器跳转到 CKB 浏览器上创建该 NFT 的交易详情页面;
      • 点击 Send 转到该 m-NFT 的转让页面,页面 title 显示 “#(issuer id 后四字母,hex 格式)-十进制classid-十进制tokenid mNFT”,如:"#17fe-1-1 mNFT";转让页面显示接收地址 Address(必填项)和 Description /“备注”(选填项),以及 提交 按钮;
      • 转让支持向任意格式 ckb/ckt 地址转账;
      • 首页显示 m-NFT 相关交易的转账和接收逻辑与普通交易相同,但在交易历史中原本的显示交易数额的地方显示为 mNFT 的 ID 信息,例如 转让则显示为“-#17fe-2-1 mNFT”, 接收则显示为 “+#17fe-2-3 mNFT”。
    • (v0.101.3更新)将 Neuron 不能处理 又同时包含 type/data 的 cell 全都显示为 未知资产/ Unknown Asset
      • 鼠标悬浮在“未知资产”上时显示该 cell 占用的 CKB 值,可正常复制
      • 例如:secp256k1 lock+sudt type 的 cell ,按钮不可点击,按钮文案显示 未识别资产/ Uncataloged Asset ,鼠标悬浮显示提醒 “该资产为未识别资产,Neuron 暂时无法处理,请使用第三方应用操作该资产。”/"This is an uncataloged asset,Neuron cannot process it now,please use a third-party software to check."
      • 转入第三方 sUDT (如 secp256k1 lock+sudt Type,可从 yokaiswap 转账),查看首页和 History 交易记录,仍显示为 CKB 值;
      • nft issuer / nft class cell 也显示为未知资产,不显示按钮(属于秘宝应用的 cell,不赋予转让等操作)
      • 需求:未知资产在自定义资产和 History 中的显示优化
  • 资产账户 (Asset Accounts)

    • 该功能目前(v0.31.0)仅支持 testnet,在 mainnet 和 dev 链不会在侧边栏显示该功能;

    • v0.33.0-beta.1 版本在支持 testnet 的同时也支持 mainnet; 链接

    • 固定显示 experimental/实验室 标签;

    • 第一次进入 Asset Account 界面时,显示 Experimental 的 alert信息;

    • 当在 testnet(v4) 第一次打开带有 sUDT 功能的 Neuron 时,如果之前已经同步高度高于 20913 的话,将会重新从 20913 开始 rescan;

    • 创建 CKB Account 需要至少 61 CKB;

    • 创建 sUDT Account 需要至少 142 CKB;

    • 如果钱包余额在创建 Account 后不足 61 CKB,将会把全部金额都用于创建 Account;

    • 创建 CKB Account 后,余额需减去 基础金额 61 CKB,即当钱包余额足够的情况下,创建后金额默认应显示为 0,否则应显示为 创建 CKB Account 所用到的金额减去 61;

    • 通过 Neuron 创建 sUDT Account 后金额默认显示为 0;

    • 创建 CKB Account 时,Token IDToken Name 都固定显示为 “CKBytes”,Symbol 固定显示为 “CKB”, Decimal 固定显示为 “8”;

    • 创建 sUDT Account 时,Token ID 填写所发行的 sUDT 的 type script 的 args,也即发行者的 lockhash,且该字段仅做格式校验,不做链上是否存在/有效的校验;Token Name、Symbol、Decimal 由用户自定义填写;

    • 资产账户 界面的每个 Account,都显示 Account Name、Token Name、Symbol 及 Amount 信息;

    • 资产账户 界面支持 账户名称(Account Name)、代币名称(Token Name) 或简称(Symbol) 的搜索,不区分大小写,支持部分匹配;

    • 当鼠标移过 Account 时,Amount 信息隐藏,显示 ReceiveSend 按钮,Account 块右上显示 编辑 按钮;

    • 清缓存重新同步后,当同步完成后,Account 会显示在 资产账户 页面,但是用户自定义的信息都会清空,会默认显示为 “Undefined”,且 “Undefined” 是新增或编辑 Account 信息时的保留单词,即如果输入 “Undefined” 将无法保存 Account 信息;

    • 当 Account 里的 Decimal 信息不为空时,ReceiveSend 按钮才可点击;

    • 普通转账可给 CKB Account 的 Receive 地址转账,最小 61 CKB,反之不可转账;

    • 发行 sUDT 代币 (发行工具可使用 https://github.com/ququzone/ckb-udt-cli ,也可用 keypering:https://nervosnetwork.github.io/keypering/#/ ) 后,可向该代币的 sUDT Account 收款地址进行转账;

    • 相同代币的 Account 之间可相互转账, 0 < 可转账金额 < Account 持有金额,小数位数最大遵循 Account 自身的 Decimal 规则;

    • 不可转账给 Account 自己;

    • 同一钱包里的相同 token ID 的不同 Account 的信息保持同步,即编辑或新增了任一 Account 后,所有钱包的有相同 Token ID 的其它 Account 信息应与编辑或新增的 Account 信息保持同步;

    • 在新增 sUDT Account 信息时,如果输入已添加过 Account 的相同 token ID,新增窗口应自动带入已添加过的相同信息;(目前已知 bug 是不同钱包创建时没有自动带入—v0.32.0已修复,不同钱包间会自动 share token info)

    • CKB Account / sUDT Account 的 Send 页面,可用 Max、手续费高级设置及备注功能,仅允许一个 output 输入;

    • Account 转账手续费扣除,优先从 Account 自身所持有的 CKB 余额中扣除,如果不足,再去扣除 normal cells,如果仍不足,则报 “余额不足。/ Insufficient balance. ”

    • anyone-can-pay 的相关交易,不算在 address 的 tx count 里;

    • sUDT 转账相关交易,在首页总览交易历史 中,都会相应显示 UDT 转账UDT 收款,如果未定义 Decimal,则记录中 amount 显示为 “--";

    • 如果未定义 Symbol,则在 交易历史 中该笔记录的 symbol 显示为 “Unknown”;

    • 钱包首页及普通转账、DAO 的可用余额中仅显示 normal cells 的余额,不包含 Account cells 的 CKB 余额;

    • 原始 PRD :Neuron sUDT support proposal

    • v0.34.0 版本开始支持同时向官方 ACP 的长地址或短地址转账,查看交易详情均统一显示为短地址;

    • 支持向 PW Lock 的 ACP 长地址转账;(原始 PRD

      普通转账、CKB ACP account 以及 udt ACP accout 均可向 PW Lock 长地址转账 CKB 或 UDT

    • SUDT 资产账户支持向 secp256k1 短地址转账, 流程与 Cheque Cell 支持 闭环

  • Addresses: 地址衍生

    • 永久显示在钱包Tab中;
    • 生成 20 个 Receiving addresses 和 10 个 Change addresses,同步地址相关的 Balance 和 Tx 数量(失败的交易不会被统计在 tx 数量中)。
    • 衍生:收款地址和找零地址分开衍生,当各自的可用地址小于等于3个的时候,则各自衍生一批新的收款地址或找零地址;
    • 如果有默认30个地址之外的子地址产生交易,则根据该地址的路径正确显示在Neuron地址管理列表中,并同步相关的balance及tx 数量。—非必备功能。目前表现是:当receive或change的最后一个地址用过之后(不管交易是否成功),就会在地址列表后面生成一批新的 receive 20个及新的 change 10个地址,此时也不会 scan 新生成的地址在之前是否发生过交易,即balance都会显示为0。
  • Preferences:偏好设置

    • 独立窗口,且大小固定。
    • Wallets:显示 Wallets list ,可切换当前 Wallet,并可点击按钮进入 Create a Wallet , Import Wallet Seed和 Import from Keystore
    • Network:显示 Network list,可输入 RPC URL 和 name 操作添加 Network,可切换当前 Network
      • 添加/选择后根据 rpc get_blockchain_info 返回的信息判断,如果是 “ckb_testnet” 则后面显示“测试网”标签,如果是 “ckb” 则后面显示 “主网”标签;
      • 除了上面两种的其它情况或识别不出的,后面都默认显示“开发网”标签。
      • 从 v0.25.0 开始,网络设置中第一个永远默认为连接 Mainnet (http://localhost:8114)。
      • v0.34.2, 网络设置中第一个名称在默认情况下显示为 Default, 默认连接仍为 [http://localhost:8114](http://localhost:8114/)
      • (从 v0.36.0-alpha.1,如果网络设置中第一个名称为 DefaultMainnet,则强制更新为 default node。)
      • 从 v0.26.0 开始,Neuron 提供内置CKB节点功能:
        • 可以不用预先自己启动节点,直接打开运行Neuron就会自动运行一个连接主网的 CKB 节点;
        • 如果想连接自己单独运行的节点,则在启动Neuron前运行自己的节点即可,Neuron会自动扫描已经运行的端口。
        • 如果想连接非Mainnet节点,在设置-网络中添加自定义网络并连接到该节点即可。
    • General:~~~~
      • 显示 Address book 开关; →Address Book 永久显示在tab中。
      • 发交易时是否忽略包含 Data 或 Type Script 的 Cell 的开关,默认忽略,但目前由于功能不完善,有UI拦截,所以暂时无法影响发交易;(目前该功能暂未影响balance,细节待完善)
      • 检查更新:也可通过菜单栏中的检查更新,自动跳转到该界面。如果有可用更新,会显示release note,点击下载则会自动下载并安装重启。
      • 清空缓存:
        • 如果数据同步或者金额显示出现问题,可以清空缓存重新同步数据。注意,清空缓存会将之前发交易时设置的备注信息也清空,因为该备注信息不上链
        • 清缓存会将余额、地址交易数据也清零,但不删除数据,只是重新扫描;
        • 从 v0.29.0-rc3 版本开始,清缓存后将不会清掉当前钱包里历史交易及地址界面中的备注信息;如果是删除钱包重新导入,则备注信息都会被清空。
        • v0.32.0 breaking change: 采用全新的同步机制,引用了lumos,同步速率提升为之前的3~4倍;清缓存也变成两个选项,在保持以前的“刷新缓存”功能(必选项)以外,增加了“重建索引”选项(可选,耗时相对久一点);
        • 单清、双清都会把 indexer_tx_hash_cache 表清空;
        • 之所以有两种模式是为了方便调试,如果用户数据出现问题,先看单清是否解决,然后再看双清。
        • 现在的 block number 决定于 indexer_tx_hash_cache 表里面的数据,sync_info 表不再体现同步状态,sync_info 里面的 block number 现在由新的索引模块决定,而不再是通过之前“扫描的机制(从 0 到最高块)”。
        • 单清和双清涉及到不同的存储方式。一个是 Neuron 本身的 sqlite 数据库(单清),一个是 indexer 的 rocksdb。
        • v0.100.0 开始,用 ckb-indexer 替换掉了 lumos 来作为 Neuron 的同步机制,所以如果已同步过的老版本 Neuron 升级到该版本时,会要求强制双清自动全新同步数据。
      • 切换语言功能:可选择切换 中文简体、中文繁体、English、English(United States).
  • 观察钱包(watch only wallet)

    • 通过菜单 钱包-Export Extended Public Key / 导出 Extended Public Key,可导出观察钱包(json格式)。
    • 通过菜单 钱包-导入钱包-导入 Extended Public Key,可导入观察钱包。
    • 导入的观察钱包,仅可用于查看操作,无法进行涉及到密码相关的所有操作,诸如发送交易(包括DAO相关交易)、备份等,会提示密码错误;即导入观察钱包,不会对该钱包的财产有任何影响。
    • 删除或导出观察钱包不做密码检查。
  • 签名/验证信息(Sign/Verify message)

    • 入口:菜单栏 工具-签名/验证信息

    • Message 中用户输入任意信息,Address 下拉列表选择任意收款地址或找零地址,点击签名按钮,输入钱包密码后,在

      Signature 文本框中显示签名后的信息。

    • 签名内容:对 message 进行 UTF-8 编码,blake2d 哈希后签名,然后对签名结果进行 base64 编码后显示在 Signature 区域。

    • Address 只能选择属于本钱包的当前列表信息。

    • 在签名后,或者填入已知匹配的签名信息,点击验证按钮,若签名信息recover公钥后对比地址一致,则弹窗验证成功,否则验证失败。

    • 原始 PRD:信息签名与验证

  • 硬件钱包

    • 同一个硬件钱包可以导入多次,只要钱包名称不同即可;
    • 导入硬件钱包成功后,所有的交易类型只要涉及到签名时均需要硬件钱包设备进行签名;
    • 在进行 ACP account 及 sUDT 相关交易之前,需提前打开设备上 Nervos app 里的 Allow contract data 开关,否则会有文案提醒未打开该开关;
    • 仅当设备上应用已打开且设备连接成功时才可进行签名,否则会根据实际情况有不同类型的错误提醒;
    • 签名时可设备直接签名并提交交易,也可以选择导出未签名交易或者已签名交易为 JSON 文件;
    • 从菜单栏的 工具离线签名 导入已签名交易的 JSON 文件后,可以 preview 交易内容,并 广播交易
    • 如果导入的是未签名交易的 JSON 文件,可以 preview 交易内容,然后 签名并导出, 然后 preview 窗口内容自动更新为签名后的交易内容,然后 广播交易
    • 硬件钱包中的 收款 页面只显示一个地址(使用 m/44'/309'/0' 为 ledger 默认地址),无法跳转到 地址簿 页面;
    • 收款 页面可 验证地址,需设备签名;
    • 菜单栏的 工具签名/验签信息 中也只显示一个地址,并且签名时也需要硬件钱包设备进行签名;
    • 删除硬件钱包不需要签名;
    • 硬件钱包无法备份和导出 Extended Public Key;
    • 相关需求:Ledger integrationUX designUX 变更
  • 菜单栏

    • Neuron:About Neuron,Check for Updates, Preferences, Quit Neuron
    • Wallet:
      • Select Wallet
        • 可切换钱包
      • Create New Wallet
      • Import Wallet:Import Wallet seed, Import from keystore, Import Extended Public Key, Import Hardware Wallet
      • Backup Current Wallet
        • 备份钱包即为导出当前钱包的 keystore
      • Export Extended Public Key
        • 导出为观察钱包
      • Delete Current Wallet
    • Tools: Sign/Verify message/Clear all synchronized data
      • Clear all synchronized data / 清除所有同步数据:
        • 该菜单可点击的前置条件:1. 连接内置的主网节点;2. 当前有至少一个钱包。
        • 不满足任一前置条件,该菜单都不可点击。
        • 满足前置条件后,点击该菜单,会有弹窗确认,确认后,会删除的数据包括:1. 内置节点的默认节点数据 main 文件夹(%APPDATA%\Neuron\chains\mainnet);2.ckb_indexer_data主网节点数据;3. cells 文件夹中主网钱包数据。(第2点和第3点属于双清缓存范围)
        • 点击该菜单后,会自动关闭节点,然后删除节点数据后,会自动重启节点。
    • View: Full Screen, Address Book
    • Help: Search, Nervos, Source Code,Report Issue,Neuron FAQ, Export Debug Information
      • 其中“Export Debug Information”,将会导出 Neuron 的两个 logs(main.log和renderer.log),以及 status.json (包含 Neuron 版本及同步块高、CKB 版本及同步块高、RPC 信息—如果是外部 rpc 节点将会加密显示、操作系统信息、操作系统是否安装 vcredist ),和 32 KB 的内置 ckb 节点的日志。
  • 内置节点启动逻辑:

    • 启动时检测当前连接地址:
      • 如果能连接上, 就不启动内置节点.;
      • 如果不能连接上, 但是地址为默认地址, 则启动内置节点。
    • 每次切换节点做一次检测及尝试启动内置节点。
  • 其他

    • 手动升级
    • 同步进度条
      • 当内置 CKB 节点已启动但还在初始化中时(比如 CKB v0.35.0 第一次启动需要几分钟的数据迁移过程),Neuron 左下进度会一直显示为 Connecting / 连接中 状态;若内置 CKB 节点开始同步,则 Neuron 左下进度才会显示同步中状态;

      • 当 Neuron 的 tip 和系统时间在3分钟内时才显示同步完成,否则显示为同步中;

      • 当进度条在同步中状态时,用户余额右侧显示(同步中);

      • 10 分钟内区块高度无变化时,状态变黄色提示“同步缓慢,请检查网络”;

      • v0.29.0-rc3 版本加回了tooltip,即鼠标移到左下角状态时会有 tooltip 提示当前 ckb 节点的同步高度以及 Neuron 的同步高度,分别显示为“已知最新区块、已同步”(Tip Block、Synced);

      • v0.34.0 版本调整同步进度显示,添加了网络类型标签,用于直观显示当前连接的是 主网/测试网/开发网

      • 加入同步进度状态圈以及剩余同步时间预估显示,PRD

        有四种情况不会显示预估:(原始)

        • 当还没有找到 best block number。这个值在节点还没有同步过的情况下,需要节点跑一段时间后才能确定。这可能需要几分钟至十几分钟。
        • 当 indexer 索引速度慢于 10 blocks/s
        • 当在单清的同步过程中。单清的速度是基于有多少 tx 还没有同步处理,而不是基于还没有同步的区块,所以无法直接用同一个算法来估算。考虑到单清的速度一般比较快,暂且没有实现单清的估算。
        • 当数据统计的时间少于 1 分钟
    • 同步后,在 Log 中的 main.log 和 renderer.log 分别同步记录当前数据库同步记录及当前扫描进度;
    • Neuron 的同步高度根据钱包里未缓存的数据块高来显示;如果有多个未缓存的钱包,且未缓存块高不同,单清的时候则仅显示最早的块高;
    • 当导入一个全新的以前未导入过的未缓存过的钱包,如果该钱包没有任何交易,则 synced 高度不会变化,不会从0开始,若有交易则从0开始;
    • 当导入一个之前缓存过的钱包,则 synced 高度会显示并从该钱包里未缓存的高度开始;若未同步完成就删除该钱包,则会停止进行这个钱包的缓存处理,这时块高会恢复到导入该钱包之前的块高。
    • 中文、英文、繁体字随系统适配
    • Testnet 连接指示灯: 连接状态指示灯会从红色变为绿色,断开状态指示灯会从绿色变为红色
    • 测试 indexer rpc:ckb.toml 需要打开 “Indexer”
    • 钱包除了同步和交易功能, 其他都应该可以离线使用。
    • 目前Neuron只处理两种cells (涉及首页、转账、地址、NervosDAO界面的余额展示):
      • default secp256k1 单签 + 无 data + 无 type
      • 单签 + Nervos DAO
    • 支持带文本输入的界面/窗口的Enter按键默认提交行为。
    • 在 v0.31.0-rc1 版本中优化了页面复制功能,去掉了无用的右键菜单。目前页面可复制区域包括:首页余额, 收款页地址, 历史页交易 hash, 地址列表页地址及余额, 交易详情页交易 hash 及 inputs/outputs,Nervos DAO 界面的可用余额、锁定余额、存入记录和已解锁记录中的本金余额(不包括补贴),自定义资产 中的金额,以及 交易历史 中的金额。
    • About 窗口不仅显示当前 Neuron 版本号,也包含内置 CKB 节点的版本号。
    • 启动后检查 vcredist 安装情况,并提示用户安装。
  • 遗留问题

    • 手续费细节,如何转账全部金额
    • 交易失败的交易详情区分
ckb.toml
# List of API modules: ["Net", "Pool", "Miner", "Chain", "Stats", "Indexer", "Experiment"]
modules = ["Net", "Pool", "Miner", "Chain", "Stats", "Experiment","Indexer"]

neuron 数据文件存储路径

  • mac:~/Library/Application\ Support/Neuron
    • Log 文件:~/Library/Logs/Neuron
  • win:%APPDATA%\Neuron
  • linux: .config/Neuron
  • dev 版本:/Neuron/dev/cells

备用节点数据:

主网-已同步到块高 5662203,覆盖节点 data 文件夹:https://drive.google.com/drive/folders/1awD8uvGAZtl7GKevB7o6MlpJPEvy_c58?usp=sharing

(相关 talk: https://talk.nervos.org/t/ckb-v0-100-0-updated-to-block-5662203-speed-up-your-ckb-node-neuron-wallet-syncing-with-compressed-block-data/6233

测试网-已同步到块高 4203527,覆盖节点 data/db 文件夹:https://drive.google.com/drive/folders/1W7lwvA3xCrZp9nGjFnNO1ukXE_D0WEdV?usp=sharing

远程公共节点:

主网:https://mainnet.ckb.dev/ 测试网:https://testnet.ckb.dev/

归拢后的全部测试用例Google Sheet

测试用例(初始简单版,仅参考,不全)

Untitled

相关测试资料

github repo:

https://github.com/nervosnetwork/neuron

Ref:

http://www.woshipm.com/pmd/663549.html