使用 Node 手撕创建 Steemit 账号 - 如何不用手机号, 不用第三方网站, 不用等, (可能)不需要注册部署任何服务
写在前面
在浪费掉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 ).
之前这个账号( @bullda )的旅行记录都是老婆主笔写的, 后面的旅行记录应该都会发到她自己的账号(
@niya )下. 而我的这个账号应该会更关注技术相关的内容.
再次感谢 @tumutanzi 把我拉进了这个新世界里.