细心的用户可能发现Bycoin钱包在高级设置下面增加了几个新的功能——钱包余额刷新工具,UTXO合并工具,如下图:
这些小工具可以一键解决用户使用过程中的一些小问题,那么这些小工具有什么作用呢?
钱包余额刷新工具
钱包余额刷新工具可以强制节点再次更新用户账户的余额信息,解决合约转账或者余额未及时同步的问题。
外部账户和合约账户
我们知道以太坊中有两类账户——外部账户和合约账户
外部账户:该类账户被公钥-私钥对控制,外部账户的地址是由公钥决定的
合约账户:该类账户被存储在账户中的代码控制,合约账户的地址是在创建合约时确定的
两种账户都可以实现对以太币的管理,包括持有以太币、查询余额、发送交易等。
交易和内部交易
一般用户转账的时候,都是使用外部账户对代币合约发起调用,调用转账的方法,最终发起转账的请求到以太坊节点。
Euler Finance社区就如何将追回的被盗资金分配给用户进行投票:Euler Finance社区就如何将追回的被盗资金分配给用户进行投票
金色财经报道,DeFi借贷协议Euler Finance背后社区正在就如何将追回的被盗资金分配给用户进行投票,如果该计划获得批准,Euler将使用协议因黑客攻击而被禁用时的价格来计算用户资产和负债的价值。
此前报道,Euler Finance在3月份遭受了2亿美元的黑客攻击,该团队上周表示,它已经收回了在黑客攻击中被盗的所有“可追回资金”。根据Euler治理论坛的提议,收回的资金总额超过95,556个ETH和4300万个DAI稳定币。未追回的资金包括发送到Tornado Cash的1,100ETH和发送到与Lazarus Group相关地址的100ETH,Lazarus Group是一个据称与朝鲜有关的黑客组织。[2023/4/11 13:55:39]
那么什么是内部交易,内部交易就是合约之间的调用,通过合约状态的改变从而达成转账的目的
针对第一种普通转账,Bycoin可以很轻易检测到用户余额的改变,而内部交易较难检测到其内部的行为。所以通过钱包余额刷新工具来更新内部交易产生的交易而导致的余额变化。
钱包余额刷新工具做了什么?
钱包余额刷新工具会请求以太坊的节点,来重新查询用户的地址,获取内部交易产生的余额变动,并将查询结果记录到数据库中,从而将用户余额正确更新.
动态 | 会计公司H&R Block推出新服务 就如何正确申报加密货币损益提供咨询:根据9月24日发布的一份新闻稿,美国会计公司H&R Block推出了一项针对从事加密货币交易的人士的新服务,专门就如何在纳税申报单上正确申报加密货币损益提供咨询。(Cointelegraph)[2019/9/25]
func(s*Service)SyncBalance(c*gin.Context)error{address,err:=formatETHAddress(c.Query("address"))iferr!=nil{returncommonTypes.ErrAddressFormat}iferr:=s.DB.Slave().Model(orm.Address{}).Where("address=?",address).First(&orm.Address{}).Error;err!=nil{returncommonTypes.ErrNotFoundAddress}ormAssets:=make(orm.Asset,0)iferr:=s.DB.Slave().Model(orm.Asset{}).Find(&ormAssets).Error;err!=nil{returncommonTypes.ErrAssetID}blockHeight,err:=s.node.GetBlockCount()iferr!=nil{returnerr}for_,asset:=rangeormAssets{ifasset.Asset==ETH{iferr:=ethereum.UpdateBalance(s.DB.Master(),address,s.node,asset.Asset,asset.ID,int64(blockHeight));err!=nil{returnerr}}else{iferr:=ethereum.UpdateBalance(s.DB.Master(),address,s.node,asset.ContractAddress,asset.ID,int64(blockHeight));err!=nil{returnerr}}}returnnil}funcUpdateBalance(db*gorm.DB,addressstring,node*Node,assetstring,assetIDuint64,blockHeightint64)error{......//UPDATE}else{//ERC20balancebalanceBigInt,decimal,err:=node.GetERC20Balance(address,asset)iferr!=nil{returnerr}......}addressInfo:=orm.Address{Address:address}iferr:=db.Select("id").Where("address=?",address).Find(&addressInfo).Error;err!=nil{errors.Wrap(err,"errselectaddress")returnnil}balance:=&orm.Balance{AddressID:addressInfo.ID,AssetID:assetID,Balance:value,PendingBalance:pendingValue,LastUpdateBlock:uint64(blockHeight),}returnsaveBalance(db,balance。
动态 | EOS社区在如何使用eosio的资金上存在分歧:据Coindesk消息,EOS区块链上的eosio.saving账户余额不断增加,价值接近1.92亿美元。EOS社区对如何处理这些资金存在分歧。EOS核心工作小组的成员希望看到这些资金被用于造福社会。然而,也有明显的声音,敦促社区关闭WPS,取消其资金来源,“烧掉”或销毁目前在eosio.saving帐户中的所有Token。[2018/8/27]
UTXO合并工具
很多朋友都遇到过UTXO太碎导致交易不成功的现象,Bycoin通过这款工具可以一键解决此类用户的问题。
什么是UTXO
UTXO是UnspentTransactionOutput的缩写,意思是未花费的输出,可以简单理解为还没有用掉的收款。UTXO核心设计思路是:它记录交易事件,而不记录最终状态。要计算某个用户有多少币,就要对其钱包里所有的UTXO求和,得到结果就是他的持币数量。
比原链和比特币一样,也是采用UTXO模型。
为什么需要UTXO合并
动态 | ITAM Network发文 “DApps如何优化RAM使用率”:据IMEOS报道,ITAM Network在Medium上发表文章“DApps如何优化RAM使用率”。文中介绍DApps主要是在上传智能合约还有在使用智能合约Table保存数据的情况下使用RAM,并介绍如何通过在区块上运行数据达到RAM使用率最小化,还有DApps开发者应当考虑和准备的工作。文章最后ITAM Network表示这只是一种可供替代的方法,并不是唯一正确的途径。[2018/8/2]
我们看到UTXO模型中,任何一笔交易的输入都是前一笔交易的输出,然后当你的UTXO数量非常多时,你的交易会有很多的输入,从而整体的交易体积会变大,因为区块的容量有限制,为了防止有人恶意使用大量小的UTXO构建一笔体积非常大交易,从而出现堵塞区块的出现,比原链限制了输入UTXO的个数最大为20个,当你UTXO太多时,可能会出现交易不成功的现象,那么我们需要将UTXO合并工具,通过发送交易给自己,将小额的UTXO合并成大的UTXO。
UTXO合并工具做了什么?
UTXO合并工具首先判断是否有合并的余额,以及是否需要合并
balance,err:=coin.CalcBalance(s.DB.Slave(),account,req.Asset,req.Confirmation)iferr!=nil{returnnil,err}ifbalance.Cmp(big.NewInt(0).SetUint64(totalAmount))<0{returnnil,errors.Wrap(types.ErrInsufficientBalance,fmt.Sprintf("balance%sless%d",balance.String(),totalAmount)。然后会寻找该账户关联的所有的UTXO
在美国众议院听证会乔治城大学法学教授表示:监管的重点应该在于数字代币如何被对待:在美国众议院金融服务委员会《检查加密货币和ICO市场》的听证会上,乔治城大学法学教授Chris Brummer博士表示,ICO将会成为区块链行业的主要融资方式,但监管的重点应该在于数字代币如何被对待,以及系统如何被监管。他还表示,许多ICO欺诈非常明显,需要监管机构介入,更新法律法规,并且提供ICO白皮书指导。[2018/3/14]
utxoFinder:=coin.NewUTXOFinderWithFindStrategy(s.DB.Slave(),ormCoin,account,builder.EstimateGas,builder.FindUTXOs)ifreq.SpendAll{optUTXOs,err=utxoFinder.PrepareAllUTXOs(req.Asset,req.Confirmation,s.Cfg.Coin.DesiredUtxoCount)iferr!=nil{returnnil,errors.Wrap(err,"prepareallutxos"。iflen(optUTXOs)==0{optUTXOs,_,err=utxoFinder.PrepareUTXOs(req.Asset,totalAmount,req.Confirmation,s.Cfg.Coin.DesiredUtxoCount)iferr!=nil{returnnil,errors.Wrap(err,"prepareUTXOs"。if!req.ForbidChainTx&&len(optUTXOs)>s.Cfg.Coin.ChainTxMinUTXONum&&(s.Cfg.Coin.ChainTxMergeGas==0||req.Asset==consensus.BTMAssetID.String()){chainUTXOs:=optUTXOsif!req.SpendAll{chainUTXOs,err=utxoFinder.PrepareChainUTXOs(req.Asset,totalAmount,req.Confirmation,s.Cfg.Coin.DesiredUtxoCount,s.Cfg.Coin.ChainTxMinUTXONum,s.Cfg.Coin.ChainTxMergeGas)iferr!=nil{returnnil,errors.Wrap(err,"preparechainutxos"。最后通过链式交易进行合并。
chainTxs,utxos,err:=builder.BuildChain(s.TxDecoder,chainUTXOs,req.Asset,s.NetParams,s.Cfg.Coin.ChainTxMinUTXONum,s.Cfg.Coin.ChainTxMergeGas)iferr!=nil{returnnil,errors.New("buildtxchain"。for_,chainTx:=rangechainTxs{resp,err:=s.createBuildPaymentResp(account,chainTx.OptUtxos,chainTx.Fee,chainTx.Tx,chainTx.SigningInstructions,"")iferr!=nil{returnnil,err}result=append(result,resp。optUTXOs=utxos}fee:=builder.EstimateGas(len(optUTXOs),account.M(),account.N())resp,err:=s.buildPaymentWithUTXO(req,req.Asset,ormCoin,account,optUTXOs,fee,builder)iferr!=nil{returnnil,errors.Wrap(err,"buildpayment"。returnappend(result,resp),nil}
标签:RESSETSSEASSblockchainresearchandapplicationDix AssetTSSEA价格CLASS币
自2019年10月24日中共中央局就区块链技术发展现状和趋势进行第十八次集体学习之后,国内出台了一系列鼓励区块链技术发展的政策文件,其中金融领域是区块链技术的重点应用领域.
1900/1/1 0:00:00针对2月14-15日比特币市场出现震荡,加密基金BlockTowerCapital管理合伙人兼首席投资官AriPaul表示目前可能正在进入简短的小幅市场修正,但仍处于剧烈牛市之中.
1900/1/1 0:00:00以太坊联合创始人VitalikButerin在研究机构Flashbots的GitHub仓库中提议利用Flashbots作为“账户抽象”的一种实现方式.
1900/1/1 0:00:00MakersPlace宣布将启动抽奖活动BEEPLERAFFLE,将此前因网站崩溃未售出的剩余BEEPLE1美元特价加密艺术NFT以抽奖活动发送给幸运用户.
1900/1/1 0:00:00太阳国际发公告称,董事会宣布,2021年2月18日,ExtraBlossomHoldingsLimited与MindfulnessVentureFundI.
1900/1/1 0:00:00一些推特用户今天报告称,他们在NFT市场NiftyGateway上的账户遭黑客攻击,黑客清除了他们所有的NFT收藏品,甚至使用其注册信用卡购买新藏品.
1900/1/1 0:00:00