2022年3月28日下午, LooksRare團隊在Discord 舉行AMA,討論LooksRare技術相關問題,並回答社區用戶所關心的技術方面的問題。參與AMA的項目方成員包括:開發主管Shisui,後端主管hex,前端主管Nirato,以及產品經理Gizmo。

對話LooksRare團隊:詳談底層技術、用戶體驗和團隊建設

底層技術:模塊化的智能合約讓所有新功能都可以及時部署,用戶的資產安全是團隊最注重的問題

1、你能比較一下LooksRare的合約與OpenSea的區別以及LooksRare做了哪些優化嗎?

JurassicPunk: Wyvern(OpenSea使用的協議)一直是以太坊上使用最多的智能合約之一,毫無疑問,它幫助建立了NFT行業發展的根基。

LooksRare也是建立在類似的架構上,有一個鏈外/鏈上系統,但架構的其他部分是非常不同的。我們高度關注用戶的安全問題,所以採用了智能合約的模塊化系統,以EIP-712簽名(容易被人類理解的簽名方式),一鍵取消所有掛單工具等創新方式。

這種模塊化合約提供了一些好處,如增加新的交易匹配方式,並允許納入未來的商業邏輯變化。該協議還關注創作者,其創新之處在於支持ERC2981,為項目提供鏈上版稅登記,並在每次交易中即時地支付版稅費用。

2、為什麼你們要獨立部署這麼多的合同,例如使用版稅合約來部署FeeSetter、FeeManager、FeeRegistry?

基本上,更多的模塊化意味著系統更容易審查和理解(我們在軟件開發中經常發現的經典的分而治之範式),在未來也更容易添加新的功能,或者修復bug。

3、有什麼證據可以證明你們是從頭開始建立的,並且沒有使用OpenSea的後端?

Gizmo:你可以看到LooksRare使用EIP712來簽名(這個簽名用戶可以清楚的知道自己簽名的內容),在我們發布的時候,OpenSea並不支持這個簽名。所以我們的整個系統與OpenSea不兼容。我們用於交易、索引和一切與交易所有關的後端完全獨立於OpenSea。我們從頭建立了自己的交易系統,這就是為什麼當OpenSea發生故障時,LooksRare可以繼續交易。下次OpenSea癱瘓的時候,你可以來試一下。

4、從技術上講,在建立這個NFT市場時,最難的是什麼?你如何解決這個問題?

Shisui:在LooksRare和LooksRare之外的鏈上發生的事件之間的同步是大問題。例如,如果你把一個NFT轉移到不同的錢包,但它仍然在LR上上架,我們需要抓住這一點。你可能知道,過期的訂單在推出後是一個大問題。總的來說,鏈上和鏈下數據的同步總是一個很大的挑戰。我們需要強大而快速的腳本來進行索引。

Nirato:從前端的角度來看: 管理前端、後端和區塊鏈之間的狀態。不確定我們是否會解決這個問題,但我們一直在尋找方法來向用戶表明NFT當前最準確狀態。

卡片網格性能:卡片展示有gif,視頻,圖片,圖片不加載,圖片太大,圖片太小,圖片只在Chrome上加載不錯等問題。我們最近通過更新我們的圖片提供者和利用lazy loading等技術,在這方面取得了巨大的改進。

安全性:我們利用了很多第三方的API和服務,他們並不總是對安全問題有反應。他們在修復/支持問題上有自己的時間表,這不是我們所能控制的,對我們來說真的很令人沮喪(看看你的Trezor)。這是一場安全和功能之間永無止境的拉鋸戰。我們如何解決這個問題?我們嘗試與任何其他願意與我們溝通的開發團隊進行接觸。

5、各自的團隊成員最引以為豪的後台和前台的技術功能是什麼?

Shisui:對我來說,應該是系列報價功能。在NFT上增加流動性是一個非常令人興奮的功能。系列報價功能大大增加了一個系列NFT的流動性。我像其他人也有不一樣的答案!

