Create a new Steem Security Account with the command line wallet cli_wallet in the official docker image of steem

in #cn5 years ago (edited)

Original :《steem奇幻旅:用steem官方docker镜像中的命令行钱包cli_wallet创建Steem安全新号》

Translating English Version with Authorization of the Author(经作者授权,翻译英文版)

Create a new Steem Security Account with the command line wallet cli_wallet in the official docker image of steem

0. target

Main Step

1. Make local Docker environment

ubuntu18.04 install Docker
Add special system account steemd

2. Get Steem's official Docker image
3. Running cli_wallet in docker image mode
4. Import the key of the old account in cli_wallet
5. Generate key pair in cli_wallet
6. Generating a new account with the public key of the key pair in cli_wallet
7. Login with the new account on online wallet of steemit with the private key of the key pair
8. In steemit's official online wallet, change the new keys
9. You can use the new account normally(remember the keys for recovery after the stolen account is stolen in the future)
Appendix: Source code explanation

0. target

cli_wallet is Steem's command-line wallet, which can interact directly with Steem nodes and perform many important wallet-related operations, including creating new accounts.

New accounts created through cli_wallet are safer and not controlled by any account (including your old account or steemit official).

But cli_wallet requires Steem nodes to support WebSocket RPC (ws/wss) and temporarily find one (or build it yourself): wss://steemd.privex.io.

Main Step

  1. Make local Docker environment
  2. Get Steem's official Docker image
  3. Running cli_wallet in docker image mode
  4. Import the key of the old account in cli_wallet(Responsible for paying 3STEEM fees for account creation)
  5. Generate key pair in cli_wallet
  6. Generating a new account with the public key of the key pair in cli_wallet, All new key of the new account are this key pair
  7. Login with the new account on online wallet of steemit with the private key of the key pair
  8. In steemit's official online wallet, change the new keys,Make all kinds of keys different, convenient for hierarchical management
  9. You can use the new account normally (remember the keys for recovery after the stolen account is stolen in the future).

1. Make local Docker environment

ubuntu18.04 install Docker

Take Ubuntu 18.04 as an example, Docker installation of other systems is easy by google/baidu.

Install Docker package:
$ sudo apt update && sudo apt install git containerd docker.io -y
Docker can also be installed via get.docker.com:

$ curl -fsSL get.docker.com -o get-docker.sh 
$ sh get-docker.sh

Start docker service:$ service docker restart
View docker status (error logs):
$ systemctl status docker.service or $ journalctl -xn

Add special system account steemd

Add special system account steemd,,并加入到 docker 组:

$ sudo adduser steemd
$ sudo usermod -aG sudo steemd
$ sudo usermod -aG docker steemd
$ sudo su - steemd 

In this way, steemd users can run docker directly without the need for frequent sudo operations.

2. Get Steem's official Docker image

Using the official docker image, it is easy for disaster recovery or hard bifurcation to operate quickly. It can also download and compile source code from GitHub itself.

Obtain the official docker image:$ docker pull steemit/steem
View status : $ docker images | grep steemit

steemit/steem       latest              1325632326e0        5 weeks ago         2.24GB

If you cannot access the official docker.com/docker.io, you can modify the docker image source:$ sudo vi /etc/docker/daemon.json

{
"registry-mirrors":  ["https://registry.docker-cn.com","http://hub-mirror.c.163.com"]
}

Other options:

  1. China University of Science and Technology: https://docker.mirrors.ustc.edu.cn
  2. Docker Official China Region: https://registry.docker-cn.com
  3. Netease: http://hub-mirror.c.163.com
  4. Aliyun: https://pee6w651.mirror.aliyuncs.com

3. Running cli_wallet in docker image mode

Running cli_wallet in docker image mode :
$ docker run -it steemit/steem /usr/local/steemd-default/bin/cli_wallet -s wss://steemd.privex.io
show status:

Logging RPC to file: logs/rpc/rpc.log
Starting a new wallet
3104566ms main.cpp:169                  main                 ] wdata.ws_server: wss://steemd.privex.io 
Please use the set_password method to initialize a new wallet before continuing
new >>> 

First time use, need to set password for local Wallet with set_password:
new >>> set_password yourpwd
show status:

new >>> set_password yourpwd
set_password yourpwd
null
locked >>> 

At this point, the wallet is locked and unlocked with unlock:
locked >>> unlock yourpwd
show status:

locked >>> unlock yourpwd
unlock yourpwd
null
unlocked >>> 

If there is no response during use, it may be that cli_wallet disconnects the network connection with steem node and needs ctrl+d to exit and re-do the previous operation.

4. Import the key of the old account in cli_wallet

To create a new cli_wallet, you need to pay the steem node 3 STEEM fee, so you must first have an old account with at least 3STEEM to create the account.

Import Wallet Key of the old account (active key):
unlocked >>> import_key 5J-active-key
show status:

import_key 5J-active-key
3555971ms wallet.cpp:427                save_wallet_file     ] saving wallet to file wallet.json
true
unlocked >>> 

View imported account assets:
unlocked >>> list_my_accounts
show status:

