原文 | 趙長鵬

編譯 | BABI財經

1 故障發生

2月8日的清晨,我們中的一個數據庫自動進行了主備切換,這種切換現象通常是由於硬件故障所致。

但是在27分鐘過後,先前發生過切換的數據庫又一次發生了主備切換。由於這兩次主備切換的發生,系統直接發出了數據庫不同步的預警。我們經過緊急的調查後發現這是由於數據庫失協造成的,這使得大約有1.7%的交易用戶受到了影響。

當時發生的情況極其嚴重。硬件故障導致的數據故障毫無規律,根本沒有有效辦法通過簡單快速的方式修復,如果強制在失協的數據庫上允許交易所持續運營併產生新的數據,那麼數據不同步的情況會不斷加重。因此我們決定必須對數據庫集羣進行一次完整的同步。

由於幣安的整個系統架構極其複雜,有很多架構師爲提升交易性能而做出的優化,其中不僅僅包括數據庫中的靜態數據,同步還涉及到Run-Time內存數據的重構。整個系統同步的過程要經過串行完成幾個步驟,每一個步驟都很難預估出極其精確的時間。

當時團隊立馬對系統同步進行了預估,並暫停了相關交易業務,這種方式雖然會對業務帶來較大的影響,但是這是我們必須的舉措。同時,我們及時通過相關的網站和各個社交媒體做了緊急通知,隨後便開始了同步。

雖然我們早就目睹了交易所業務迅猛的增長數據,但數據同步開始後我們發現還是低估了幣安在過去的一個月交易量猛增帶來的數據增長。一開始我們預計數據同步完成時間是10小時,但隨着同步的進行,我們發現這個時間在逐漸增加,最後上升到了60小時,也就是接近三天的宕機時間,這個時間對團隊,對用戶來講都是不可接受的。

緊急情況下,我們的團隊不得不重新設計、編寫、測試了兩套新的數據同步方案。基於之前同樣的原因,我們也不能精確預測出哪種方案同步速度最快。在更新進度壓力下,我們選擇讓三套方案並行同時工作。幸運的是,新的兩套方案的確更快,其中一套方案最後還幫我們節省了極其關鍵的幾小時。

即使如此,數據同步的過程仍然十分漫長。

我們團隊成員爲了應對這次突發性事件連續工作了34個小時,我們付出了極大的努力使系統儘快恢復工作,並在恢復後繼續做了一些保證性的工作。在這種高強度的工作壓力下,致使我們團隊的一員身體不適而發生了嘔吐。

此次事件的發生以我們很不情願的方式給我們上了一課。我們團隊通過對這次事件的分析得出並提出改進,比如大架構上的該進,我們也會在接下來幾天裏陸續開發、測試、評估後部署上線。有些部分的更新可能又會導致臨時中斷交易的發生,但不會佔用太長時間,希望用戶能夠理解。

2 禍不單行

就在我們緊張恢復數據的同時,我們託管在全球知名客戶支持方案提供商ZenDesk處的支持系統同時也無法訪問了,這導致我們無法以正式渠道向用戶發佈及時的恢復進度等。我們團隊相信幣安客戶支持系統遭到了DDoS攻擊,但經過我們的深思熟慮後,並沒有公告這條內容。因爲這樣的消息太巧合、太詭異了,極其容易被別有用心的人誤導,造成更大的謠言。我們一如既往地選擇用事實說話。

另外,在系統同步的期間,幣安官網同時也遭到了瘋狂的DDoS攻擊。黑客們深知手忙腳亂的時候正是系統最脆弱的時候,但是他們忽略了安全一向是幣安的第一要務,黑客們在除了浪費了時間、金錢和精力以外一無所獲。

3 溝通交流

我們團隊完全可以想象在如此長時間的宕機期間,交易用戶會有多麼焦慮。因此在工程師們奮戰的同時,團隊其他成員在盡力保證暢通的信息披露工作,平均每兩小時會發布新的進展公告。

在ZenDesk不可用的情況下,我們憑藉推特、微博、reddit、slack、telegram、QQ、微信等各種社交媒體和渠道向用戶及時傳達有關信息。實話講,之前我一度抱怨過爲什麼會有這麼多社交媒體渠道,但這段時間我真誠的感謝這些媒體渠道的存在。

