主頁 > 區塊鏈 > 獲國際架構頂會ATC2021最佳論文!Fuxi2.0去中心化的調度架構詳解

獲國際架構頂會ATC2021最佳論文!Fuxi2.0去中心化的調度架構詳解

2021-08-07 08:40:25 區塊鏈

簡介: 近日,在國際體系架構頂會USENIX ATC2021上,阿里云飛天伏羲團隊與香港中文大學合作的一篇論文《Scaling Large Production Clusters with Partitioned Synchronization》不僅成功被大會錄取,而且被大會專家組評定為三篇最佳論文之一(Best Paper Award),

image.png

作者 | 馮亦揮、劉智、趙蘊健、金曉月、吳一迪、張楊、鄭尚策、李超、關濤
來源 | 阿里技術公眾號

引言

近日,在國際體系架構頂會USENIX ATC2021上,阿里云飛天伏羲團隊與香港中文大學合作的一篇論文《Scaling Large Production Clusters with Partitioned Synchronization》不僅成功被大會錄取,而且被大會專家組評定為三篇最佳論文之一(Best Paper Award),

ATC在計算機系統領域極具影響力,自1992年至今,ATC已成功舉辦31屆,吸引了普林斯頓、斯坦福、加州大學伯克利分校、康奈爾、中國清華大學、北京大學等頂級名校,以及微軟、英特爾、三星等科技巨頭發布研究成果,ATC 對論文要求極高,必須滿足基礎性貢獻、前瞻性影響和堅實系統實作的要求,2021 USENIX組委會錄用64篇(錄取率為18%),全球僅選取3篇最佳論文(其他兩篇來自Stanford University和Columbia University),這也是ATC最佳論文首次出現中國公司的身影,

本次大會上,我們詳細介紹了Fuxi 2.0專案的最新成果,超大規模分布式集群去中心化的調度架構,首次向外界披露了阿里云在超大規模集群調度上的實作細節,也是飛天作業系統核心能力的又一次成功展現,

一 論文背景

AI/大資料計算場景,隨著計算需求的快速增長,云計算集群突破單集群萬臺規模(一個集群可能有10萬臺機器,每天執行數十億個任務,特別是短時任務),以實作高利用率低成本的附加值,具有重要意義,資源調度器作為大型生產集群的核心組件,它負責將集群內的多維度資源請求與機器資源進行高效匹配,而集群規模的增長,意味著有更高的并發請求,產生”乘積“效應,使調度復雜度急劇增加,因此,如何實作集群規模的可擴展,在保持良好的調度效果的同時,做到高并發、低延時,是業內公認的非常艱巨的任務,傳統的中心調度器,受限于單點調度能力,大多數無法處理生產級別的規模,也無法保證穩定性和健壯性,做到升級程序對用戶透明,

二 現狀分析

1 作業負載

在阿里巴巴,單個計算集群每天運行著數百萬的作業,圖1a(實心曲線)繪制了一個集群某個月份內每天隨機處理的作業數,334萬至436萬,而一個作業由許多任務組成,圖1a(虛線)顯示每天的任務數量大概為從31億到44億,其中大部分任務都是短時任務,如圖1b所示,87%的任務在10秒內完成,大規模集群的調度負載還是非常大的,

image.png

2 調度架構升級的必要性

在Fuxi1.0,調度器遵循典型的master-worker架構,FuxiMaster負責管理并調度集群中的所有資源,同時每臺機器上有一個agent,Tubo,定期通過心跳訊息向FuxiMaster同步狀態,用戶提交的每個作業都有其所在的quota組的資訊,quota組能使用資源的最大最小值由SRE設定,我們的quota機制既能在集群高負載時保證各個quota組之間的公平性,也能在集群相對較閑時,削峰填谷,讓集群資源被充分使用,

近年來,計算集群的規模在顯著地增長,在可預見的將來,集群規模很可能突破十萬臺,面對超大規模集群,一種方法是將集群靜態切分為幾個小集群,但該方法有著明顯的局限性,首先,一些超大規模作業的資源需求可能就超過上述單個集群的規模;其次,集群的切分也會帶來資源碎片問題,區域視圖無法保證全域調度結果的最優;最后是其他非技術的因素,比如project之間存在依賴關系,同一業務部門的不同project需要互相訪問資料,將它們部署在同一個集群(而不是拆分成一個個小集群)會大大降低運維和管理的代價,

