細心的用戶可能發現Bycoin錢包在高級設置下面增加了幾個新的功能——錢包余額刷新工具,UTXO合并工具,如下圖:
這些小工具可以一鍵解決用戶使用過程中的一些小問題,那么這些小工具有什么作用呢?
錢包余額刷新工具
錢包余額刷新工具可以強制節點再次更新用戶賬戶的余額信息,解決合約轉賬或者余額未及時同步的問題。
外部賬戶和合約賬戶
我們知道以太坊中有兩類賬戶——外部賬戶和合約賬戶
外部賬戶:該類賬戶被公鑰-私鑰對控制,外部賬戶的地址是由公鑰決定的
合約賬戶:該類賬戶被存儲在賬戶中的代碼控制,合約賬戶的地址是在創建合約時確定的
兩種賬戶都可以實現對以太幣的管理,包括持有以太幣、查詢余額、發送交易等。
交易和內部交易
一般用戶轉賬的時候,都是使用外部賬戶對代幣合約發起調用,調用轉賬的方法,最終發起轉賬的請求到以太坊節點。
那么什么是內部交易,內部交易就是合約之間的調用,通過合約狀態的改變從而達成轉賬的目的
墨西哥官員會見Samson Mow討論墨西哥如何采用Bitcoin:金色財經報道,Bitcoin Magazine在社交媒體上發文表示,墨西哥參議員兼財政部委員會主席會見Samson Mow討論墨西哥如何采用Bitcoin。[2023/4/30 14:35:25]
針對第一種普通轉賬,Bycoin可以很輕易檢測到用戶余額的改變,而內部交易較難檢測到其內部的行為。所以通過錢包余額刷新工具來更新內部交易產生的交易而導致的余額變化。
錢包余額刷新工具做了什么?
錢包余額刷新工具會請求以太坊的節點,來重新查詢用戶的地址,獲取內部交易產生的余額變動,并將查詢結果記錄到數據庫中,從而將用戶余額正確更新.
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。
摩根溪聯合創始人:真正考驗是如何在未來10年持有BTC并保護其安全:摩根溪聯合創始人Jason Williams剛剛發推稱:“如果你現在有了比特幣,你已經完成了簡單的部分。真正的考驗是如何在未來10年持有和保護它的安全。比特幣將重塑我們所知道的一切。我真的不認為我夸大了這句話。”[2020/11/7 11:57:03]
UTXO合并工具
很多朋友都遇到過UTXO太碎導致交易不成功的現象,Bycoin通過這款工具可以一鍵解決此類用戶的問題。
什么是UTXO
UTXO是UnspentTransactionOutput的縮寫,意思是未花費的輸出,可以簡單理解為還沒有用掉的收款。UTXO核心設計思路是:它記錄交易事件,而不記錄最終狀態。要計算某個用戶有多少幣,就要對其錢包里所有的UTXO求和,得到結果就是他的持幣數量。
比原鏈和比特幣一樣,也是采用UTXO模型。
為什么需要UTXO合并
我們看到UTXO模型中,任何一筆交易的輸入都是前一筆交易的輸出,然后當你的UTXO數量非常多時,你的交易會有很多的輸入,從而整體的交易體積會變大,因為區塊的容量有限制,為了防止有人惡意使用大量小的UTXO構建一筆體積非常大交易,從而出現堵塞區塊的出現,比原鏈限制了輸入UTXO的個數最大為20個,當你UTXO太多時,可能會出現交易不成功的現象,那么我們需要將UTXO合并工具,通過發送交易給自己,將小額的UTXO合并成大的UTXO。
聲音 | 迅雷鏈張慧勇:區塊鏈技術如何在實體經濟中應用是亟待解決的問題:5月15日,在世界智能大會2019全球區塊鏈科技創新峰會上,迅雷鏈開放平臺研發負責人張慧勇受邀出席了峰會并發表了“看迅雷鏈如何助力實體經濟”的演講。張慧勇表示,區塊鏈3.0時代亟待解決的問題是讓區塊鏈技術在實體經濟得以運用以發揮其價值。而只有符合實體企業應用需求的區塊鏈,才能真正落地。這就要求區塊鏈企業,從實體企業的現實需求出發,升級自己的技術架構,為實體經濟賦能構建有力基礎。迅雷鏈自2018年上線以來,始終在強化自身技術的同時踏實助力實體商業場景落地,已在版權、溯源、出行、營銷等多個領域有了規模級行業應用。[2019/5/16]
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
動態 | 人民網:區塊鏈與實業結合應注意如何界定算法和物理設備權責體系:今日人民網發文表示,區塊鏈與實業的結合與我國“數字化”的趨勢一致,這一融合過程需要注意三個問題。一是算法和物理設備權責體系如何界定;二是智能制造標準制定思路是否應該轉變;三是5G會給邊緣計算、區塊鏈和物聯網帶來什么沖擊。[2018/8/24]
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"。最后通過鏈式交易進行合并。
新華網分析:區塊鏈如何帶來個人數據保護“革命”:新華網今晚發表文章《區塊鏈如何帶來個人數據保護“革命”》,文章表示大數據時代,個人的數據被認為是黃金般珍貴。個人數據泄漏令人擔憂,但絕大部分人不可能因為害怕數據被收集而切斷與互聯網的聯系,而現階段有責任保管個人信息的企業、學校、酒店、社交網站等往往擔責不力。專家們認為,區塊鏈技術作為一種帶有加密、信任、點對點、難篡改等特征的“中間件”,有望解決這個難題。
區塊鏈技術的出現令個人數據掌控權從互聯網公司轉移到用戶自己手中,使人人掌控自己的個人數據成為可能。通過它,用戶個人數據可以與個人數字身份證相關聯,用戶可以選擇數字身份證是匿名、化名或公開,還可以隨時隨地從任何設備訪問區塊鏈應用平臺,控制他們的互聯網個人數據。[2018/4/18]
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}
2月13日,經過社區提案投票,去中心化API基礎設施PocketNetwork宣布與Web3去中心化API服務API3達成合作,并進行代幣互換,通過此次合作.
1900/1/1 0:00:00當下全球二級市場最火的熱點,不是特斯拉,不是比特幣,無疑是在此前谷歌搜索趨勢幾乎為零的游戲驛站GameStop.
1900/1/1 0:00:00Highway協議是支撐著Casper網絡的共識機制。該報告由CasperLabs與UCSanDiego,CardinalCryptography及EthereumResearch合作完成,報告.
1900/1/1 0:00:00不知道你有沒有在朋友圈刷到過下面這張圖片。 這張圖展現了香蕉在不同場景下的價格,當香蕉成為NFT的時候價格達到1萬美元,比它原來的身價翻了好幾千倍.
1900/1/1 0:00:00昨日比特幣再次探底,最低跌破4.5萬美元關口。在過去兩天中,比特幣已經下跌超過20%。然而,多位分析師認為,此次下跌只是暫時性回調,未來將繼續上漲.
1900/1/1 0:00:00美東時間1月7日,馬斯克個人凈資產升至1950億美元,超越亞馬遜CEO貝索斯成為世界首富。就在剛剛,這位新晉世界首富更新了一則推特動態,成功將加密貨幣世界帶入了一輪新的狂潮——馬斯克在他的個人推.
1900/1/1 0:00:00