# 对话LooksRare团队：详谈底层技术、用户体验和团队建设

By [Odaily](https://paragraph.com/@odaily1) · 2022-03-29

---

[https://www.odaily.news/post/5177521](https://www.odaily.news/post/5177521)

_LooksRare 将在近期面向公众发布 API。_

2022年3月28日下午，LooksRare团队在Discord 举行AMA，讨论LooksRare技术相关问题，并回答社区用户所关心的技术方面的问题。参与AMA的项目方成员包括：开发主管 Shisui，后端主管 hex，前端主管Nirato，以及产品经理Gizmo。

![](https://storage.googleapis.com/papyrus_images/7b6bdcab9dc03f327be8f21849076d19abb49594d7870d662b9790a54273737d.jpg)

> ### 底层技术：

**模块化的智能合约让所有新功能都可以及时部署，用户的资产安全是团队最注重的问题**

**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等建立整合。

---

*Originally published on [Odaily](https://paragraph.com/@odaily1/looksrare-2)*