但單master架構無法處理十萬級別的集群規模,主要有兩方面原因:1)隨著集群規模的擴大,受限于單調度器處理能力的上限,master和worker之間的心跳延時會增加,調度資訊不能及時下發,導致集群利用率下降;2)規模的提升意味著更高的任務并發度,使調度復雜度急劇增加,最終超過單調度器的處理能力,

3 調度的目標和挑戰

除了規模可擴展性上的挑戰,調度器還應在以下多個調度目標間進行權衡,我們關注的目標主要包括:

  • 調度效率(或者延時),即一個任務需要在資源上等待多長時間,一個好的調度器應該讓資源快速流轉,
  • 調度質量,資源的約束是否都被滿足,比如data locality,更大體積的記憶體,更快的CPU型號等,
  • 公平性和優先級,在多租戶共享的生產環境,需要保證租戶間資源使用的公平性,同時提供高優先級作業的保障機制,
  • 資源利用率,一個極其重要的目標,集群利用率低會面臨很多挑戰,尤其是財務上的挑戰,

但上述幾個目標之間通常是互相沖突的,比如,更好的調度效果往往意味更長的調度延時,絕對的公平性有時會導致資源未能被充分使用,從而導致集群利用率下降,

經過十幾年的積累,伏羲的資源調度器通過各種策略在上述幾大目標間實作了很好的權衡,但考慮資源調度周邊還有其他兄弟團隊開發的應用組件,我們在設計新的調度器時,也應該做到盡量少改動,以保持系統的健壯性和向前兼容性,調度器架構調整引入的系統升級應該對用戶是透明的,不管是內部用戶還是外部用戶,

三 理論概述

針對調度器的規模可擴展問題,我們對業內現有的調度模型做了廣泛的調研(詳見論文),并選取了其中一個最適合我們場景的方案(Omega)進行進一步的分析,以Omega為代表的shared-state的多調度器架構能滿足我們之前說的那兩個約束條件,向后兼容和對用戶透明,但是share-state方案不可避免的會帶來調度沖突,我們希望能清楚如下幾個問題:

  1. 有哪些因素會影響沖突,它們各自的權重是多少?
  2. 調度延遲會惡化到什么程度?
  3. 如何才能夠避免或級訓沖突?

我們首先對沖突進行建模,得出沖突(Conflict)的期望為(推導程序詳見論文):

image.png

在上述公式中,Yi是多調度器在某個slot上沖突的期望, N是調度器的數量,K是單個調度器的處理能力,S是機器可調度的槽位數,可見,如果想減少沖突的概率,可以通過增加S或者N來實作,增加S是一種很符合直覺的方式,通過額外的資源供給來降低沖突概率,增加N的方式有些反直覺,因為調度器越多,越容易增加沖突,然而雖然在一輪調度程序中沖突變多了,但每個調度器一開始分到的task調度壓力也等比例地減小了,所以就有了更多的時間來解決沖突,最終反而起到了降低沖突概率的效果,總結起來,增加N是在整體壓力不變的情況下,通過降低每個調度器的調度壓力來實作沖突的減少的,

此外我們也通過公式證明了,在調度器數量>1的情況下,無法徹底消除沖突,

下面的實驗反映了不同的沖突因素對沖突的影響:

image.png

  • 圖a考量的是任務壓力變化對沖突產生的影響,R表示調度器收到的task速率,可以看到在調度器數量相同的情況下,隨著R的增大,為了保持沖突數量不發生明顯的變化,需要額外補充的slot數目就越多;反過來,在R不變的情況下,隨著調度器數量的增加,每個調度器承受的調度壓力下降,需要額外補充的slot數目就越少,
  • 圖b反映的是資源視圖同步頻率變化對沖突的影響,G表示同步的延遲,可以看到在調度器數量相同的情況下,隨著G的增大,為了保持沖突數量不發生明顯的變化,需要額外補充的slot數目就越多;反過來,在G不變的情況下,隨著調度器數量的增加,每個調度器承受的調度壓力下降,需要額外補充的slot數目就越少,
  • 圖c反映的是機器分數(比如更好的硬體性能)對沖突的影響,V表示機器分數的方差,可以看到在調度器數量相同的情況下,隨著V的增大,為了保持沖突不發生明顯的變化,需要額外補充的slot數目就越多;反過來,在V不變的情況下,隨著調度器數量的增加,每個調度器承受的調度壓力下降,需要額外補充的slot數目就越少,
  • 圖d反映的是機器partition數量對沖突的影響,可以看到這個因素對沖突幾乎沒有影響,因為不管機器partition的數量是多少,調度器總是以自己內部的視圖狀態進行調度,即使有些視圖的狀態已經不夠新了,所以partition數量并不會對沖突產生明顯的影響,

