python-bitshares 边学边记 (二) / 钱包操作
python-bitshares·@oflyhigh·
0.000 HBDpython-bitshares 边学边记 (二) / 钱包操作
在之前的帖子中,介绍了python-bitshares 这个用于操作bitshares区块链的强大的python库。并介绍了python-bitshares的安装以及运行了一个简单的示例,并简单分析了python-bitshares与bitshares RPC的关系。  (图源 :pixabay) 这节我们来继续学习python-bitshares 。 # 导入私钥 在Uptick的介绍文章中,为了更好的使用uptick,我们将bitshares账户的私钥添加到了uptick钱包中。其实,钱包功能是在python-bitshares这个层次实现和访问的。uptick只是对相关功能进行了封装。 为了方便我们后续的学习,我们也要将私钥添加到python-bitshares的本地钱包中。如何获取账户私钥,可以参考这篇文章中的对应步骤: * [又一把瑞士军刀? Uptick初体验(二):导入私钥](https://steemit.com/uptick/@oflyhigh/32cec-uptick) #### 使用uptick 导入私钥 如果我们安装了uptick,那么可以直接使用uptick导入私钥的,非常方便。如何导入,在[这篇文章](https://steemit.com/uptick/@oflyhigh/32cec-uptick)已经做了详尽的介绍,就不再赘述了。 但是我直接安装的python-bitshares,是不包含uptick的,所以无法使用uptick导入私钥。 #### 使用代码导入私钥 导入私钥之前我们需要先***创建个钱包*** `from bitshares import BitShares` `bitshares = BitShares(node="wss://openledger.hk/ws")` `bitshares.wallet.create("passwd")` 上述代码创建一个本地钱包,并设置密码为`passwd` (密码仅供示例,出于安全考虑,实际使用时,建议设置复杂一点的密码) 再对钱包进行创造之前,我们首先需要***解锁钱包***: `bitshares.wallet.unlock("passwd")` 解锁钱包之后,我们就可以***导入私钥***了 `bitshares.wallet.addPrivateKey("5XXXXXXXX")` 执行成功后,私钥就被导入到钱包中去了。 # 使用`UNLOCK`环境变量解锁 在以上例子中,我们使用了 `bitshares.wallet.unlock("passwd")` 来解锁钱包。 在代码中硬编码密码可不是一个好习惯,假设我们有多份代码,然后需要修改密码,这一定是一个很头疼的事。 那么还有什么方法指定密码呢? 那就是设置环境变量,比如在我的系统中, `export UNLOCK="passwd"` 为了每次都生效,可以加入到对应用户的`.bashrc`文件中 这样我们就可以无需在程序中硬编码密码以及每次调用`unlock()`了。 # 钱包其它功能 一般情况,都是python-bitshares 和钱包打交道,我们当它透明的就好。但是偶尔可能也需要我们直接对钱包进行操作,比如说看看钱包中有哪些用户,或者从钱包中读出某个对应用户的私钥。 一些可能会被使用到的函数如下: * changePassphrase,修改密码 * getAccounts, 列出钱包中所有用户 * getPublicKeys,列出钱包中所有公钥 * getPrivateKeyForPublicKey,列出公钥的对应私钥。 更多函数及功能,请参考: https://github.com/xeroc/python-bitshares/blob/master/bitshares/wallet.py # 钱包存储位置 有时候我们可能需要将钱包迁移到其它的账户下,这时候一个一个私钥重新添加是很苦恼的事情,如果能直接迁移钱包文件就好了。 不同的系统下,钱包存储位置是不同的 在Linux系统下,钱包文件路径为:`~/.local/share/bitshares/bitshares.sqlite` 从命名可以看出是一个sqlite数据库,库中还包含一些默认参数之类的设置,这节就不详聊了。 # 总结 python-bitshares 提供了一个加密的本地钱包,这样我们使用起来就更加便利了。本文介绍了python-bitshares的钱包相关操作,包括以下内容: * 创建钱包 * 解锁钱包 * 导入私钥 * 使用UNLOCK环境变量 * 钱包的其它函数 * 钱包的存储位置 # 参考信息 * [python-bitshares 边学边记 (一) : 简介与安装](https://steemit.com/python-bitshares/@oflyhigh/python-bitshares) * https://github.com/xeroc/python-bitshares
👍 adnanmengal, eval, yunxiaohui, corvuscoraxx, marylaw, auntigormint, abraomarcos, ms8988, ikonik, ivysrono, fessikay, tiffanyrej, lemminon, subcosmos, benjm, wangwenjing, technologynepal, victory622, susanlo, wylo, michaelwilshaw, maxibyte, steemtruth, drwom, exec, cryptohustler, deanliu, ethansteem, jackhircus, mrspointm, ffcrossculture, xiaokongcom, midnightoil, stevepaul, mark-waser, aabb, digital-wisdom, coldhair, jwaser, revelim, breathewind, herpetologyguy, mrliga, morgan.waser, bwaser, helene, ellepdub, ethical-ai, strong-ai, davidjkelley, technoprogressiv, handyman, insiders, bxt, smartbot, feelapi, somebody, janiceting, enjoyy, lingfei, chinadaily, ribalinux, sanzo, fastiduos, abetterworld, sweethoney, raili, freedom-fighter, raku, weavingwords, vi1son, speeding, heyeshuang, profitgenerator, nextgen622, aismor, ldauch, dailyjoke, lalala, khalilad, vadimlasca, xiaohui, monkeyplayfire, wongshiying, tensaix2j, archiles, ericsim, ericsim1991, ericsim1989, aliyah2017, livingfree, shenchensucc, joythewanderer, laoyao, blockchainbilly, livebuzz, dapeng, ebejammin, nanosesame, jkkim, yyyy, hippo, fundurian, dragon40, trafalgar, bearpaw, saury, candiru, blackbunny, newhope, travelgirl, oflyhigh, devilwsy, wang-peilin, redes, chessmasterhex, sandra, angela.ghkh, asterix87, btsabc, walkinharmony, resteeming, davaowhenyo, allenshayzar, exprmnt, jademont, austinsandersco, ravenousappetite, happychau123, that1consultant, stacee, fenghuang, alishannoor, vfxness, nitro.live, cosasquenosabias, mandagoi, deanyeong, djnoel, chaofanjun, xiaoshancun, magicmonk, contentking, antone, mpraveen, mladenpaunovic, marc5, idx, abit, followbtcnews, cryptoninja, hugo.exe, fenequedvm, biriki3, ace108, fetta, htliao, arcange, hannahwu, jessicameng, herlife, icedream, linuslee0216, ytienchu, raphaelle, etiti40, juniadi, digitalmuseum, nomita, windowglass, dsocer, ajsp1970, letmesee, maryanaro, skenan, donjovinyc, kunpengding, sylvia1997, fr3eze, weiching, david-guevara, chenhs, lydiachan, seanx, englishtchrivy, pharesim, chann, felixkwt, rea, wangcy, weisheng167388,