原文作者:0x9BCE
LooksRare 將在近期面向公眾發布 API
2022 年 3 月 28 日下午,LooksRare 團隊在Discord 舉行 AMA,討論 LooksRare 技術相關問題,並回答社區用戶所關心的技術方面的問題。參與 AMA 的項目方成員包括:開發主管 Shisui,後端主管 hex,前端主管 Nirato,以及產品經理 Gizmo。
底層技術
模塊化的智能合約讓所有新功能都可以及時部署,用戶的資產安全是團隊最注重的問題
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 等建立整合。
閱讀更多 LooksRare:https://grenade.tw/?s=Looksrare