由以上分析不難發現,在shared-state架構下,如果我們想盡可能的降低沖突,可以采取增加額外資源或者增加調度器數量的方式來降低沖突,但在實際的生產環境中,增加額外資源是不可能的,一方面是集群大小是相對固定的,此外新引入slot也會大幅增加集群的成本;而增加調度器則會顯著帶來維護\升級的代價,

四 方案實作

由于我們的目標是為了減少沖突,所以我們先簡單介紹下一種能夠完全消除沖突的策略,悲觀鎖策略,悲觀鎖策略是每個調度器能夠調度的機器是“靜態排他\靜態劃分”的,這樣顯然能夠消除沖突,但是對利用率是非常不利的,因為會產生資源浪費(其他調度器本來可以調度),還有一種策略是通過類似于zookeeper等組件實作的基于鎖搶占的調度策略,當一批機器被某一個調度器鎖住時,其他機器是由于拿不到機器鎖從而暫時無法調度,當持鎖的調度器放鎖時,其他調度器可以通過鎖競爭來嘗試進行調度,但是在大規模高并發的調度場景下,這種高頻的互動會對調度效率產生很大的負作用,

由前面的分析可以知道,降低資源同步的延遲能夠有效降低沖突,由此我們提出了一種基于“磁區同步”(下稱ParSync)的策略:首先將集群的機器分為P個partition,同時要求P>N,通過round robin策略,每個調度器在同一個時刻去同步不同partition的資源視圖,這樣做能夠保證在每個round內每個調度器都能夠更新完所有partition的資源,而P>N保證了同一時刻不同的調度器不會同步相同的patition資源,

根據前文所述,在大規模高并發的調度場景下,調度器最優先的目標往往不是locality prefer而是speed prefer,所以調度器會優先在最新同步的partition機器內進行資源調度,在該策略下多調度器間是不會產生資源沖突的,ParSync其實是變相降低了每個patition對其當前同步調度器的同步延遲,因為站在當前更新的調度器的視角,這個partiton的同步延遲其實是低于其他未同步的調度器的,這也是能夠有效降低沖突的理論原因,

我們提供三種調度策略:latency-first, quality-first, adaptive,latency-first是在優先在最新的partition上調度資源, quality-first是優先在score最好的機器上調度資源,而adaptvie是先采取quality-first的調度策略,當資源等待時間超過閾值時再采取latency-first的策略,我們通過一組實驗來驗證3種調度策略的調度效果:我們將調度器分為2類,A\B類調度器在階段1都收到自身調度能力的2/3調度請求;階段2,A類調度器收到等同于自身調度能力的調度請求,而B類調度器不變;階段3,A\B類調度器都收到等同于自身調度能力的調度請求,

image.png

  • 從(a)(b)可以看出,在階段1\2\3, 調度quality的表現都是很好的,但是在階段2\3隨著調度壓力的增加,調度latency出現了直線上升的情況,這是符合直覺預期的,
  • 從(c)(d)可以看到,在階段1調度器壓力只有2/3的時候,調度latency和quality都是表現比較好的,隨著調度壓力的增加,quality質量開始出現了下降,但是latency的增加卻非常有限,這也符合直覺預期,
  • 從(e)(f)可以看到,在階段2,由于B類調度器的調度壓力仍只有2/3,所以還停留在quality-first策略,而A類調度器由于調度latency的增加進入到了latency-first策略,通過仔細觀察可以看到在quality的圖里B類調度器的quality質量(淺灰色)是優于latency-first策略的,在階段3,A\B類調度器同時將調度latency約束在了門限值(1.5s),符合設計預期,