由於數據同步的壓力,我只有精力通過我的推特賬號發佈有限的信息,我們的團隊,包括幣安天使們協助完成了其他渠道的溝通工作。

4 恐慌、謠言

心懷鬼胎的人把幣安維護當作一場鬧劇。

謠言漫天飛,並且有人大肆做空,不過現在看來並未奏效。在這段維護期間,數字資產市場相對比較穩定並且在維護完成之後還有一波20%的漲幅。

在這段時間出現了很多騙子。其中有人用了跟我相同的頭像和相似的用戶名在我的推特下騙ETH,雖然推特響應封號的速度很快,但騙子應該還是有所得逞,因爲可以看到類似的手段一遍又一遍出現。

在此次事件發生時,金融時報迅速報導了世界最大交易所宕機的消息,不過這是實情,沒什麼好批判的。不過這也給“世界最大交易所”帶來了不少新流量。

真正的神助攻來自於McaFee,它貼了一張PS的幣安被黑的圖片。不過大家對此的態度幾乎是一邊倒,爲幣安辯護指責McaFee傳播謠言的佔據了大多數,一則“黑帖”爲我們團結了社區成員的輿論力量一致闢謠。

當然,我仔細讀了他所發佈的相關帖子,他應該不是有意傳謠。但Mcafee先生肯定沒有讀過我之前的文章:未經深思熟慮衝動的發言,發文,哪怕毫無惡意,也容易被別有用心的人利用。

不過無論如何,從結果看我是要謝謝他的。有機會見面的話,我會請他喝杯小酒。

5 補償止損

在補償方案中,有一小部分用戶提出過分發BNB作爲補償,我猜這應該就是幣安公告了手續費降低之後仍然不滿意的那批用戶。3折手續費還不滿意,他們大概根本不會進行交易吧?

我們曾經考慮過手續費全免一段時間作爲補償,但這對於參加邀請返利的用戶來說又有點不太公平。目前的你們所看到的補償方案是我們對各方利益做了平衡考量之後做出最好的方案。

6 其他事件

除了此次幣安的故障,臺灣也發生了兩次地震,我對當地的受災市民有些擔心。

此前我做夢都沒想到過自己會上福布斯的封面。其中當期一共發了兩篇有關的文章,不過其中一篇說數字資產是泡沫,所以我沒轉發。另一篇我轉發了的,就是有我的這一期。這上面公佈的排名也讓我意外,因爲我覺得我遠遠不應該排在第三。別問我誰應該排前面,因爲我需要尊重人們對私人信息選擇公開與否的權利。

我的推特賬號粉絲兩天之內翻了三倍,從3萬到了9萬。

7 時間節點

這次事故發生的時間點極其的不趕巧,大部分人還沉浸在CoinCheck的事件中。但意外發生的奇妙之處就是在於我們無法預測和選擇

我們能選擇的是,在意外來臨時,以最好的方式處理它。

8 團隊、社區

在事件發生的整個過程中,我們團隊的所有成員包括變天使都沒能好好睡覺。團隊之間沒有相互指責,每個人都想着怎麼盡一份力量。在沒有要求大家加班的時候,整個團隊都不約而同的加班,共同應對這次危機,我們團隊以一種意想不到的流暢、高效的方式運作。

如果你也喜歡上面描述的工作狀態,可以發送你的簡歷和所在城市到[email protected],我們在招聘各個崗位上最好的人才,一同在這個有着無限潛力的行業和公司裏與我們共事。

社區是幣安的力量源泉,有這麼熱情支持的社區我們真的非常幸運。我要真心對幣安的支持者們講一聲感謝。

幣安還是一個很年輕的平臺,還有很多成長和進步的空間。單單這次事件,我們就已經有了一個很長的todo
list等待完成——不過如前所述,有些可能需要短暫暫停服務,還請諒解。

感謝您的理解和支持。

趙長鵬

「本文由BABI財經發布」

把握未來,看BABI財經!

長按二維碼,關注BABI財經,你將與BABI發生更多故事

來源鏈接:None