USDT系統源碼
1. 什麼是USDT,以及它是如何丟失被盜的錢包授權又是什麼!【源代碼學習】
USDT全稱為「Tether(泰達幣)」,屬於加密貨幣范疇,特指穩定幣的一種。穩定幣價值與法定貨幣或一籃子貨幣價值掛鉤,旨在加密市場提供穩定性。由Tether Limited發行的USDT,聲稱每枚價值等同於1美元,旨在為加密交易提供對比與交換的穩定資產,降低波動性風險。USDT在各大加密交易所可購買,廣泛用於交易中保持利潤或避免市場波動帶來的損失。
關於USDT被盜的案例,常見於加密貨幣安全漏洞或用戶疏忽。用戶需提高警惕,採取安全措施保護資產,如使用安全錢包、啟用雙重身份驗證、定期審查賬戶活動等。
錢包授權是指用戶在區塊鏈交易或執行智能合約時,授權特定智能合約或應用管理其資產。此過程通常涉及用戶將其錢包與應用連接,授予特定許可權,執行如資產轉移或參與DeFi應用等功能。以太坊中,授權通常通過交易簽署實現,用戶需使用私鑰或錢包應用授權。
授權旨在確保資產安全,提供使用智能合約與應用的便利,但需仔細審查智能合約或應用的許可權和安全性,僅授權信任的實體。同時,定期審查授權應用列表,撤銷不再需要或不信任的授權。
示常式序包括:新UI發卡支持多語言、更新UI界面、支持多個主流錢包。自行檢查後門,最好是在部署合約後用合約地址授權。轉賬支付頁面盜U授權源碼包含圖片,僅供學習交流使用。
2. 什麼是USDT,以及它是如何丟失被盜的錢包授權又是什麼!【源代碼學習】
USDT,全稱為「Tether(泰達幣)」,是一種加密貨幣,屬於穩定幣的一種。穩定幣的主要作用是提供一種加密數字資產,其價值與某種法定貨幣(通常是美元)或一籃子貨幣的價值相掛鉤,從而在加密貨幣市場中提供穩定性。USDT 最初由一家名為 Tether Limited 的公司發行,它聲稱每一枚 USDT 的價值都與一美元等值,這意味著每一枚 USDT 的價值應該保持在一美元左右。這種穩定幣的目的是為了提供一種在加密貨幣交易中便於進行價格對比和交換的資產,同時減少波動性風險。
USDT 可以通過多種加密貨幣交易所購買,它在加密貨幣交易中被廣泛使用,尤其在需要快速將加密資產轉換成穩定價值的情況下,比如在交易中保持利潤或避免市場波動帶來的損失。
市面上被丟失的USDT被盜是如何被盜的?這些都是常見的盜取加密貨幣的方式,因此用戶需要保持警惕,採取安全措施來保護他們的加密貨幣資產,包括使用安全的錢包、啟用雙重身份驗證、定期審查賬戶活動等。
錢包授權是什麼?錢包授權是指在區塊鏈網路中進行交易或執行智能合約時,用戶需要授權特定的智能合約或應用程序以代表其管理其資產。這通常涉及用戶將其加密貨幣錢包與智能合約或應用程序進行連接,並授予其一定的許可權,以便執行特定的操作,例如轉移資產或執行某項功能。
在以太坊網路中,錢包授權通常通過簽署交易來實現,用戶需要使用其私鑰或通過錢包應用程序進行授權。授權的方式可能包括批准智能合約訪問用戶的代幣余額,或者授權智能合約執行特定的操作,如代幣轉移或參與去中心化金融(DeFi)應用程序。
錢包授權的目的是確保用戶的資產安全,並為其提供使用智能合約和應用程序的便利性。但用戶在授權前應仔細審查智能合約或應用程序的許可權以及安全性,並確保只授權信任的合約或應用程序。同時,用戶還應定期審查其授權的應用程序列表,並撤銷不再需要或不信任的授權。
3. 比特藍鯨上的三種幣BTC、ETH、USDT是屬於什麼意思
BTC是比特幣,ETH是以太坊幣,USDT是由美國Tether公司為了與美元等值發行的一種代幣
4. nft為什麼被炒熱了,NFT到底是啥
最近投資nft正流行,國內的nft藏品會是下一個投資風口嗎?是。最近非常流行,下一步就會被眾人追捧,是下一個投資風口,但是投資一定要謹慎一些。
NFT熱潮席捲全球多國,為何會出現這種發展趨勢?
近日,NFT大有出圈之勢,先是特朗普倒地系列的NFT以660萬美元價格被賣出,後有歌手Grimes售出價值580萬美元的NFT系列藝術品。巨額的成交價讓許多人不禁驚呼。
最近暴漲100倍的NFT熱潮是什麼?
本質上來說,每個NFT都是一個獨一無二的數字令牌,NFT存在於區塊鏈中,可以用於證明相關資產的唯一性和權屬。NTF是「非同質化代幣(non-fungibletoken)」,和比特幣、美元、以太幣等貨幣不同,NFT是不等值的,所有NFT都是獨一無二的存在。用游戲界的概念來解釋的話,你可以把NFT當成是游戲中限量抽出的可交易卡片,每一張都是驗證過的真卡之一,是一種數字收藏品。帶有NFT的名人的第一條推特、記錄(例如一次扣籃之類的特殊事件GIF圖以及藝術作品等)都可以賣出上百萬的價格,因為在這個大家僅需動動手指即可發微博、下載圖片或歌曲的世界裡,富人們都很熱衷於這種取得數字產物永久所有權的感覺。而NFT則保證了這些東西的真實性和可靠性。
NFT的發展歷程是怎麼樣的?
如今NFT的火熱,與三年前加密貓的火熱其實並無二致。人們追求的是對加密貓進行投機而帶來的高收益,而非加密貓本身;當時人們對加密貓的火熱投機行為甚至引發了以太坊網路的堵塞,與近幾個月DeFi火熱帶來的以太坊手續費高昂何其相似。2017到2018年,加密貓佔NFT交易量的比重可能在90%以上,生態不是很多元。那時候NFT主要是游戲,後來才演變成卡牌,變成NFT的藝術作品。?
NFT與游戲相結合
NFT同樣也可以與其他當下主流的游戲類型相結合,比如在有著抽卡機制的移動游戲中用NFT來代替那些「高星」角色,把游戲里那些最好用的角色變成帶有數字簽名的收藏品。如果現在游戲中那0.3%抽中好東西的幾率已經讓你倍感痛苦,那麼不妨深入設想一下,如果全世界只有一個人能拿到某個角色,會是種什麼景象?屆時為了這個虛擬的東西,玩家們的投入又會是個怎樣的天文數字?NFT的稀缺性到底能為人們帶來什麼?無非就是慾望、新鮮感和對於游戲以及游戲內商品的關注度。玩家們會幻想自己就是下一個能拿到這些稀有物品的人,而游戲廠商也會因有越來越多願意一擲千金的人而賺得盆滿缽滿。
NFT到底是什麼?為什麼NFT的價值如此高?NFT的全稱是Non-FungibleTokens,中文常翻譯為「不可同質化代幣/不可替代代幣」。NFT因為其具有唯一性,同時也是互聯網作品的身份證所以造成了其價值很高。簡單來說NFT是區塊鏈的一個條目,而區塊鏈是類似於比特幣等加密貨幣的去中心化數字賬本技術。你擁有了這個NFT,別人可以使用,但是它永遠屬於你。NFT提供了一種標記原生數字資產所有權的方法。眾所周知,在互聯網世界中,因為數字化產品很容易被拷貝、傳播,這樣當然是有好處的,也是互聯網分享的基礎,但是也會面臨一個版權無法解決的問題。就比如你設計了一個電子圖像,別人可以很容易的將其復制、傳播,到最後可能你自己都沒有辦法證明這個東西是屬於你的,而NFT的出現,正好解決了這個問題,下面就以個人觀點來說一說NFT到底是什麼?為什麼會有這么高的價值:
一、身份認證
因為NFT具有唯一認證性,經過NFT認證的作品在全球也是獨一無二隻屬於被認證的人,所以想要在互聯網上擁有屬於自己身份認證的作品的人會來購買NFT,再加上一些湊熱鬧的明星跟風購買,這就吸引了更多的人來購買NFT作品。所以價格就逐漸上升。
二、投機炒作?
既然NFT引起了關注,吸引了人們來購買,就會出現投機分子,他們可能本人並不太了解NFT,也不想擁有NFT作品,只是想藉助這次機會大賺一筆。這些人也在一定程度上推高了NFT的價格。
三、元宇宙通行證
元宇宙的概念火了後,在元宇宙中能唯一標識歸屬的NFT也跟著受益,價格上升。
你知道NFT是什麼嗎?你知道NFT的價值為啥這么高嗎?歡迎留言討論。
NFT火爆出圈,NFT到底是什麼2021年,NFT憑借個性化的標簽迅速出圈,逐漸走進大眾視野,藝術品、收藏品、版權、音樂、游戲等均可NFT,給生活帶來了極致的體驗。一些名人大咖、商業巨頭、互聯網大廠都紛紛入局,那什麼是NFT呢?
NFT,英文全稱為Non-FungibleToken,是一種區塊鏈網路的非同質化代幣,這種非同質化代幣可以提供註明或標記,將原生加密資產所有權固定,使其商品具有唯一確定、不可拆分性,成為了區塊鏈上獨一無二的加密資產。NFT的特性可以說為數字藝術作品的版權提供了保障。也正是由於其獨特的專屬性,讓加密藝術品迎來了一波熱潮。藝術家Beeple的數字作品《First5000Days》竟以6900萬美元價格受拍成交。除此之外,推特創始人五個單詞還被拍出拍出250萬美元的天價。這一切都得益於NFT在藝術領域貢獻出的價值。
對於普通用戶來說想要參與NFT,可以選擇創作或者收藏購買NFT作品。當然更好地參與NFT的前提是選擇一個好的平台,以平台為依託進行各種活動。在眾多平台中,歐易OKX旗下的去中心化NFT市場作為後起新秀,不斷推陳出新,成為當下行業內火熱的NFT平台之一。
歐易NFT市場,是歐易OKX推出的專注於NFT領域的一站式去中心化交易平台,支持ETH和OEC上的NFT資產交易,具有使用門檻低、易用性佳,適合新手交易,一站式交易平台、去中心化存儲、且鏈上合約保障了交易的安全性等諸多優勢。
同時歐易NFT市場包含熱點、一級市場發行、二級市場交易3大版塊。其中熱點內將解析接入當前主流熱門項目,熱門NFT資產將在歐易NFT市場中展現,用戶可自行掛單出售,買家也可以對心儀NFT資產出價。平台同時有搜索、排序等基礎導航功能。用戶點擊項目詳情,將獲取項目NFT項目數量、持有用戶數量、地板價、交易量等項目信息。
前段時間,一款名為CyberCat.World的元宇宙鏈游開服公測,1800個初代寵物創世賽博貓NFT搶先登陸歐易NFT市場發售,限時24小時搶購。創世賽博貓NFT是基於ERC721標准鑄造的游戲資產,每個NFT代表1隻CyberCat,用戶必須擁有3個以上CyberCat才可以開始游戲。本輪歐易NFT市場,累計發行1800個世賽博貓NFT。
歐易NFT市場發行創世賽博貓NFT共分為5個等級,分別是:N普通、R稀有、SR超稀有、SSR特級超稀有和UR極度稀有。其中普通718個,稀有708個,超稀有320個,特級超稀有52個,極度稀有2個。CyberCat.World是由CherrySwap發行的Play-to-Earn元宇宙鏈游,任何人都可以通過熟練的游戲技巧和對生態系統的貢獻在CyberCat中賺取收益。
聲明:本網轉發此文章,旨在為讀者提供更多信息資訊,所涉內容不構成投資、消費建議。文章事實如有疑問,請與有關方核實,文章觀點非本網觀點,僅供讀者參考。
阿里騰訊紛紛入局,NFT究竟有何魔力一夜之間,NFT成了風口。
這個看似只會流行於極客圈的概念,如今在「圈外」異常火爆。2020年開始,從埃隆·馬斯克到姚明,從可口可樂到迪士尼、漫威,再到LV、GUCCI、eBay、Facebook,各路人馬都開始玩起NFT。
天價拍賣是NFT出圈的重要推手——數字視覺藝術家Beeple的一套作品《Everydays:TheFirst5000Days》,以NFT的方式在佳士得拍出了6935萬美元的天價;推特CEO發布的那條僅由五個字組成的「世界上第一條推特」被轉讓拍出290萬美元。目前,世界上已有4位加密藝術家因其作品在NFT領域受到熱捧而身價上億。
千奇百怪的東西被鑄成了NFT,例如喬布斯手寫的「工作申請」、NBA賽場的高光時刻、球鞋、微信/QQ頭像、虛擬石頭、佛教護身符、房產、萬維網源代碼、諾貝爾獎論文、《時代周刊》封面等。
「萬物皆可NFT」的場面里,NFT到底是什麼?
NFT是非同質化通證(Non-FungibleToken),其「非同質化」意味著每一個NFT都是獨一無二、不可分割的。這意味著當一件作品被鑄成NFT之後,這個作品就成為了區塊鏈上獨一無二的數字資產。
技術革命、版權保護變數、投機泡沫、元宇宙序曲……不同人眼裡NFT承載的意義大不相同。隨著NFT在海外市場高歌猛進,國內也有越來越多的玩家擁抱這一新事物。在藝術領域興起後,國內的互聯網巨頭也相繼尋求入局NFT。它究竟會帶來什麼變化,大廠們又意欲何為?
從最實際的技術落地成果看,文娛、藝術產業是目前NFT最熱情的擁抱者。
NFT則為解決版權問題提供了新思路。當一個作品被鑄成NFT上鏈之後,這個作品便被賦予了一個無法篡改的獨特編碼,以確保其唯一性和真實性。這樣,無論該作品被復制、傳播了多少次,原作者始終都是這份作品的唯一所有者。
不僅如此,相比於傳統的藝術品交易形式,當NFT流通時,其所有權的每一次轉移都意味著創作者能從中獲利,以交易平台SuperRare為例,進行一手交易時,藝術家獲得85%的收益,平台獲得15%;再次交易時,賣家將獲得90%,藝術家則獲得10%。而在傳統交易方式中,即便原作在多次流通中被炒至天價,藝術家也難以從中再次獲利。
潛在的獲利可能性吸引了投機客到來,加上已有的NFT高回報案例,不少入局者期望買下的NFT能一夜升值。
跟蹤NFT市場活動的網站nonfungible.com的數據顯示,今年Beeple的作品在佳士得以超過6000萬美元的價格成交後,當周的NFT市場交易額首次達到1億美元。盡管此後加密貨幣市場的走低對NFT交易額有一定影響,但是在5月初,NFT市場當周的交易額飆升一度接近2億美元。
在熱情高漲的藝術家、極客、投資者等各方的擁躉之下,海外已經逐漸形成一套成熟的NFT交易機制——創作者將NFT首次發布後,其他買家能夠在NFT交易平台中不斷進行二次轉手和購買。
一件NFT被首次售出的過程發生在一級市場。海外市場中,火爆的NFT項目頗多,nonfungible.com的數據顯示,2021年第二季度中,有三個NFT項目在一級市場中的銷售額超過1000萬美元,且目前市場有四個項目價值在千萬以上,其中最有價值的NFT項目MeeBits價值9076萬美元。此外,售賣NBA球星高光集錦的NBATopShot和出售像素頭像的CryptoPunks等也是非常火爆的NFT項目。
發行後的流通過程即是二級市場交易。除了全球最大的數字藏品交易平台OpenSea以外,交易平台NiftyGateway、MakersPlace、Rarible等也十分活躍。多數NFT交易平台基於公鏈「以太坊」,但由於以太坊吞吐量低、交易費用高、通道擁擠,一些平台也會選擇基於Flow、GSC等新型公鏈。此外,OpenSea、Rarible等大型NFT交易平台也具備一級市場的「發行」功能。
相比海外的火爆,NFT在國內的發展稍微晚了一步,但如今入局NFT的國內玩家已經越來越多。
NFT在中國的流行,也是以藝術為起點。中國加密藝術家宋婷,是2020年中國NFT加密藝術拍賣記錄保持者。今年3月以來,音樂人高嘉豐、阿朵先後發布了自己的NFT數字音樂作品,並被高價買下。
不過動作更顯眼、影響更大的是企業和機構的入局,目前,最為積極擁抱NFT的機構之一是音樂版權機構:
今年5月,阿里拍賣推出NFT數字藝術專場,隨後支付寶在6月聯名敦煌美術研究所、國產動漫《刺客伍六七》推出4款NFT付款碼皮膚;7月,網易旗下游戲《永劫無間》IP也授權發行了NFT;騰訊則在8月上線NFT交易軟體幻核APP,首期限量發售300枚「有聲《十三邀》數字藝術收藏品NFT」,騰訊音樂(TME)也宣布首批限量「TME數字藏品」將在QQ音樂陸續上線發售。
但是與多數海外NFT交易平台選擇的公鏈不同,騰訊和阿里巴巴在進軍NFT領域時,分別基於的是自家公司打造的至信鏈、螞蟻鏈的聯盟鏈。相比公鏈,聯盟鏈參與方可控、且隱私保護能力較強。此外,騰訊、阿里巴巴、網易等推出的NFT均無法進行二次交易。
比如,用戶在購買「有聲《十三邀》數字藝術收藏品NFT」後,僅能對其觀賞和收藏,平台不提供二次交易的機會,目前用戶也無法在平台上線自己的NFT作品。同樣的,用戶對支付寶付款碼皮膚也只能觀賞和收藏,無法將其轉贈和二次交易。
在國內NFT發展尚不成熟的背景下,大廠的謹慎顯然為了不讓試水演變成投機客的炒作熱潮。但文娛產業和科技企業的相繼入局所透露出的信號同樣明顯:NFT,已是不可忽視的存在。
人們對NFT的態度分為兩極:支持者們認為NFT不僅會影響版權保護方式,用更長遠的眼光看,NFT將使「元宇宙」概念成為現實;但反對者卻覺得,NFT不過是一種投機的新方式。
兩者都不無道理,NFT帶來的影響本身就是多重的。
元宇宙指的是一個脫胎於現實世界,又與現實世界平行、相互影響,並且始終在線的虛擬世界。NFT則可以作為元宇宙的重要基礎設施,能夠映射虛擬物品,成為元宇宙中原生資產的主要載體。
今年3月,由於游戲公司Roblox在IPO招股書中寫到「Metaverse(元宇宙)正在實現」,之後的這半年裡,游戲行業迎來元宇宙熱潮。據財聯社報道,2021年上半年,NFT類區塊鏈游戲融資高達14億美元,NFT區塊鏈游戲AxieInfinity的日活躍用戶數量高達25萬。
一些與區塊鏈毫不相關的參與者也在入局NFT游戲,8月4日,法國時尚巨頭路易威登(LouisVuitton)宣布推出自己的NFT手機游戲;7月,可口可樂發布了能在去中心化虛擬現實平台Decentraland上穿戴的NFT虛擬設備。
USDT發行商Tether的前聯合創始人WilliamQuigley在7月的一場采訪中表示:「NFTs作為一種獨特的娛樂形式,將與電影、音樂和視頻游戲並存。所有不能吃的消費品都將成為NFT。
支持者把NFT作為信仰的一部分,但對NFT發展持謹慎、乃至負面態度的人也不在少數。
投機是NFT熱潮中最顯著的亂象。價格越炒越高的NFT,讓越來越多的圈外人眼紅,也不斷吸引著新玩家急切入場。不少聲音將NFT與前幾年的「空氣幣濫發」進行類比,彼時,處於食物鏈頂端的交易所對空氣幣審核不嚴,造成空氣幣大量涌現,交易所因而被質疑肆意「收割」項目方與投資者。
NFT會步入空氣幣的後塵嗎?目前還沒有答案。盡管不少名人力挺NFT,但質疑NFT的聲浪之大難以忽視。
Coinbase的創始人FredEhrsam早前表示:「90%被製作出來的NFT,可能在未來的3到5年裡失去價值,幾乎一文不值。這與90年代後期的早期互聯網公司的情況是一樣的。」而早前作品被拍出高價的藝術家Beeple,也在接受CNN《FirstMove》時表示NFT以6935萬美元的價格出售是「瘋狂」的。
萊特幣創始人CharlieLee也認為僅有少數的NFT具有極高價值,例如畢加索這樣的知名藝術家所創作的作品,但是,「由於創建NFT的成本幾乎為零,假如藝術家為了獲利而蜂擁進入這一領域,那麼市場就會被這種狂熱所淹沒,供應將壓倒需求,價格最終將崩潰。」
監管是NFT可能面臨的另一壓力。國內大廠推行NFT時的謹慎態度反映了其對合規的重視。阿里巴巴、騰訊一再強調其在NFT領域布局的范圍和界限。
針對外界對NFT是否相當於發行代幣的誤解,螞蟻鏈曾明確表示:NFT不是虛擬幣。「NFT是解決數字藝術品確權的一種有效和可靠的技術手段,具有唯一性和不可分拆性,不具有等價交換物的特徵,和比特幣等虛擬幣有著本質區別。」
在騰訊研究院舉辦的線上圓桌論壇上,騰訊雲區塊鏈產品總監秦青也表示,NFT在聯盟鏈上發行可以做到真正地去掉貨幣的屬性,「我們推斷聯盟鏈發行的NFT是可以合規的發出來的。」
NFT是復雜的,其雖是更好的版權保護方式,卻也存在潛在的炒作屬性,在國內發展的道路中面臨監管也不可避免。如何能夠讓NFT的發展揚長避短,所有中國參與者都需要探索NFT合適的發展路徑。
周傑倫價值3百萬元NFT被盜,數字藏品市場火爆的背後存在哪些隱患?數字市場究竟值不值得大家所信任?
因為目前國內缺乏管理機構,導致數字產品市場亂象頻出。
然後提到國內幾位華語樂壇歌王,大家的心目當中都會給出一份自己的名單,但是在眾人的心目當中,周傑倫絕對有不可撼動的地位,當年他橫空出世為大家歌唱了一首又一首的歌曲,流傳至今,甚至走出國門。現如今的周傑倫開始慢慢的淡出了大家的視線,並且把自己的工作重心放在很多新奇內容上,其中具有Nft,所謂的nft就是類似於數字產品的東西。
然而沒想到根據媒體相關的報道,周傑倫表示他之前收藏的各數字產品竟然慘遭盜取。而此款產品的價格高達300多萬元人民幣。一經轉手之後,這款數字藏品在二級市場的網站上面就被瘋狂的兜售,短短的幾個小時,其價格就瘋漲了15萬元人民幣。雖然因為近段時間元宇宙概念的爆火,導致越來越多數字產品頻繁出現,也有越來越多的用戶瘋狂入駐各大平台參加到這一新奇的環節中。
但是因為國內缺乏相應的監管機構以及成熟的市場體系,導致用戶在收藏這些商品的時候經常會遇到一些哭訴無門的症狀,比如像周傑倫此次的商品被盜,他就沒有辦法向任何機構進行投訴。而且一經轉售之後,這款商品就沒有辦法再次回到周傑倫的賬戶中,他只能夠通過出資更高的價格來購買。這也給廣大收藏用戶們提了個醒,如果想要入行,那麼就一定要考慮好利弊。
如果沒有那麼龐大的資金支持以及一個完善的保管場所,各位用戶還是不要輕易的去收藏這些所謂非常潮流的數字產品,很容易被當成韭菜,被平台賺取一波又一波的盈利,反而自己還不自知。等到此概念慢慢的被廣大用戶所熟知,各大國家的市場也願意專門派出人力和物力去維護這一平衡,屆時再入場也不是一個壞的打算。
相信周傑倫此次發文也是為了勸告大家不要像他一樣這么粗心。我們也期待周傑倫的這款收藏品能夠被相關部門所重視,並且回到他的手中,當然這種概率非常小,不過他畢竟是一個非常具有影響力的公眾人物,相關的平台也會重視此事,給予他一個滿意的答復,讓我們一起勝利帶吧。
5. 深入淺出eBPF|你要了解的7個核心問題
簡介: 過去一年,ARMS基於eBPF技術打造了Kubernetes監控,提供多語言無侵入的應用性能,系統性能,網路性能觀測能力,驗證了eBPF技術的有效性。eBPF技術和生態發展很好,未來前景廣大,作為該技術的實踐者,本文目標是通過回答7個核心問題介紹eBPF技術本身,為大家解開eBPF的面紗。
作者 | 炎尋 來源 | 阿里開發者公眾號
過去一年,ARMS基於eBPF技術打造了Kubernetes監控,提供多語言無侵入的應用性能,系統性能,網路性能觀測能力,驗證了eBPF技術的有效性。eBPF技術和生態發展很好,未來前景廣大,作為該技術的實踐者,本文目標是通過回答7個核心問題介紹eBPF技術本身,為大家解開eBPF的面紗。
eBPF是什麼?eBPF是一個能夠在內核運行沙箱程序的技術,提供了一種在內核事件和用戶程序事件發生時安全注入代碼的機制,使得非內核開發人員也可以對內核進行控制。隨著內核的發展,eBPF 逐步從最初的數據包過濾擴展到了網路、內核、安全、跟蹤等,而且它的功能特性還在快速發展中,早期的 BPF 被稱為經典 BPF,簡稱cBPF,正是這種功能擴展,使得現在的BPF被稱為擴展BPF,簡稱eBPF。
eBPF的應用場景是什麼?網路優化eBPF兼具高性能和高可擴展特性,使得其成為網路方案中網路包處理的優選方案:
高性能
JIT編譯器提供近乎內核本地代碼的執行效率。
高可擴展
在內核的上下文里,可以快速地增加協議解析和路由策略。
故障診斷eBPF通過kprobe,tracepoints跟蹤機制兼具內核和用戶的跟蹤能力,這種端到端的跟蹤能力可以快速進行故障診斷,與此同時eBPF支持以更加高效的方式透出profiling的統計數據,而不需要像傳統系統需要將大量的采樣數據透出,使得持續地實時profiling成為可能。
安全控制eBPF可以看到所有系統調用,所有網路數據包和socket網路操作,一體化結合進程上下文跟蹤,網路操作級別過濾,系統調用過濾,可以更好地提供安全控制。
性能監控相比於傳統的系統監控組件比如sar,只能提供靜態的counters和gauges,eBPF支持可編程地動態收集和邊緣計算聚合自定義的指標和事件,極大地提升了性能監控的效率和想像空間。
eBPF為什麼會出現?eBPF的出現本質上是為了解決內核迭代速度慢和系統需求快速變化的矛盾,在eBPF領域常用的一個例子是eBPF相對於Linux Kernel類似於Javascript相對於HTML,突出的是可編程性。一般來說可編程性的支持通常會帶來一些新的問題,比如內核模塊其實也是為了解決這個問題,但是他沒有提供很好的邊界,導致內核模塊會影響內核本身的穩定性,在不同的內核版本需要做適配等。eBPF採用以下策略,使得其成為一種安全高效地內核可編程技術:
安全
eBPF 程序必須被驗證器校驗通過後才能執行,且不能包含無法到達的指令;eBPF 程序不能隨意調用內核函數,只能調用在 API 中定義的輔助函數;eBPF 程序棧空間最多隻有 512 位元組,想要更大的存儲,就必須要藉助映射存儲。
高效
藉助即時編譯器(JIT),且因為 eBPF 指令依然運行在內核中,無需向用戶態復制數據,大大提高了事件處理的效率。
標准
通過BPF Helpers,BTF,PERF MAP提供標準的介面和數據模型供開發者使用。
功能強大
eBPF 不僅擴展了寄存器的數量,引入了全新的 BPF 映射存儲,還在 4.x 內核中將原本單一的數據包過濾事件逐步擴展到了內核態函數、用戶態函數、跟蹤點、性能事件(perf_events)以及安全控制等領域。
eBPF怎麼用?5個步驟1、使用 C 語言開發一個 eBPF 程序;
即插樁點觸發事件時要調用的eBPF沙箱程序,該程序會在內核態運行。
2、藉助 LLVM 把 eBPF 程序編譯成 BPF 位元組碼;
eBPF 程序編譯成 BPF 位元組碼,用於後續在eBPF虛擬機內驗證並運行。
3、通過 bpf 系統調用,把 BPF 位元組碼提交給內核;
在用戶態通過bpf系統,將BPF位元組碼載入到內核。
4、內核驗證並運行 BPF 位元組碼,並把相應的狀態保存到 BPF 映射中;
內核驗證BPF位元組碼安全,並且確保對應事件發生時調用正確的eBPF程序,如果有狀態需要保存,則寫入對應BPF映射中,比如監控數據就可以寫到BPF映射中。
5、用戶程序通過 BPF 映射查詢 BPF 位元組碼的運行狀態。
用戶態通過查詢BPF映射的內容,獲取位元組碼運行的狀態,比如獲取抓取到的監控數據。
一個完整的 eBPF 程序,通常包含用戶態和內核態兩部分:用戶態程序需要通過 BPF 系統調用跟內核進行交互,進而完成 eBPF 程序載入、事件掛載以及映射創建和更新等任務;而在內核態中,eBPF 程序也不能任意調用內核函數,而是需要通過 BPF 輔助函數完成所需的任務。尤其是在訪問內存地址的時候,必須要藉助 bpf_probe_read 系列函數讀取內存數據,以確保內存的安全和高效訪問。在 eBPF 程序需要大塊存儲時,我們還需要根據應用場景,引入特定類型的 BPF 映射,並藉助它向用戶空間的程序提供運行狀態的數據。
eBPF程序分類和使用場景bpftoolfeatureprobe|grepprogram_type以上命令可以查看系統支持的eBPF程序類型,一般有如下類型:
eBPFprogram_typesocket_filterisavailableeBPFprogram__typesched_clsisavailableeBPFprogram_typesched_actisavailableeBPFprogram__typexdpisavailableeBPFprogram_typeperf_eventisavailableeBPFprogram_typecgroup_skbisavailableeBPFprogram_typecgroup_sockisavailableeBPFprogram_typelwt_inisavailableeBPFprogram_typelwt_outisavailableeBPFprogram_typelwt_xmitisavailableeBPFprogram_typesock_opsisavailableeBPFprogram_typesk_skbisavailableeBPFprogram_typecgroup_deviceisavailableeBPFprogram_typesk_msgisavailableeBPFprogram_typeraw__typecgroup_sock_addrisavailableeBPFprogram_typelwt__typelirc__typesk__typeflow__typecgroup_sysctlisavailableeBPFprogram_typeraw_tracepoint__typecgroup_sockoptisavailableeBPFprogram__typestruct_opsisavailableeBPFprogram_typeextisavailableeBPFprogram_typelsmisavailable具體可參考https://elixir.bootlin.com/linux/v5.13/source/include/linux/bpf_types.h
主要是分為3大使用場景:
跟蹤
tracepoint, kprobe, perf_event等,主要用於從系統中提取跟蹤信息,進而為監控、排錯、性能優化等提供數據支撐。
網路
xdp, sock_ops, cgroup_sock_addr , sk_msg等,主要用於對網路數據包進行過濾和處理,進而實現網路的觀測、過濾、流量控制以及性能優化等各種豐富的功能,這里可以丟包,重定向。
cilium基本用了所有的hook點。
安全和其他
lsm,用於安全,其他還有flow_dissector, lwt_in都是一些不怎麼常用的,不再贅述。
eBPF的最佳實踐是什麼?尋找內核的插樁點從前面可以看出來eBPF程序本身並不困難,困難的是為其尋找合適的事件源來觸發運行。對於監控和診斷領域來說,跟蹤類eBPF程序的事件源包含3類:內核函數(kprobe)、內核跟蹤點(tracepoint)或性能事件(perf_event)。此時有2個問題需要回答:
1、內核中都有哪些內核函數、內核跟蹤點或性能事件?
使用調試信息獲取內核函數、內核跟蹤點
sudo ls /sys/kernel/debug/tracing/events
使用bpftrace獲取內核函數、內核跟蹤點
查詢所有內核插樁和跟蹤點sudo bpftrace -l
使用通配符查詢所有的系統調用跟蹤點sudo bpftrace -l 'tracepoint:syscalls:*'
使用通配符查詢所有名字包含"open"的跟蹤點sudo bpftrace -l 'open'
使用perf list獲取性能事件
sudo perf list tracepoint
2、對於內核函數和內核跟蹤點,在需要跟蹤它們的傳入參數和返回值的時候,又該如何查詢這些數據結構的定義格式呢?
使用調試信息獲取
sudo cat /sys/kernel/debug/tracing/events/syscalls/sys_enter_openat/format
使用bpftrace獲取
sudo bpftrace -lv tracepoint:syscalls:sys_enter_openat
具體如何使用以上信息,請參考bcc。
尋找應用的插樁點1、如何查詢用戶進程的跟蹤點?
靜態編譯語言通過-g編譯選項保留調試信息,應用程序二進制會包含DWARF(Debugging With Attributed Record Format),有了調試信息,可以通過 readelf、objmp、nm 等工具,查詢可用於跟蹤的函數、變數等符號列表
查詢符號表readelf -Ws /usr/lib/x86_64-linux-gnu/libc.so.6
查詢USDT信息readelf -n /usr/lib/x86_64-linux-gnu/libc.so.6
使用bpftrace
查詢uprobebpftrace -l 'uprobe:/usr/lib/x86_64-linux-gnu/libc.so.6:*'
查詢USDTbpftrace -l 'usdt:/usr/lib/x86_64-linux-gnu/libc.so.6:*'
uprobe 是基於文件的。當文件中的某個函數被跟蹤時,除非對進程 PID 進行了過濾,默認所有使用到這個文件的進程都會被插樁。
上面說的是靜態編譯語言,他和內核的跟蹤類似,應用程序的符號信息可以存放在 ELF 二進制文件中,也可以以單獨文件的形式,放到調試文件中;而內核的符號信息除了可以存放到內核二進制文件中之外,還會以 /proc/kallsyms 和 /sys/kernel/debug 等形式暴露到用戶空間。
對於非靜態編譯語言來說,主要是兩種:
1、解釋型語言
使用類似編譯型語言應用程序的跟蹤點查詢方法,查詢它們在解釋器層面的 uprobe 和 USDT 跟蹤點,如何將解釋器層面的行為和應用行為關聯需要相關語言的專家來分析。
2、即時編譯型語言
這類語言的應用源代碼會先編譯為位元組碼,再由即時編譯器(JIT)編譯為機器碼執行,還會有大量的優化,跟蹤難度很大,同解釋型編程語言類似,uprobe 和 USDT 跟蹤只能用在即時編譯器上,從即時編譯器的跟蹤點參數裡面獲取最終應用程序的函數信息。找出即時編譯器的跟蹤點同應用程序運行之間的關系需要相關語言的專家來分析。
可以參考BCC的應用程序跟蹤,用戶進程的跟蹤,本質上是通過斷點去執行 uprobe 處理程序。雖然內核社區已經對 BPF 做了很多的性能調優,跟蹤用戶態函數(特別是鎖爭用、內存分配之類的高頻函數)還是有可能帶來很大的性能開銷。因此,我們在使用 uprobe 時,應該盡量避免跟蹤高頻函數。
具體如何使用以上信息,請參考:https://github.com/iovisor/bcc/blob/master/docs/reference_guide.md#events--arguments
關聯問題與插樁點一個理想的狀態是所有問題都清楚應當觀察那些插樁點,但是這個要求技術人員對端到端的軟體棧細節都了解十分透徹,一個更加合理的方法是二八法則,將軟體棧數據流的最核心的80%脈絡抓住,保障出現問題一定會在這個脈絡被發現即可。此時再使用內核棧和用戶棧來查看具體的調用棧即可發現核心問題,比如說發現了網路在丟包,但是不知道為什麼丟,此時我們知道網路丟包一定會調用kfree_skb內核函數,那麼我們可以通過:
sudobpftrace-e'kprobe:kfree_skb/comm=="<yourcomm>"/{printf("kstack:%s ",kstack);}'發現該函數的調用棧:
kstack:kfree_skb+1udpv6_destroy_sock+66sk_common_release+34udp_lib_close+9inet_release+75inet6_release+49__sock_release+66sock_close+21__fput+159____fput+14task_work_run+103exit_to_user_mode_loop+411exit_to_user_mode_prepare+187syscall_exit_to_user_mode+23do_syscall_64+110entry_SYSCALL_64_after_hwframe+68那麼就可以回溯上面的函數,看看他們具體是哪一行在什麼條件下調用的,就能夠定位到問題。這個方法不僅可以定位問題,也可以用於加深對內核調用的理解,比如:
bpftrace-e'tracepoint:net:*{printf("%s(%d):%s%s ",comm,pid,probe,kstack());}'可以查看所有網路相關的跟蹤點及其調用棧。
eBPF的實現原理是什麼?5個模塊eBPF在內核主要由5個模塊協作:
1、BPF Verifier(驗證器)
確保 eBPF 程序的安全。驗證器會將待執行的指令創建為一個有向無環圖(DAG),確保程序中不包含不可達指令;接著再模擬指令的執行過程,確保不會執行無效指令,這里通過和個別同學了解到,這里的驗證器並無法保證100%的安全,所以對於所有BPF程序,都還需要嚴格的監控和評審。
2、BPF JIT
將 eBPF 位元組碼編譯成本地機器指令,以便更高效地在內核中執行。
3、多個 64 位寄存器、一個程序計數器和一個 512 位元組的棧組成的存儲模塊
用於控制eBPF程序的運行,保存棧數據,入參與出參。
4、BPF Helpers(輔助函數)
提供了一系列用於 eBPF 程序與內核其他模塊進行交互的函數。這些函數並不是任意一個 eBPF 程序都可以調用的,具體可用的函數集由 BPF 程序類型決定。注意,eBPF裡面所有對入參,出參的修改都必須符合BPF規范,除了本地變數的變更,其他變化都應當使用BPF Helpers完成,如果BPF Helpers不支持,則無法修改。
bpftool feature probe
通過以上命令可以看到不同類型的eBPF程序可以運行哪些BPF Helpers。
5、BPF Map & context
用於提供大塊的存儲,這些存儲可被用戶空間程序用來進行訪問,進而控制 eBPF 程序的運行狀態。
bpftoolfeatureprobe|grepmap_type通過以上命令可以看到系統支持哪些類型的map。
3個動作先說下重要的系統調用bpf:
intbpf(intcmd,unionbpf_attr*attr,unsignedintsize);這里cmd是關鍵,attr是cmd的參數,size是參數大小,所以關鍵是看cmd有哪些:
//5.11內核enumbpf_cmd{BPF_MAP_CREATE,BPF_MAP_LOOKUP_ELEM,BPF_MAP_UPDATE_ELEM,BPF_MAP_DELETE_ELEM,BPF_MAP_GET_NEXT_KEY,BPF_PROG_LOAD,BPF_OBJ_PIN,BPF_OBJ_GET,BPF_PROG_ATTACH,BPF_PROG_DETACH,BPF_PROG_TEST_RUN,BPF_PROG_GET_NEXT_ID,BPF_MAP_GET_NEXT_ID,BPF_PROG_GET_FD_BY_ID,BPF_MAP_GET_FD_BY_ID,BPF_OBJ_GET_INFO_BY_FD,BPF_PROG_QUERY,BPF_RAW_TRACEPOINT_OPEN,BPF_BTF_LOAD,BPF_BTF_GET_FD_BY_ID,BPF_TASK_FD_QUERY,BPF_MAP_LOOKUP_AND_DELETE_ELEM,BPF_MAP_FREEZE,BPF_BTF_GET_NEXT_ID,BPF_MAP_LOOKUP_BATCH,BPF_MAP_LOOKUP_AND_DELETE_BATCH,BPF_MAP_UPDATE_BATCH,BPF_MAP_DELETE_BATCH,BPF_LINK_CREATE,BPF_LINK_UPDATE,BPF_LINK_GET_FD_BY_ID,BPF_LINK_GET_NEXT_ID,BPF_ENABLE_STATS,BPF_ITER_CREATE,BPF_LINK_DETACH,BPF_PROG_BIND_MAP,};最核心的就是PROG,MAP相關的cmd,就是程序載入和映射處理。
1、程序載入
調用BPF_PROG_LOAD cmd,會將BPF程序載入到內核,但eBPF 程序並不像常規的線程那樣,啟動後就一直運行在那裡,它需要事件觸發後才會執行。這些事件包括系統調用、內核跟蹤點、內核函數和用戶態函數的調用退出、網路事件,等等,所以需要第2個動作。
2、綁定事件
b.attach_kprobe(event="xxx",fn_name="yyy")以上就是將特定的事件綁定到特定的BPF函數,實際實現原理如下:
(1)藉助 bpf 系統調用,載入 BPF 程序之後,會記住返回的文件描述符;
(2)通過attach操作知道對應函數類型的事件編號;
(3)根據attach的返回值調用 perf_event_open 創建性能監控事件;
(4)通過 ioctl 的 PERF_EVENT_IOC_SET_BPF 命令,將 BPF 程序綁定到性能監控事件。
3、映射操作
通過MAP相關的cmd,控制MAP增刪,然後用戶態基於該MAP與內核狀態進行交互。
eBPF的發展現狀?內核支持建議>=4.14
生態eBPF的生態自下而上的情況如下:
1、基礎設施
支持eBPF基礎能力的發展。
Linux Kernal
LLVM
2、開發工具集
主要是用於載入,編譯,調試eBPF程序,不同語言有不同的開發工具集:
Go
https://github.com/cilium/ebpf
https://github.com/aquasecurity/libbpfgo
C/C++
https://github.com/libbpf/libbpf
3、eBPF應用
bcc(https://github.com/iovisor/bcc)
提供一套開發工具和腳本。
bpftrace(https://github.com/iovisor/bpftrace)
基於bcc,提供一個腳本語言。
cilium(https://github.com/cilium/cilium)
網路優化和安全
Falco(https://github.com/falcosecurity/falco)
網路安全
Katran(https://github.com/facebookincubator/katran)
高性能4層負載均衡
Hubble(https://github.com/cilium/hubble)
可觀測
Kindling(https://github.com/CloudDectective-Harmonycloud/kindling)
可觀測
Pixie(https://github.com/pixie-io/pixie)
可觀測
kubectl trace(https://github.com/iovisor/kubectl-trace)
調度b
6. kda是什麼幣
KDA幣介紹:KDA幣是Kadena官方平台推出的代幣,於2019年11月04日上線coinlist,開啟KDA代幣出售,供應總量為 3000 萬 KDA。
Kadena(KDA) 是分布式數字化記帳本的領導者,行業首創安全、可擴展的平台以及簡單的智能合約語言,用區塊鏈幫助各機構提高效率。Kadena 同時具備公鏈和聯盟鏈兩套解決方案,Kadena 的聯盟鏈可以與公鏈網路集成,成為它的一部分,創造全新的市場用例。Kadena已獲得來自SVAngel,CoinFund等機構的1500萬美元融資。
由於coinlist(一家合規初始代幣發行平台)賬戶審核有諸多限制,為幫助BiHODL(全球范圍內領先的數字交易平台)的廣大用戶可以參與到Kadena早期建設中,BiHODL特此推出 Kadena(KDA)IGO。
此次 Kadena 官方的coinlist出售有2種類型。一種為 coinlist-Global,總量2000萬 KDA,單價0,5美金,購買後鎖倉到2020年12月,然後3個月內釋放完畢;一種為 coinlist-Non-US(非美國用戶),總量1000萬 KDA,單價1美金,沒有鎖倉。此次 Kadena(KDA) IGO 的KDA認購價格將為 1 USDT,沒有鎖倉,適用於 coinlist-Non-US 類型。
拓展資料
一、 挖礦系統
minerOS:基於Linux開發的顯卡礦機管理系統,支持雲端批量管理礦機。系統ROM支持U盤和無盤方式安裝,內置Claymore、Bminer、ccminer、EWBF等第三方原版挖礦軟體。
輕松礦工:支持90+幣種,可以一鍵批量切換礦池、幣種、錢包;批量一鍵升級內核、軟體、驅動;一鍵批量超頻,不依賴小飛機。
開源礦工:開源礦工是一款顯卡挖礦開源軟體,一鍵開挖ETH、GRIN等各種顯卡幣種;支持超頻、群控,在線升級;追求礦工功能和開發者工具的完備;所有源代碼開源,永不增加礦工額外支出。
二、查看收益
機器運行片刻並提交數據給礦池之後,即可查看礦機運行狀態和收益情況,可以訪問F2Pool魚池官網,在右上角搜索欄輸入錢包地址,點擊查看,即可查看礦機狀態和收益情況。
也可以使用魚池App,在登錄頁面選擇「快速查看」,輸入挖礦軟體中設置的KDA錢包地址,選擇幣種後即可查看。
、