五 實驗分析

我們通過“風洞”系統來驗證整個調度框架,在風洞環境下,除了調度器是真實的,單機節點和am都是程式模擬出來的,它們和調度器進行真實的資源互動,通過sleep來模擬作業的執行,這樣在一個node上就可以進行1:500的模擬,

測驗環境:

  1. 20個調度器,2個resource manager
  2. 集群總共有20w個槽位
  3. 調度器調度能力為40k task/s
  4. 調度分為3個階段,調度壓力分別調度器能力的50%,80%, 95%,80%, 50%

image.png

從圖(a)可以看出,隨著調度壓力的變化,latency-first在調度latency上優于adaptive, 而quality-first優于StateSync(以Omega為代表的視圖同步策略,調度器每次同步整個視圖資訊),latency-first策略能夠將latency控制在一個非常好的水準,而StateSync的latency已經不受控制了,這也很好地證明了ParSync策略對沖突控制的有效性,對于quality-first策略,其latency也出現了不受控制的情況,這是調度器一直嘗試在分數最高的機器上進行調度所帶來的副作用,而adaptive策略對latency-first和quality-first進行了一個良好的折中,

從圖(b)中可以看出,隨著調度壓力的變化,latency-first和adaptive策略在quality上表現都有一個明顯的下降,這個符合預期,而quality-first的表現基本和StateSync持平,

綜上,ParSync在quality與StateSync表現持平的情況下,latency表現遠優于StateSync,其他更多的詳細的資料分析詳見論文,

六 總結

論文首先介紹了分布式調度器領域在解決規模問題時的常見做法:多調度器聯合調度,其次介紹了多調度器的一種常見的資源供給模型StateSync,在StateSync模式下,不同調度器間會產生嚴重的調度沖突,進而影響集群的調度效率和利用率,針對上述問題,論文通過理論分析,給出了緩解沖突方法:增加可調度資源或擴充調度器,但是在實際中這2種方法都是不可接受的,

本文提出了一種新的資源供給模式:ParSync,在ParSync模式下,不同的調度器通過round robin的方式來分時更新機器資源,同時ParSync提供了三種調度策略:latency-first, quality-first, adaptive,用來滿足不同場景下調度器對于latency\quality的要求,大規模實驗表明,ParSync在調度質量上與其他調度器持平,但在調度延時上遠優于其他調度器,

附錄

image.png

生產集群資源調度架構圖

原文鏈接
本文為阿里云原創內容,未經允許不得轉載,

轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/292239.html

標籤:區塊鏈

上一篇:《區塊鏈原理、設計與應用》 – 基于超級賬本 Fabric 2.x(學習分享2.1-HyperLedger專案細分)

