ETH钱包问题
1. 【ETH钱包开发02】导入钱包
本文主要讲解通过助记词、keystore、私钥 3种方式来导入钱包。导入钱包就是说根据输入的这3者中的一个去重新生成一个新的钱包。导入钱包的过程和创建的过程其实是差不多的。
根据助记词导入钱包不需要原始密码,密码可以重新设置。根据用户输入的助记词,先验证助记词的合规性(格式、个数等),验证正确后,配合用户输入的密码重新生成一个新的钱包。
验证助记词的合规性(格式、个数等)
助记词导入钱包
通过私钥导入钱包其实和创建钱包的过程基本一致。因为私钥在导出的时候转换成了16进制,所以在导入私钥的时候,要把16进制转换为byte数组。
keystore就是钱包文件,实际上就是钱包信息的json字符串。导入keystore是需要输入密码的,这个密码是你最后导出keystore时的密码。将keystore字符串变成walletFile实例再通过 Wallet.decrypt(password, walletFile); 解密,成功则可以导入,否则不能导入。
这是Web3j的API,程序走到这里经常OOM!
具体原因的话,我就不多说了,细节大家可以看这里
https://www.jianshu.com/p/41d4a38754a3
解决办法
根据源码修改 decrypt 方法,这里我用一个已经修改好的第三方库
修改后的解密方法
导入Kestore
1、导入助记词和私钥是不需要以前的密码的,而是重新输入新的密码;导入Keystore则需要以前的密码,如果密码不正确,会提示地址和私钥不匹配。
2、关于备份助记词
用过imtoken的同学可以看到imtoken是可以导出(备份)助记词的。这个一开始我也很困惑,后来了解到其实它实在创建钱包的时候,在app本地保存了助记词,导出只是讲数据读取出来而已。还有一点,imtoken一旦备份了助记词之后,之后就没有备份那个功能了,也就是说助记词在本地存储中删除了;而且导入钱包的时候也是没有备份助记词这个功能的。
2. 以太坊提现到帐了,钱包怎么还是0
有两种可能一种可能平台没有给你打币,需要咨询客服。第二种钱包问题未能收到你的体现。我之前在ZB平台提过也出现过这种情况。平台客服说钱包问题,然后给我退回,原来账户拉。
3. usdt换eth无效接收方
tp钱包转换分两种情况:
1.如果你的usdt在eth钱包,点闪兑,上面选usdt,下面选eth,在usdt边上输入你想兑换的数量就可以兑换了。
2.如果你的usdt不在eth钱包,那就要在eth链上先创建一个eth钱包,再把usdt转到eth钱包里(到usdt所在的钱包点闪兑,上面选usdt,下面注意要先选eth链,再选usdt),usdt转到eth钱包后按照第一步操作就可以了。
这些转换都是需要上链的,所以要收取一些手续费。
4. 麦子钱包提币提示eth余额不足
建议你先从中心化交易平台购买一些 ETH 存放在钱包里当做矿工费,使得钱包转账功能能正常使用,一般建议 ETH 不少于 0.01 ETH
麦子钱包是一款集合了各种数字货币进行存款的软件,软件由互联网区块链技术制作,用户添加账户上传身份信息添加数字钱包,钱包由区块链技术加密,用户相互制约合同,保障数字货币安全,在这里软件同时支持比特币,NEO,ont,以太坊以及EOSC货币加密钱包,以通证系统保证合约,让数字货币管理更安全,同时软件结合云技术支持在手机上挖矿,是一款非常便捷的数字钱包管理软件。
5. 【ETH钱包开发03】web3j转账ETH
在之前的文章中,讲解了创建、导出、导入钱包。
【ETH钱包开发01】创建、导出钱包
【ETH钱包开发02】导入钱包
本文主要讲解以太坊转账相关的一些知识。交易分为ETH转账和ERC-20 Token转账,本篇先讲一下ETH转账。
1、解锁账户发起交易。钱包keyStore文件保存在geth节点上,用户发起交易需要解锁账户,适用于中心化的交易所。
2、钱包文件离线签名发起交易。钱包keyStore文件保存在本地,用户使用密码+keystore的方式做离线交易签名来发起交易,适用于dapp,比如钱包。
本文主要讲一下第二种方式,也就是钱包离线签名转账的方式。
交易流程
1、通过keystore加载转账所需的凭证Credentials
2、创建一笔交易RawTransaction
3、使用Credentials对象对交易签名
4、发起交易
注意以下几点:
1、Credentials
这里,我是通过获取私钥的方式来加载 Credentials
还有另外一种方式,通过密码+钱包文件keystore方式来加载 Credentials
2、nonce
nonce是指发起交易的账户下的交易笔数,每一个账户nonce都是从0开始,当nonce为0的交易处理完之后,才会处理nonce为1的交易,并依次加1的交易才会被处理。
可以通过 eth_gettransactioncount 获取nonce
3、gasPrice和gasLimit
交易手续费由gasPrice 和gasLimit来决定,实际花费的交易手续费是 gasUsed * gasPrice 。所有这两个值你可以自定义,也可以使用系统参数获取当前两个值
关于 gas ,你可以参考我之前的一篇文章。
以太坊(ETH)GAS详解
gasPrice和gasLimit影响的是转账的速度,如果gas过低,矿工会最后才打包你的交易。在app中,通常给定一个默认值,并且允许用户自己选择手续费。
如果不需要自定义的话,还有一种方式来获取。获取以太坊网络最新一笔交易的 gasPrice ,转账的话, gasLimit 一般设置为21000就可以了。
Web3j还提供另外一种简单的方式来转账以太币,这种方式的好处是不需要管理nonce,不需要设置gasPrice和gasLimit,会自动获取最新一笔交易的gasPrice,gasLimit 为21000(转账一般设置成这个值就够用了)。
这个问题,我想是很多朋友所关心的吧。但是到目前为止,我还没有看到有讲解这方面的博客。
之前问过一些朋友,他们说可以通过区块号、区块哈希来判断,也可以通过Receipt日志来判断。但是经过我的一番尝试,只有 BlockHash 是可行的,在web3j中根据 blocknumber 和 transactionReceipt 都会报空指针异常。
原因大致是这样的:在发起一笔交易之后,会返回 txHash ,然后我们可以根据这个 txHash 去查询这笔交易相关的信息。但是刚发起交易的时候,由于手续费问题或者以太网络拥堵问题,会导致你的这笔交易还没有被矿工打包进区块,因此一开始是查不到的,通常需要几十秒甚至更长的时间才能获取到结果。我目前的解决方案是轮询的去刷 BlockHash ,一开始的时候 BlockHash 的值为0x00000000000,等到打包成功的时候就不再是0了。
这里我使用的是rxjava的方式去轮询刷的,5s刷新一次。
正常情况下,几十秒内就可以获取到区块信息了。
区块确认数=当前区块高度-交易被打包时的区块高度。
6. trust钱包因为没有ETH币转不出,充值银行不让冲,现在没办法了!求教
目前,国内不允许参与数字货币的购买,所以无法进行操作,可以绿通过
7. iOS开发ETH钱包
框架:web3swift => https://github.com/matter-labs/web3swift
1、创建钱包
2、导入钱包
3、获取余额
4、转账
5、调用智能合约
注意:
1、网络的切换
测试网 let web3 = Web3.InfuraRinkebyWeb3()
主网 let web3 = Web3.InfuraMainnetWeb3()
2、转账相关的,必须配置
KeystoreManager
TransactionOptions
3、调用智能合约,参数不对,会直接返回nil
8. 关于以太坊钱包区块数据删除的问题
之前写了一篇关于清理以太坊钱包区块数据的文章( http://blog.eosdata.io/index.php/2017/08/ ),收到一封反馈邮件,所以答复一下
Q 您的文章指出整体删除chaindata文件夹,那么删除以后钱包还能正常工作吗?还是会自动重新同步区块数据?同步下来是不是还是那么大的数据量?
A 删除后如果再次打开 Ethereum Wallet,软件会重新同步节点数据。我自己的观察是新版的 Ethereum Wallet 同步下来的数据比以前的老版本小很多,应该也做了优化,不过重新同步的时间非常长,国内网络一般电脑开24小时才能完成。
Q 另外可不可以只删除文件夹中早期的IDB文件呢?删除后影响钱包工作吗?如果可以,多久之前的才是可以删除的呢?
A 不行。完整节点钱包,chaindata是不能删的。
Q 再一个问题wallet钱包和parity钱包哪个更好用呢?parity可以用来创建合约吗?
A 总体来说 Parity 更好用,同步速度快,针对开发合约更友好。不过Parity也有问题,首先就是没有官方钱包安全性高,之前内置Multi-Sign钱包智能合约出过漏洞,另外目前的版本对ERC20代币的操作比较复杂。
9. 【精华】创建最安全的以太坊钱包-ETH钱包超详细图文教程
现在的交易所或APP钱包存在很大的安全隐患,因为在它们平台上生成的钱包地址都是在平台服务器后台中心,是非常不安全的,如果被黑客入侵或者平台跑路你的数字货币将不复存在,说说那些被黑客入侵或监守自盗的交易所(币安2次被入侵,新西兰Cryptopia交易所(C网)黑客共偷走了价值1600万美元加密货币,加拿大QuadrigaCX交易所公布了被盗资产的去向,老牌交易所Bitcoinica连续遭遇三次黑客攻击,太多了不一一诉说了)在说说那些跑路的APP钱包(Angle Token钱包,DOGX wallet钱包,Wo Token钱包,Tokenstore钱包,MGC钱包,Moer Token钱包,Sum Token钱包,DOGX钱包,波点钱包,Coinroom钱包,EOS生态,Super Token钱包,币管家钱包,包括最大的Plus Token钱包,以上APP钱包跑路或被黑客入侵倒闭用户数字货币化为虚有,因为它们都有后台中心十分不安全)那么该怎么办呢?
不用担心,最安全的方式就是冷钱包,创建的钱包与私钥去中心化完全隔绝网络。
我强烈推荐您使用去中心化生成钱包文件+私钥的钱包: https://www.uutokens.com/
UUtokens钱包功能介绍:
1、UUtokens钱包支持以太坊区块链框架内所有币种交易,生成钱包文件,钱包文件解锁钱包,私钥解锁钱包,助记词解锁钱包
1、货币交换:UUtokens与Bity,Kyber Network,Changelly和Simplex合作,提供用户将币种交换到加密,ETH和BTC,ETH和ERC-20数千种代币交换。
2、硬件钱包支持:UUtokens为所有主要硬件钱包提供支持,包括Ledger,Trezor等等。
3、HTTPS加密访问支持PC与移动让用户随意方便访问。
4、UUtokens钱包支持主流币种ETH,EOS,BNB,TUSD,BAT,OMG,LINK,ZRX,包括全球1200多枚代币。
特别提请生成出来的钱包文件与私钥一定要多备份,文件与私钥丢失无法找回
UUtokens官网首页
创建钱包
访问钱包
选择访问
进入钱包
币种交换
10. 币汇系列:如何提币到钱包
如何提币到钱包?(以 ETH 提到imToken为例)
第一步:从 imToken 复制 ETH 钱包收款地址。
1.1 在手机上打开 imToken app,点击币种列表里的 ETH。
1.2 然后点击[ 收款 ]。
1.3 点击「 复制收款地址 」,复制您的 imToken ETH 钱包地址,然后发送到您的电脑里。
第二步:在 币汇 账户里新增 imToken 的收款地址为提币地址。
2.1 使用您的个人账号密码登录 币汇 「 我的账户 」,在钱包列表里点击 ETH 钱包对应的「 提币 」按钮。
2.2 在提币页面点击「 新建地址 」。
2.3 在新建提币页面输入地址标签。
(地址标签请填写您的备注信息,方便您分辨此提币地址是转至哪个交易所或钱包。本范例中提币到imtoken,所以可以直接填写imtoken。)
然后粘贴您从 imToken 复制过来的 ETH 钱包收款地址,勾选小方框后,点击「 创建 」按钮。
2.4 创建成功后请确认您要创建的地址类型是否正确(如:本文以 ETH 为示范,则建立 ETH 提币地址)。
第三步:在 币汇 发起提币申请。
3.1 在提币页面点击「 提币 」按钮。
3.2 填写提币数量、提币备注(可选填)、输入谷歌两步验证或者手机短信验证(二选一即可),然后点击「 提交 」按钮。
3.3 提交后,出现「提币请求提交成功,请至注册邮箱查看提币确认邮件」。
3.4 登入邮箱,确认信息无误后,点击链接,即通过提币申请。
3.5 页面出现「您已成功确认提币请求,请等待此笔提币请求进入系统伫列进行处理。」提示信息。
3.6 您可以在「提币历史记录」中看到相关的详情。
3.7 提币到账后,您会收到邮件、短信通知。
恭喜您完成了提币