JurassicPunk:對我來說,我對在行業內全面推動採用EIP-712簽名感到相當高興!

6、你們使用什麼技術來索引NFT的數據,以及你們如何去處理失敗的和一個系列NFT的API限制?

Hex:我們已經用Java 建立了自己的索引器,通過解析區塊和ERC721/ERC1155(也是市場)的相關事件,其中包括使用tokenURI()等標準解析其元數據;我們對每個轉賬事件有一個允許失敗和重試策略。

關於限頻,如果我們注意到它,我們會聯繫項目方,否則我們會在獲取他們的元數據/圖像時調整策略;我們也有自己的IPFS網關,這有助於防止這邊的速率限制(arweave不久後也會上線)。

7、你知道在基於私鑰的錢包裡有很多黑客案例。你對與非私鑰導向的錢包項目如argent合作有什麼看法?

JurassicPunk:智能合約錢包在智能合約交易所方面是已經支持的,但沒有在前端上實現。這是團隊將考慮在未來支持的東西。

8、你的基礎設施有多大的可擴展性,你能否在未來12個月內維持10倍的用戶增長?或100倍或1000倍?

Hex:我們使用第三方託管服務,允許幾乎所有的擴展(成本是唯一的'障礙'),所以我們對它很有信心;自從我們推出以來,我們已經能夠維持高達6倍的日平均流量;所以我們對10倍很有信心,不確定1000倍,但我們將為此而努力,特別是在未來12個月。

我們在幾週前聘請了一位SRE,這將有助於這方面的工作。

9、是否會有一個原生的鑄造功能,還是Manifold會成為未來的解決方案?

JurassicPunk:是的,將來會有的。團隊仍在討論具體規格,但它可能會在多個產品迭代中發布。

10、你們是否會在獲取歷史和當前NFT數據方面開發一個API?

Hex:是的,就像NFT的'歷史活動'一樣;你將能夠通過公共API查詢任何系列或nft的所有信息,包括鑄幣/轉讓/報價/上架/取消上架/...;關於歷史元數據,這是我們還沒有考慮的,但如果有需求,我們也可能提供這個。

11、你是如何在開發過程的早期捕捉錯誤的? (單元測試?自動化測試?人工測試?錯誤報告?等等)

JurassicPunk:對於智能合約/Solidity部分,所有的合約都是經過全面測試的,包括在部署的合約上有95%以上的分支/功能覆蓋。我們使用單元測試和場景測試,使用了多個框架,如Hardhat(與Waffle)和Forge(與DS-test)。我們還依賴安全工具,如Slither。

我們還與外部安全公司/個人合作,幫助審查Solidity 代碼。

Nirato:就前端而言,我們目前正在編寫單元測試,並有一支手工測試人員的隊伍。這還不夠,這也是我們目前的一個痛點。我們肯定需要做得更好,並且正在積極尋找QA工程師(認識誰嗎?歡迎積極推薦人才)。尋找具有區塊鏈/web3經驗的QA工程師是一個挑戰,我們正在盡力應對。我們所有人都同意1000%,我們需要盡快進行E2E和集成測試。

一個寶貴的資產是社區的測試人員(不是吹牛)。沒有他們,我們就會有成千上萬的錯誤。

12、Looksrare將來會不會像polygon或solana那樣支持多鏈?或者一些第二層的解決方案,如stakware?

JurrasicPunk:是的,團隊一直在調查對所有第二層解決方案的支持,但正如@Shisui(首席開發)所寫,這取決於用戶的需求。