下一篇:MEXC Global帶你了解Symmetry-Solana生態去中心化加密資產指數協議

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • JAVA使用 web3j 進行token轉賬

    最近新學習了下區塊鏈這方面的知識,所學不多,給大家分享下。 # 1. 關于web3j web3j是一個高度模塊化,反應性,型別安全的Java和Android庫,用于與智能合約配合并與以太坊網路上的客戶端(節點)集成。 # 2. 準備作業 jdk版本1.8 引入maven <dependency> < ......

    uj5u.com 2020-09-10 03:03:06 more
  • 以太坊智能合約開發框架Truffle

    前言 部署智能合約有多種方式,命令列的瀏覽器的渠道都有,但往往跟我們程式員的風格不太相符,因為我們習慣了在IDE里寫了代碼然后打包運行看效果。 雖然現在IDE中已經存在了Solidity插件,可以撰寫智能合約,但是部署智能合約卻要另走他路,沒辦法進行一個快捷的部署與測驗。 如果團隊管理的區塊節點多、 ......

    uj5u.com 2020-09-10 03:03:12 more
  • 谷歌二次驗證碼成為區塊鏈專用安全碼,你怎么看?

    前言 谷歌身份驗證器,前些年大家都比較陌生,但隨著國內互聯網安全的加強,它越來越多地出現在大家的視野中。 比較廣泛接觸的人群是國際3A游戲愛好者,游戲盜號現象嚴重+國外賬號安全應用廣泛,這類游戲一般都會要求用戶系結名為“兩步驗證”、“雙重驗證”等,平臺一般都推薦用谷歌身份驗證器。 后來區塊鏈業務風靡 ......

    uj5u.com 2020-09-10 03:03:17 more
  • 密碼學DAY1

    目錄 ##1.1 密碼學基本概念 密碼在我們的生活中有著重要的作用,那么密碼究竟來自何方,為何會產生呢? 密碼學是網路安全、資訊安全、區塊鏈等產品的基礎,常見的非對稱加密、對稱加密、散列函式等,都屬于密碼學范疇。 密碼學有數千年的歷史,從最開始的替換法到如今的非對稱加密演算法,經歷了古典密碼學,近代密 ......

    uj5u.com 2020-09-10 03:03:50 more
  • 密碼學DAY1_02

    目錄 ##1.1 ASCII編碼 ASCII(American Standard Code for Information Interchange,美國資訊交換標準代碼)是基于拉丁字母的一套電腦編碼系統,主要用于顯示現代英語和其他西歐語言。它是現今最通用的單位元組編碼系統,并等同于國際標準ISO/IE ......

    uj5u.com 2020-09-10 03:04:50 more
  • 密碼學DAY2

    ##1.1 加密模式 加密模式:https://docs.oracle.com/javase/8/docs/api/javax/crypto/Cipher.html ECB ECB : Electronic codebook, 電子密碼本. 需要加密的訊息按照塊密碼的塊大小被分為數個塊,并對每個塊進 ......

    uj5u.com 2020-09-10 03:05:42 more
  • NTP時鐘服務器的特點(京準電子)

    NTP時鐘服務器的特點(京準電子) NTP時鐘服務器的特點(京準電子) 京準電子官V——ahjzsz 首先對時間同步進行了背景介紹,然后討論了不同的時間同步網路技術,最后指出了建立全球或區域時間同步網存在的問題。 一、概 述 在通信領域,“同步”概念是指頻率的同步,即網路各個節點的時鐘頻率和相位同步 ......

    uj5u.com 2020-09-10 03:05:47 more
  • 標準化考場時鐘同步系統推進智能化校園建設

    標準化考場時鐘同步系統推進智能化校園建設 標準化考場時鐘同步系統推進智能化校園建設 安徽京準電子科技官微——ahjzsz 一、背景概述隨著教育事業的快速發展,學校建設如雨后春筍,隨之而來的學校教育、管理、安全方面的問題成了學校管理人員面臨的最大的挑戰,這些問題同時也是學生家長所擔心的。為了讓學生有更 ......

    uj5u.com 2020-09-10 03:05:51 more
  • 位元幣入門

    引言 位元幣基本結構 位元幣基礎知識 1)哈希演算法 2)非對稱加密技術 3)數字簽名 4)MerkleTree 5)哪有位元幣,有的是UTXO 6)位元幣挖礦與共識 7)區塊驗證(共識) 總結 引言 上一篇我們已經知道了什么是區塊鏈,此篇說一下區塊鏈的第一個應用——位元幣。其實先有位元幣,后有的區塊 ......

    uj5u.com 2020-09-10 03:06:15 more
  • 北斗對時服務器(北斗對時設備)電力系統應用

    北斗對時服務器(北斗對時設備)電力系統應用 北斗對時服務器(北斗對時設備)電力系統應用 京準電子科技官微(ahjzsz) 中國北斗衛星導航系統(英文名稱:BeiDou Navigation Satellite System,簡稱BDS),因為是目前世界范圍內唯一可以大面積提供免費定位服務的系統,所以 ......

    uj5u.com 2020-09-10 03:06:20 more