unlocked >>> list_my_accounts 
list_my_accounts 
585041ms websocket_api.cpp:102         on_message           ] message: {"jsonrpc":"2.0","result":[["acu.fund"]],"id":1} 
585171ms websocket_api.cpp:102         on_message           ] message: {"jsonrpc":"2.0","result":[{...} 
olduser              102.164 STEEM        614866.009468 VESTS        0.499 SBD
-------------------------------------------------------------------------
TOTAL                 102.164 STEEM        614866.009468 VESTS        0.499 SBD

5. Generate key pair in cli_wallet

生成密钥对:unlocked >>> suggest_brain_key

suggest_brain_key
{
  "brain_priv_key": "WACE other words COGNATE",
  "wif_priv_key": "5JY-wif_priv_key-5iB",
  "pub_key": "STM8QhX-pub_key-Dw1KB"
}
unlocked >>> 

6. Generating a new account with the public key of the key pair in cli_wallet

use the pub_key produced with suggest_brain_key creates a new account (olduser for old user, newuser for new user):
unlocked >>> create_account_with_keys "olduser" "newuser" "" "STM8QhX-pub_key-Dw1KB" "STM8QhX-pub_key-Dw1KB" "STM8QhX-pub_key-Dw1KB" "STM8QhX-pub_key-Dw1KB" true

Created new account, all kinds of keys are this key pair, the return information shows that the old account as creator paid 3 STEEM fees:

{
  "ref_block_num": 62156,
  "ref_block_prefix": 3768508021,
  "expiration": "2019-10-12T14:18:15",
  "operations": [[
      "account_create",{
        "fee": "3.000 STEEM",
        "creator": "olduser",
        "new_account_name": "newuser",

7. Login with the new account on online wallet of steemit with the private key of the key pair

The browser opens https://steemitwallet.com and login with the new account newuser and the private key of the key pair (wif_priv_key).

8. In steemit's official online wallet, change the new keys

All the keys of the new account are private keys of the key pair, which is not conducive to hierarchical management.

Therefore, after login to the official online wallet, change the key immediately, so that all passwords are different, which is convenient for hierarchical management.

change the keys: https://steemitwallet.com/@newuser/password

9. You can use the new account normally(remember the keys for recovery after the stolen account is stolen in the future)

Back up four keys, using different key in different situations:/post/Active/Owner/Memo

Appendix: Source code explanation

Why to create an account in this way can not be controlled by any other account, you can find the explanation from the source code and source code comments.

For more cli_wallet operations, you can refer to the instructions in the steem source code

Sort:  

fine!shop

我靠,这个帖子挂了?真可怜

搞清楚什么原因了吗?

@tipu nominate

Flagged for collusive voting @steemflagrewards

Steem Flag Rewards mention comment has been approved for SFR Token Issuance!

Tokens will be transferrred when the flagged content reaches payout.

Thank you for reporting this abuse, @lebin.

  • collusive voting
    The votes on the content follows a repeated pattern suggestive of collusion between multiple users and /or alt accounts resulting in signficant overvaluation of content.

This post was submitted via our Discord Community channel. Check us out on the following link!
SFR Discord

谢谢,不知管用不?

Flagged for circlejerk vote farming.

@steemflagrewards

Steem Flag Rewards mention comment has been approved for SFR Token Issuance!

Tokens will be transferrred when the flagged content reaches payout.

Thank you for reporting this abuse, @enforcer48.

  • vote farming
    You're churning out content (often low quality), in quick successions with abnormal number and/or upvote size.

This post was submitted via our Discord Community channel. Check us out on the following link!
SFR Discord

If you don't want to use the wallet, you can also use https://steeminvite.com
The keys are only given to the person accepting the invite there, so it's equally safe. It also allows you to create them for free if you have enough RC.

thanks, i use steemworld.org. i will try yours service. good advise!

You got a 74.03% upvote from @minnowvotes courtesy of @mana.bank!

Congratulations @anonymity.inlet! You have completed the following achievement on the Steem blockchain and have been rewarded with new badge(s) :

You made your First Comment
You made your First Vote
You got a First Vote
You got a First Reply
You published your First Post
You received more than 10 upvotes. Your next target is to reach 50 upvotes.

You can view your badges on your Steem Board and compare to others on the Steem Ranking
If you no longer want to receive notifications, reply to this comment with the word STOP

Do not miss the last post from @steemitboard:

The new SteemFest⁴ badge is ready
Vote for @Steemitboard as a witness to get one more award and increased upvotes!

这个是官方的机器人吗?

Flagged for collusive voting @steemflagrewards

Steem Flag Rewards mention comment has been approved for SFR Token Issuance!

Tokens will be transferrred when the flagged content reaches payout.

Thank you for reporting this abuse, @jlsplatts.

  • collusive voting
    The votes on the content follows a repeated pattern suggestive of collusion between multiple users and /or alt accounts resulting in signficant overvaluation of content.

This post was submitted via our Discord Community channel. Check us out on the following link!
SFR Discord

你好鸭,anonymity.inlet!

@manabot2给您叫了一份外卖!

@honoru 米高 迎着大雪 跑着步 给您送来
加拿大人民早餐伴侣

吃饱了吗?跟我猜拳吧! 石头,剪刀,布~

如果您对我的服务满意,请不要吝啬您的点赞~
@onepagex

这些美食,需要布!布

Flagged for collusive voting @steemflagrewards

Steem Flag Rewards mention comment has been approved for SFR Token Issuance!

Tokens will be transferrred when the flagged content reaches payout.

Thank you for reporting this abuse, @lebin.

  • collusive voting
    The votes on the content follows a repeated pattern suggestive of collusion between multiple users and /or alt accounts resulting in signficant overvaluation of content.

This post was submitted via our Discord Community channel. Check us out on the following link!
SFR Discord


You lose! 你输了!乖乖的给我点赞吧!

@tipu curate 3

Flagged for collusive voting @steemflagrewards

Steem Flag Rewards mention comment has been approved for SFR Token Issuance!

Tokens will be transferrred when the flagged content reaches payout.

Thank you for reporting this abuse, @lebin.

  • collusive voting
    The votes on the content follows a repeated pattern suggestive of collusion between multiple users and /or alt accounts resulting in signficant overvaluation of content.

This post was submitted via our Discord Community channel. Check us out on the following link!
SFR Discord