另外,目前還不確定需求是來自於NFT橋接(例如將BAYC轉移到Arbitrum ,在L2上進行交易,還是來自於原生二層NFTs的交易費用更低,大家有更多的需求(或者兩者都有!)。

目前,團隊保持著最新的狀態,並監控著L2上NFT空間的發展,包括與EVM兼容的第二層網絡如Arbitrum/Optimistic和非EVM兼容的第二層(如Starkware)。

用戶體驗:在每個產品都盡量做到用戶體驗舒適

1、公共API什麼時候可以面向大眾?

Hex:公共API已經發布給第一批人,其中包括第三方和用戶,以確保一切順利;我們的目標是在本週或下週發佈公共API。

2、WETH的複投功能是可選擇的嗎?如果我啟用之後是否可以關閉?

JurassicPunk:自動复投功能(賣出WETH-->LOOKS)將是目前WETH/LOOKS質押合約上額外一層合約。用戶可以根據自己的喜好,決定使用這兩個合約中的任何一個。

3、你是否積極致力於改善前端性能?

Nirato:簡短的回答......是的! 開發團隊每天都會發布多個更新/功能/修復。團隊試圖把主要精力放在新功能/改進上,但仍有技術債務,我們分配了很大一部分時間來做這些努力。

4、我是你們的忠實粉絲,但前端讓我的筆記本聽起來像噴氣機起飛。它也不是一個非常迅捷的體驗。加載東西可能需要一段時間。

Nirato:我們對前端和它的速度感到非常自豪,我們希望每個用戶都能體會到這一點(好吧,至少我們是這樣努力的)。我們最近剛剛更新了我們的圖片供應商,圖片的加載速度有了明顯的改善。我們在加載gif和視頻方面也做了真正的改進,但對於手機用戶和舊電腦來說,這仍然是一個挑戰。這是一場持續的鬥爭,但穩定性和性能是首要任務。

我們一直在探索新的方法來減少延遲和瓶頸。

如果有其他的性能問題,請隨時在我們的????│bug 頻道發布問題,或者聯繫mod來處理更具體的問題。

團隊建設:技術人員佔團隊多數,去中心化辦公

1、前端工程師和後端工程師(API Focus)有多少招聘人數?工作交流需要語音會議嗎?還是只需要文件傳輸就好了?

Shisui:我們目前有3個前端,4個後端(包括DB),1個開發,1個solidity開發,和我。我們使用Discord作為我們的主要溝通工具(每天都會開會)。

2、開發團隊的成員是如何溝通的?你們是在同一個辦公室工作還是在家里工作?

Shisui:我們使用Discord作為我們的主要溝通工具。每個人都是遠程工作,我們沒有任何辦公室,也沒有計劃設立辦公室,因為我們不想被束縛在一個特定的國家。我們的成員現在分佈在美國、歐洲和亞洲。去中心化是LooksRare的基因.

3、如果有緊急情況發生,LooksRare團隊是如何應對的?是否有一個事件響應手冊?

Shisui:我們有很多監測工具和幾種不同的方式來聯繫對方,取決於關鍵程度。通常情況下,當有事情發生時,我們會在幾分鐘內趕到。我們在內部有一個專門的對話頻道,在那裡我們會對所有的事件進行事後總結。

Nirato: Gizmo 讓我們都在傳呼機上工作,通過手機上的勿擾設置,直接轟擊我們。逃不掉的! 我們幾乎在每個時區都有在線的人,這也是我們的優勢。

其他: LOOKS代幣空投的計算方式

1、大家好,我想知道你們是如何指定/決定代幣的數量和代幣空投的等級的?另外,資格是如何計算的(例如,基於OpenSeea的API?)

JurrasicPunk:空投等級和數量背後的策劃者是Guts,我們的合夥創始人。他在這方面非常有經驗,經過了很多輪嚴謹的計算得出現在的等級。

對於收集交易量,我們使用TheGraph協議的子圖來收集OpenSea市場的鏈上數據。該子圖對Wyvern協議的調用進行索引,並使用Uniswap來處理非ETH貨幣的交易額向ETH的轉換。這是相當複雜的,因為我們必須為多種貨幣如MANA、GALA等建立整合。