-
Notifications
You must be signed in to change notification settings - Fork 2
Neuron Functionalities
目前是 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
- Input your seed
-
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 型号的硬件钱包
- Import Mnemonic seed
-
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 保持一致)
- code hash: secp256k1_blake160_multisig_all
- hash type: type
- args: blake2d( S | R | M | N | PubKeyHash)[:20] | lock_period
- S = 0x00, R = 0x00, M = 0x01, N = 0x01
- PubKeyHash = 从收款短地址中提取的 pkhash
- lock_period = 锁定期定义
- 参考:https://github.com/nervosnetwork/ckb-system-scripts/blob/master/c/secp256k1_blake160_multisig_all.c#L31 https://github.com/nervosnetwork/ckb-system-scripts/blob/e08e6016f16072fc2f44cf889ae063fa5b7e10c7/c/secp256k1_blake160_multisig_all.c#L118
-
在设定锁定时间时,有文案提醒:“锁定时间根据区块链实际运行情况会有一定的误差。”/“”
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 格式,内容包括:交易时间、区块高度、交易哈希、交易类型、金额、备注。 支持中英繁体内容。
- History 展示转账记录的 Type、Time、Tx Hash、Status、Description、Amount
-
交易详情:
- 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:支持两步支付;
- 业务描述:CKB/sUDT 交易所充提与钱包支持方案
- 合约 spec:Design of Approve Cell
- 从
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 生效。
- 原始PRD:支持两步支付;
- 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 ID
和Token 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 信息隐藏,显示Receive
和Send
按钮,Account 块右上显示 编辑 按钮; -
清缓存重新同步后,当同步完成后,Account 会显示在
资产账户
页面,但是用户自定义的信息都会清空,会默认显示为 “Undefined”,且 “Undefined” 是新增或编辑 Account 信息时的保留单词,即如果输入 “Undefined” 将无法保存 Account 信息; -
当 Account 里的 Decimal 信息不为空时,
Receive
和Send
按钮才可点击; -
普通转账可给 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,如果网络设置中第一个名称为
Default
或Mainnet
,则强制更新为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 integration ; UX design;UX 变更;
-
菜单栏
- 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
- Select 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点属于双清缓存范围)
- 点击该菜单后,会自动关闭节点,然后删除节点数据后,会自动重启节点。
- Clear all synchronized data / 清除所有同步数据:
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"]
- 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
测试网-已同步到块高 4203527,覆盖节点 data/db
文件夹:https://drive.google.com/drive/folders/1W7lwvA3xCrZp9nGjFnNO1ukXE_D0WEdV?usp=sharing
远程公共节点:
主网:https://mainnet.ckb.dev/ 测试网:https://testnet.ckb.dev/
归拢后的全部测试用例:Google Sheet
测试用例(初始简单版,仅参考,不全)
github repo:
https://github.com/nervosnetwork/neuron
Ref: