使用 Node 手撕创建 Steemit 账号 - 如何不用手机号, 不用第三方网站, 不用等, (可能)不需要注册部署任何服务

bullda(53)
Published in
#cn
Words
751
Reading
4 min
Listen
Play
9y

welcome.jpg

写在前面

在浪费掉3个Gmail邮箱, 3手机号, 以及3天3夜的等待之后, 决定还是采用技术流的方式解决注册账号的问题. 之前陆续也看到了一些文章, 如
怎么不用手机号,创建另一个新的steemit账号, 如何不使用第三方网站帮助国内用户创建Steem帐户, 这篇文章试图用另一种方法解决这个问题.

Node

Node 是一门简单的编程语言.

如何你的本机环境恰好有 node, 那可能不需要做任何操作, 打开 teminal, 查看一下 node 版本, 如果能正确输出版本号, 恭喜你, 进入下一步.

node -v
v6.11.2

如果没有安装 node, 请下载一键安装

Code

这里, 我们要借助 Steem 官方提供的 steem-js SDK, 来创建账号, 主要用到的 API 有两个

  • steem.auth.generateKeys 用于生成4组密钥(owner, active, posting, memo)
  • steem.broadcast.accountCreate 用于创建账号

全部代码如下:

var steem = require('steem');

var newAccountName = "新用户名";
var newAccountPassword = "新用户密码";
var publicKeys = steem.auth.generateKeys(newAccountName, newAccountPassword, ['owner', 'active', 'posting', 'memo']);
var owner = { weight_threshold: 1, account_auths: [], key_auths: [[publicKeys.owner, 1]] };
var active = { weight_threshold: 1, account_auths: [], key_auths: [[publicKeys.active, 1]] };
var posting = { weight_threshold: 1, account_auths: [], key_auths: [[publicKeys.posting, 1]] };
var memoKey = publicKeys.memo;

var creator = "当前用户的的用户名";
var creatorWif = "当前用户的 Active Key";

var fee = "6.000 STEEM";
var jsonMetadata = "";

steem.broadcast.accountCreate(
    creatorWif, 
    fee, 
    creator, 
    newAccountName, 
    owner, 
    active, 
    posting, 
    memoKey, 
    jsonMetadata, 
    function(err, result) {
        console.log(err, result);
    }
);

将代码里的中文部分替换成你的账号信息, 保存成文件名为 index.js 的文件, 到这里准备工作就完成了.

Run

这部分开始执行代码, 在此之前, 新建一个文件夹, 并用 npm 命令初始化一下

npm init

一路回车确认下来, 会生成一个 package.json 文件, 这是这个项目的配置文件.

把 index.js 文件复制到这个项目目录中.

到这里, 距离成功还有两条命令.

npm install steem --save
node index.js

第一条命令是把刚才提到的 steem-js 安装好, 第二条命令是执行我们刚才编写的代码. 成功后, 会输出类似如下的内容.

{ id: 'xxxx',
  block_num: xxxx,
  trx_num: xxxx,
  expired: false,
  ref_block_num: xxxx,
  ref_block_prefix: xxxx,
  expiration: '2017-08-29T00:49:15',
  operations: [ [ 'account_create', [Object] ] ],
  extensions: [],
  signatures: [ 'xxxx' ] }

至此, 就可以用账号登录写作了.

写在最后

需要注意的是, 你的当前账号需要至少有 6 steem, 尽管这篇文章说能够用 0.5 steem 注册, 但是我是从 0 steem 到 6 steem 一路试过来的, 只有到 6 steem 才可以正常创建, 当然也欢迎具有探索精神的你再试一遍. 事实上, 这篇文章提到, 30 倍的 account_creation_fee 才可以用来创建账号, 这也是为什么是 6 steem 的由来. 从当前账号出去的这 6 steem 会变成新注册账号的 6 Steem Power. 所以理论上也不算花费.

然而为什么是 30 倍, 欢迎回复讨论.

One more thing

用这个方法给老婆注册了一个 steemit 账号( niya@niya ).
之前这个账号( bullda@bullda )的旅行记录都是老婆主笔写的, 后面的旅行记录应该都会发到她自己的账号( niya@niya )下. 而我的这个账号应该会更关注技术相关的内容.
再次感谢 tumutanzi@tumutanzi 把我拉进了这个新世界里.