最新发布
  • web3 產品介紹:metamask 錢包 使用最多的瀏覽器插件錢包

    Metamask錢包是一種基于區塊鏈技術的數字貨幣錢包,它允許用戶在安全、便捷的環境下管理自己的加密資產。Metamask錢包是以太坊生態系統中最流行的錢包之一,它具有易于使用、安全性高和功能強大等優點。 本文將詳細介紹Metamask錢包的功能和使用方法。 一、 Metamask錢包的功能 數字資 ......

    uj5u.com 2023-04-20 08:46:47 more
  • Hyperledger Fabric 使用 CouchDB 和復雜智能合約開發

    在上個實驗中,我們已經實作了簡單智能合約實作及客戶端開發,但該實驗中智能合約只有基礎的增刪改查功能,且其中的資料管理功能與傳統 MySQL 比相差甚遠。本文將在前面實驗的基礎上,將 Hyperledger Fabric 的默認資料庫支持 LevelDB 改為 CouchDB 模式,以實作更復雜的資料... ......

    uj5u.com 2023-04-16 07:28:31 more
  • .NET Core 波場鏈離線簽名、廣播交易(發送 TRX和USDT)筆記

    Get Started NuGet You can run the following command to install the Tron.Wallet.Net in your project. PM> Install-Package Tron.Wallet.Net 配置 public reco ......

    uj5u.com 2023-04-14 08:08:00 more
  • DKP 黑客分析——不正確的代幣對比率計算

    概述: 2023 年 2 月 8 日,針對 DKP 協議的閃電貸攻擊導致該協議的用戶損失了 8 萬美元,因為 execute() 函式取決于 USDT-DKP 對中兩種代幣的余額比率。 智能合約黑客概述: 攻擊者的交易:0x0c850f,0x2d31 攻擊者地址:0xF38 利用合同:0xf34ad ......

    uj5u.com 2023-04-07 07:46:09 more
  • Defi開發簡介

    Defi開發簡介 介紹 Defi是去中心化金融的縮寫, 是一項旨在利用區塊鏈技術和智能合約創建更加開放,可訪問和透明的金融體系的運動. 這與傳統金融形成鮮明對比,傳統金融通常由少數大型銀行和金融機構控制 在Defi的世界里,用戶可以直接從他們的電腦或移動設備上訪問廣泛的金融服務,而不需要像銀行或者信 ......

    uj5u.com 2023-04-05 08:01:34 more
  • solidity簡單的ERC20代幣實作

    // SPDX-License-Identifier: GPL-3.0 pragma solidity >=0.7.0 <0.9.0; import "hardhat/console.sol"; //ERC20 同質化代幣,每個代幣的本質或性質都是相同 //ETH 是原生代幣,它不是ERC20代幣, ......

    uj5u.com 2023-03-21 07:56:29 more
  • solidity 參考型別修飾符memory、calldata與storage 常量修飾符C

    在solidity語言中 參考型別修飾符(參考型別為存盤空間不固定的數值型別) memory、calldata與storage,它們只能修飾參考型別變數,比如字串、陣列、位元組等... memory 適用于方法傳參、返參或在方法體內使用,使用完就會清除掉,釋放記憶體 calldata 僅適用于方法傳參 ......

    uj5u.com 2023-03-08 07:57:54 more
  • solidity注解標簽

    在solidity語言中 注釋符為// 注解符為/* 內容*/ 或者 是 ///內容 注解中含有這幾個標簽給予我們使用 @title 一個應該描述合約/介面的標題 contract, library, interface @author 作者的名字 contract, library, interf ......

    uj5u.com 2023-03-08 07:57:49 more
  • 評價指標:相似度、GAS消耗

    【代碼注釋自動生成方法綜述】 這些評測指標主要來自機器翻譯和文本總結等研究領域,可以評估候選文本(即基于代碼注釋自動方法而生成)和參考文本(即基于手工方式而生成)的相似度. BLEU指標^[^?88^^?^]^:其全稱是bilingual evaluation understudy.該指標是最早用于 ......

    uj5u.com 2023-02-23 07:27:39 more
  • 基于NOSTR協議的“公有制”版本的Twitter,去中心化社交軟體Damus

    最近,一個幽靈,Web3的幽靈,在網路游蕩,它叫Damus,這玩意詮釋了什么叫做病毒式營銷,滑稽的是,一個Web3產品卻在Web2的產品鏈上瘋狂傳銷,各方大佬紛紛為其背書,到底發生了什么?Damus的葫蘆里,賣的是什么藥? 注冊和簡單實用 很少有什么產品在用戶注冊環節會有什么噱頭,但Damus確實出 ......

    uj5u.com 2023-02-05 06:48:39 more