【概述】 资产设好了白名单后,不在名单内的账号,将不能对该资产进行转账(包括转入转出)、交易(包括买入卖出),不能使用该资产支付系统手续费。至于已经启动的分期付款是否可以继续执行,或者发行人可否强制收回该账户拥有的资产,或者其他高级功能,有待测试。 这个功能用于满足资产发行的合规要求。 另外系统还支持黑名单功能,但本教程里不包含黑名单的具体介绍。 【教程内容】 假设你有一个资产 NEWASSET ,要设置白名单。 1,通过命令行获取资产的详细属性设置 命令格式: get_asset [资产代码] 示例: unlocked >>> get_asset NEWASSET get_asset NEWASSET { "id": "1.3.123", "symbol": "NEWASSET", "precision": 4, "issuer": "1.2.695", "options": { "max_supply": "1000000000000", "market_fee_percent": 0, "max_market_fee": 0, "issuer_permissions": 79, "flags": 2, "core_exchange_rate": { "base": { "amount": 100000, "asset_id": "1.3.0" }, "quote": { "amount": 10000, "asset_id": "1.3.123" } }, "whitelist_authorities": [], "blacklist_authorities": [], "whitelist_markets": [], "blacklist_markets": [], "description": "{\"main\":\"\",\"market\":\"TEST\"}", "extensions": [] }, "dynamic_asset_data_id": "2.3.123" } 在上述结果中, "issuer_permissions": 79 表示该资产的白名单启用状态是否可以修改。 实际上, issuer_permissions 是资产多个权限参数的集合,将 issuer_permissions 转为二进制,从右边数第 2 位表示白名单,如果是 1 则为可修改,是 0 则为不可修改。 "flags": 2 表示已经启用了白名单。 实际上,flags是资产多个旗标参数的集合,将 flags 转为二进制,从右边数第 2 位表示白名单,如果是 1 则为开启,是 0 则为关闭。 "whitelist_authorities": [] 表示没有设置具体名单,这时,白名单功能不生效(结果可测试)。 实际上, whitelist_authorities 里设置的是“白名单管理员”名单,而不是白名单本身。这样的设计很灵活,可以指定多个管理员,修改名单不一定要使用发行者账号,不需要频繁修改资产参数。 2,开启白名单功能 1) 可以在GUI里修改资产的“旗标”设置开启白名单。 不过需要注意,如果在命令行设置过资产参数,则不要在 GUI 进行操作,以免导致问题。 2) 通过命令行开启或关闭资产白名单 先将 flags 二进制里相应位置修改为1或0,然后转为十进制,执行 upate_asset 命令。可以和下面步骤合并,具体在下面会介绍。 3,将管理员账号加入白名单管理员名单 比如,你要将 newaccount1 设置为 NEWASSET 的白名单管理员。 3.1 首先要知道 newaccount1 的 ID,这个 ID 可以通过GUI的浏览账号功能或者命令行 get_account 命令取到。 命令格式: get_account [账户名] 示例: unlocked >>> get_account newaccount1 get_account newaccount1 { "id": "1.2.695", ... } 上面结果显示, newaccount1 的 ID 是 1.2.695 3.2 然后,将上述 get_asset 命令获取的结果中 "options" 后的花括号里面的内容合成一行,再将 "1.2.695" 加入到 whitelist_authorities 后面的方括号中,比如(包含方括号) ["1.2.695"],执行 update_asset 命令。如果有多个管理员,则一起放入方括号中,使用逗号分隔,比如 ["1.2.695","1.2.696"] 。 命令格式: update_asset [资产代码] [新发行人] [新资产参数] [是否广播] 示例: update_asset NEWASSET null {"max_supply":"1000000000000","market_fee_percent": 0,"max_market_fee": 0,"issuer_permissions": 79,"flags": 2,"core_exchange_rate": {"base": {"amount": 100000,"asset_id":"1.3.0" },"quote": {"amount": 10000,"asset_id":"1.3.123" } },"whitelist_authorities": ["1.2.695"],"blacklist_authorities": [],"whitelist_markets": [],"blacklist_markets": [],"description":"{\"main\":\"\",\"market\":\"TEST\"}","extensions": []} true 其中, 第 1 个参数 NEWASSET 是资产代码; 第 2 个参数 null 表示不修改资产发行人(如果要把资产转给名叫 null 的账户,请使用引号,比如 "null") 第 3 个参数,花括号 {} 里是新的资产参数, 由前面得到的 options 加入一个管理员账号后得出。如果同时需要启用白名单,则修改 flags 后面的数值。 第 4 个参数 true 表示执行,如果填 false 表示对命令格式进行测试,不会执行 命令执行完成后,可以使用 get_asset 命令重新查看资产白名单管理员是否已经设好 注意: 1) update_asset 命令的第 3 个参数会将资产的所有属性设置完全覆盖,所以务必仔细检查,使用完整数据。 比如要删掉某个管理员,必须在参数中指定所有其他管理员。 2) 使用命令行设置后,不要再用 GUI 来修改资产属性,因为 GUI 目前不支持白名单设置,通过 GUI 操作可能导致数据丢失 4. 管理员管理白名单 现在管理员 newaccount1 可以管理资产 NEWASSET 的白名单了。默认名单是空,也就是说现在没人可以对该资产进行转账、交易等操作(可测试)。 4.1 查询白名单 这里有个问题:我使用的命令行有个 BUG ,导致不显示管理员设置的具体名单。如果 BUG 修复,可以使用 get_account 命令查看当前设置的白名单。 示例: unlocked >>> get_account newaccount1 get_account newaccount1 { ... "whitelisting_accounts": [], "blacklisting_accounts": [], "whitelisted_accounts": [], "blacklisted_accounts": [], ... } 其中 whitelisted_accounts 就是当前管理员设置的白名单。 另外 whitelisting_accounts 表示有哪个人把当前账号加入了他自己的白名单。 4.2 修改白名单 使用 whitelist_account 命令可以将账号加入白名单,或者从白名单移除。 命令格式: whitelist_account [操作人账号] [操作对象账号] [增加或删除] [是否广播] 示例1(加入白名单): unlocked >>> whitelist_account newaccount1 newaccount2 true false 上述命令是将 newaccount2 加入 newaccount1 的白名单,需要 newaccount1 的权限才能执行。 执行完成后,使用 get_account 命令查看是否生效: unlocked >>> get_account newaccount2 get_account newaccount2 { ... "whitelisting_accounts": [ "1.2.695" ], "blacklisting_accounts": [], "whitelisted_accounts": [], "blacklisted_accounts": [], ... } 可以看到, newaccount2 已经在 1.2.695 也就是 newaccount1 的白名单里了。因为 newaccount1 是 NEWASSET 资产的白名单管理员,这时 newaccount2 可以正常使用 NEWASSET 资产。 注意: 当资产设置了白名单管理人后,管理员、甚至发行人自己,如果需要使用该资产,也需要先加入白名单。 示例2(从白名单移除): unlocked >>> whitelist_account newaccount1 newaccount2 false false 上述命令是将 newaccount2 从 newaccount1 的白名单移除,需要 newaccount1 的权限才能执行。 用户从白名单移除后,即使持有资产,也不能转出或者卖出。 原作者:abit 原文链接:https://bitsharestalk.org/index.php?topic=23298.0 |
比特股5.0 提供了AMM流动性挖矿,简单讲就是你可以为流动性池提
摘 要:流动性做市是市场的热点之一,在Automated Market Maker
先打开注册链接:https://faucet.btspp.io/?lang=zhr=btsabc1、2
首先下载麦子钱包:http://www.mathwallet.xyz注:IOS用户请下载