使用命令行錢包1
命令行錢包路徑/bitshares-core/programs/cli_wallet
在上一篇 <<BitShares2.0 —— 第一章 創世篇(三):創世紀 運行見證節>> 中 , 運行了見證節點 , 我們要用錢包連接到這個節點上 .
-
運行錢包 :
命令
cli_wallet --wallet-file=my-wallet.json --server-rpc-endpoint=ws://127.0.0.1:38090 --rpc-endpoint=0.0.0.0:38099 --rpc-http-endpoint=0.0.0.0:38092 --chain-id=20e5aa92b1e3b7f971796a3f3fba59ea0a34b1eeb6fb5e585b2e4c9e441015f4
下面對指令參數進行解釋:--wallet-file
:指定錢包json文件,該文件用於保存本錢包中所有加密後的私鑰;--server-rpc-endpoint
:rpc服務器終端地址,指定錢包要連接的區塊鏈全節點所需要的協議、地址和端口;--rpc-endpoint
:指定命令行錢包要監聽的websocket RPC的ip地址和端口號;--rpc-http-endpoint
:指定命令行錢包要監聽的HTTP RPC的ip地址和端口號;--chain-id
:指定要連接的區塊鏈ID。不指定的話,錢包連接到bitshares的正式鏈上。
注 :chain-id
參數需要與見證節點運行時候的Chain ID
一至 , 這樣纔會連接到你自己的節點上
運行結果如下:
3158674ms th_a main.cpp:143 main ] key_to_wif( committee_private_key ): 5KCBDTcyDqzsqehcb52tW5nU6pXife6V2rX9Yf7c3saYSzbDZ5W 3158674ms th_a main.cpp:147 main ] nathan_pub_key: BTS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV 3158674ms th_a main.cpp:148 main ] key_to_wif( nathan_private_key ): 5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3Starting a new wallet with chain ID 4ed977c9239731ebfb51f3291cfa5ea2bb0094845acba21357c8a3e140fc7b88 (from CLI) 3158675ms th_a main.cpp:195 main ] wdata.ws_server: ws://127.0.0.1:38090 3158677ms th_a main.cpp:200 main ] wdata.ws_user: wdata.ws_password:Please use the set_password method to initialize a new wallet before continuing 3158700ms th_a main.cpp:238 main ] Listening for incoming RPC requests on 0.0.0.0:38099 3158701ms th_a main.cpp:263 main ] Listening for incoming HTTP RPC requests on 0.0.0.0:38092 new >>>
-
初始化錢包/創建錢包
使用如下命令 給 錢包 創建密碼
set_password 你的密碼
此時 , 命令行變爲 :locked >>>
該密碼用於加密錢包中所有的私鑰,
解鎖 新創建的 錢包:unlock 你的密碼
, 命令行變爲 :unlocked >>>
-
導入賬號和資金
要將帳戶導入錢包,必須知道賬戶名稱和私鑰才行。使用
import_key
命令將代碼中默認的賬戶nathan
導入錢包(其私鑰爲5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3
):import_key nathan 5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3
輸出結果:
unlocked >>> import_key nathan 5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3 import_key nathan 5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3 2917900ms th_a wallet.cpp:799 save_wallet_file ] saving wallet to file allet-file=my-wallet.json 2917902ms th_a wallet.cpp:476 copy_wallet_file ] backing up wallet allet-file=my-wallet.json to after-import-key-9407629b.wallet true
注:帳戶名稱是前面在
genesies.json
文件中設置的, 私鑰也是前面在config.ini
文件中設置的。現在已經將私鑰導入到錢包中,但初始賬戶仍然沒有資金(後面升級賬戶需要資金)。 資金在
genesies.json
文件中的initial_balances
字段已經設置好了。 使用import_balance
命令可以將這些資金免費(相對於轉賬需要付手續費來說的)導入錢包:import_balance nathan ["5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3"] true
-
創建新帳戶
-
將nathan升級到LTM
只能使用現有的賬戶去創建新賬戶,且該賬戶(稱爲註冊商:
registrar
)必須支付註冊費用。 此外,要求註冊商賬戶必須是終身會員(LTM: lifetime member
)。使用upgrade_account
命令將nathan
升級到LTM
:upgrade_account nathan true
輸出結果:
unlocked >>> upgrade_account nathan true upgrade_account nathan true { "ref_block_num": 1738, "ref_block_prefix": 2410829715, "expiration": "2018-10-22T11:54:55", "operations": [[ 8,{ "fee": { "amount": 1000000000, "asset_id": "1.3.0" }, "account_to_upgrade": "1.2.17", "upgrade_to_lifetime_member": true, "extensions": [] } ] ], "extensions": [], "signatures": [ "1f0c3bd37a6de3947c59a56f155606626ac4eed3f912fd2593615f1dfb2e4d399605b41886a2f931eb0462810ba3d6feb212ce09d112c1d11d95898d035df9285c" ] }
注:由於緩存問題 ,需要重啓
cli_wallet
錢包,否則升級nathan
沒有更新。 按下ctrl+c
停止CLI
錢包,運行與以下命令重新運行錢包並解鎖:- 運行錢包:
cli_wallet --wallet-file=my-wallet.json --server-rpc-endpoint=ws://127.0.0.1:38090 --rpc-endpoint=0.0.0.0:38099 --rpc-http-endpoint=0.0.0.0:38092 --chain-id=20e5aa92b1e3b7f971796a3f3fba59ea0a34b1eeb6fb5e585b2e4c9e441015f4
輸出結果:
➜ wallet ./cli_wallet -wallet-file=my-wallet.json --server-rpc-endpoint=ws://127.0.0.1:38090 --rpc-endpoint=0.0.0.0:38099 --rpc-http-endpoint=0.0.0.0:38092 --chain-id=4ed977c9239731ebfb51f3291cfa5ea2bb0094845acba21357c8a3e140fc7b88 Logging RPC to file: logs/rpc/rpc.log 3311567ms th_a main.cpp:143 main ] key_to_wif( committee_private_key ): 5KCBDTcyDqzsqehcb52tW5nU6pXife6V2rX9Yf7c3saYSzbDZ5W 3311567ms th_a main.cpp:147 main ] nathan_pub_key: BTS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV 3311567ms th_a main.cpp:148 main ] key_to_wif( nathan_private_key ): 5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3 3311568ms th_a main.cpp:195 main ] wdata.ws_server: ws://127.0.0.1:38090 3311571ms th_a main.cpp:200 main ] wdata.ws_user: wdata.ws_password: 3311583ms th_a wallet.cpp:768 load_wallet_file ] Account 1.2.17 : "nathan" updated on chain 3311590ms th_a main.cpp:238 main ] Listening for incoming RPC requests on 0.0.0.0:38099 3311590ms th_a main.cpp:263 main ] Listening for incoming HTTP RPC requests on 0.0.0.0:38092
- 解鎖:
unlock 你的密碼
確認nathan現在處於LTM狀態:
get_account nathan
輸出結果:
在打印的賬戶屬性中,unlocked >>> get_account nathan get_account nathan { "id": "1.2.17", "membership_expiration_date": "1969-12-31T23:59:59", "registrar": "1.2.17", "referrer": "1.2.17", "lifetime_referrer": "1.2.17", "network_fee_percentage": 2000, "lifetime_referrer_fee_percentage": 8000, "referrer_rewards_percentage": 0, "name": "nathan", "owner": { "weight_threshold": 1, "account_auths": [], "key_auths": [[ "BTS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV", 1 ] ], "address_auths": [] }, "active": { "weight_threshold": 1, "account_auths": [], "key_auths": [[ "BTS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV", 1 ] ], "address_auths": [] }, "options": { "memo_key": "BTS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV", "voting_account": "1.2.5", "num_witness": 0, "num_committee": 0, "votes": [], "extensions": [] }, "statistics": "2.6.17", "whitelisting_accounts": [], "blacklisting_accounts": [], "whitelisted_accounts": [], "blacklisted_accounts": [], "owner_special_authority": [ 0,{} ], "active_special_authority": [ 0,{} ], "top_n_control_flags": 0 }
membership_expiration_date
的屬性值應該是1969-12-31T23:59:59
。 如果仍然是1970-01-01T00:00:00
,那麼賬戶就沒有成功升級。
- 運行錢包:
-
新建帳戶
現在用原賬戶作爲註冊商註冊一個新帳戶了。 首先需要新帳戶的公鑰。可以通過
suggest_brain_key
命令來獲得:
命令輸入:suggest_brain_key
輸出結果如下:
{ "brain_priv_key": "DIALLEL GADGET WHATA DUSKY YITE WAUR STEPT ABRADE TRIDUUM SWANNY WARTIME TUGUI BATLON ONCIN ANNUARY PAPBOAT", "wif_priv_key": "5Kd8CQj7okrxgMSdccZDTUS4bR8TLDiRCoJUpp87u4tFZi4gh4b", "pub_key": "BTS74AWCY222BVvCTAStoYsjsqtmnQNct8bXSsztgh8NUKuFNgLs4" }
其中,
brain_priv_key
是私鑰助記符,
wif_priv_key
是錢包導入格式的私鑰,
pub_key
是公鑰地址。
一定要記下以上重要的信息找個黑客攻擊不到的地方保存起來,非常關鍵。現在可以使用
register_account
命令 註冊一個新帳戶。
可以只使用前面推薦的公鑰來註冊一個名爲alpha
的新帳戶:
命令:
register_account alpha BTS74AWCY222BVvCTAStoYsjsqtmnQNct8bXSsztgh8NUKuFNgLs4 BTS74AWCY222BVvCTAStoYsjsqtmnQNct8bXSsztgh8NUKuFNgLs4 nathan nathan 0 true
輸出結果:
unlocked >>> register_account alpha BTS74AWCY222BVvCTAStoYsjsqtmnQNct8bXSsztgh8NUKuFNgLs4 BTS74AWCY222BVvCTAStoYsjsqtmnQNct8bXSsztgh8NUKuFNgLs4 nathan nathan 0 true register_account alpha BTS74AWCY222BVvCTAStoYsjsqtmnQNct8bXSsztgh8NUKuFNgLs4 BTS74AWCY222BVvCTAStoYsjsqtmnQNct8bXSsztgh8NUKuFNgLs4 nathan nathan 0 true { "ref_block_num": 2486, "ref_block_prefix": 2455595820, "expiration": "2018-10-22T12:58:45", "operations": [[ 5,{ "fee": { "amount": 200014062, "asset_id": "1.3.0" }, "registrar": "1.2.17", "referrer": "1.2.17", "referrer_percent": 0, "name": "alpha", "owner": { "weight_threshold": 1, "account_auths": [], "key_auths": [[ "BTS74AWCY222BVvCTAStoYsjsqtmnQNct8bXSsztgh8NUKuFNgLs4", 1 ] ], "address_auths": [] }, "active": { "weight_threshold": 1, "account_auths": [], "key_auths": [[ "BTS74AWCY222BVvCTAStoYsjsqtmnQNct8bXSsztgh8NUKuFNgLs4", 1 ] ], "address_auths": [] }, "options": { "memo_key": "BTS74AWCY222BVvCTAStoYsjsqtmnQNct8bXSsztgh8NUKuFNgLs4", "voting_account": "1.2.5", "num_witness": 0, "num_committee": 0, "votes": [], "extensions": [] }, "extensions": {} } ] ], "extensions": [], "signatures": [ "204968215d10105fe47ba030340f9bd43a58de67154aad2d8e92ef8ddc3eee842f64d8660a275b9fa803887e75ea06333ff8978346efe6898f35a01ed7014c4ad0" ] }
至此, 已經創建好了名爲
alpha
的帳戶.
-
-