Dialogue with the LooksRare team: Talk about the underlying technology, user experience and team building in detail
星球君的朋友们
2022-03-29 05:44
本文约4485字,阅读全文需要约18分钟
LooksRare will release the API to the public in the near future.

secondary title

text

Modular smart contracts allow all new functions to be deployed in a timely manner, and the security of users' assets is the most important issue for the team

1. Can you compare the difference between LooksRare's contract and OpenSea and what optimizations LooksRare has made?

JurassicPunk: Wyvern (the protocol used by OpenSea) has been one of the most used smart contracts on Ethereum, and it has undoubtedly helped establish the foundation for the development of the NFT industry.

LooksRare is also built on a similar architecture, with an off-chain/on-chain system, but the rest of the architecture is very different. We are highly concerned about the safety of users, so we adopt a modular system of smart contracts, sign with EIP-712 (a signature method that is easily understood by humans), and cancel all pending order tools with one click and other innovative methods.

This modular contract provides benefits such as adding new ways of matching transactions and allowing future business logic changes to be incorporated. The protocol also focuses on creators, and its innovation is to support ERC2981, provide on-chain royalty registration for projects, and pay royalties instantly in each transaction.

2. Why do you deploy so many contracts independently, such as using royalty contracts to deploy FeeSetter, FeeManager, and FeeRegistry?

Basically, more modularity means that the system is easier to review and understand (the classic divide and conquer paradigm we often find in software development), and it is also easier to add new features in the future, or fix bugs.

3. What evidence is there to prove that you built it from scratch and did not use the OpenSea backend?

Gizmo: You can see that LooksRare uses EIP712 to sign (users of this signature can clearly know the content of their signature), which was not supported by OpenSea when we released it. So our whole system is not compatible with OpenSea. Our backend for trading, indexing and everything related to exchanges is completely independent of OpenSea. We built our own trading system from scratch, that's why LooksRare can keep trading when OpenSea fails. Next time OpenSea crashes, you can try it out.

4. Technically speaking, what was the most difficult thing when building this NFT market? How do you solve this problem?

Shisui: Synchronization between LooksRare and events happening on chains outside of LooksRare is the big problem. For example, if you transfer an NFT to a different wallet, but it's still listed on LR, we need to catch that. As you probably know, expired orders are a big problem after launch. In general, the synchronization of on-chain and off-chain data is always a big challenge. We need powerful and fast scripts for indexing.

Nirato: From the perspective of the frontend: manage the state between the frontend, the backend and the blockchain. Not sure if we'll fix this, but we're always looking for ways to indicate to users the most accurate current state of NFTs.

Card Grid Performance:safety

safety: We use a lot of third-party APIs and services, and they don't always respond to security issues. They have their own schedule for fixes/support issues, it's out of our control and it's really frustrating for us (look at your Trezor). It's a never-ending tug-of-war between security and functionality. How can we solve this problem? We try to reach out to any other development teams who are willing to communicate with us.

5. What are the backstage and frontend technical functions that the respective team members are most proud of?

Shisui: For me it should be the series quote function. Adding liquidity to NFTs is a very exciting feature. The series quotation function greatly increases the liquidity of a series NFT. I have a different answer like everyone else!

JurassicPunk: For me, I'm pretty happy about the general push to adopt EIP-712 signatures in the industry!

6. What technology do you use to index NFT data, and how do you deal with failures and API limitations for a series of NFTs?

Hex: We've built our own indexer in Java by parsing blocks and ERC721/ERC1155 (also market) related events, which includes parsing their metadata using criteria like tokenURI(); we have a fail-allowed for each transfer event and retry strategy.

Regarding rate limiting, if we notice it, we will contact the project side, otherwise we will adjust the policy when fetching their metadata/images; we also have our own IPFS gateway, which helps prevent rate limiting on this side (arweave will also be available soon).

7. You know there are many cases of hacking in private key based wallets. What are your thoughts on working with non-private key oriented wallet projects like argent?

JurassicPunk: Smart contract wallets are already supported in terms of smart contract exchanges, but not implemented on the front end. This is something the team will consider supporting in the future.

8. How scalable is your infrastructure and can you sustain 10x user growth over the next 12 months? Or 100x or 1000x?

Hex: We use a 3rd party hosting service that allows almost any extension (the cost is the only"obstacle"), so we're pretty confident about it; since we launched, we've been able to sustain up to 6x the average daily traffic; so we're pretty confident about 10x, not sure about 1000x, but we're going to work on it, especially is in the next 12 months.

We hired an SRE a few weeks ago that will help with this.

9. Will there be a native casting feature, or will Manifold be a future solution?

JurassicPunk:Yes, there will be in the future. The team is still discussing specific specifications, but it will likely be released in multiple product iterations.

10. Will you develop an API for accessing historical and current NFT data?

Hex: Yes, like NFT's"historical events"Same; you will be able to query all information of any series or nft via public API, including mint/transfer/quote/list/unlist/...; regarding historical metadata, this is something we haven't considered yet, but if there is demand , we may also provide this.

11. How do you catch bugs early in the development process? (Unit testing? Automated testing? Human testing? Bug reporting? Etc.)

JurassicPunk: For the smart contract/Solidity part, all contracts are fully tested, including more than 95% branch/function coverage on deployed contracts. We use unit tests and scenario tests, using multiple frameworks such as Hardhat (with Waffle) and Forge (with DS-test). We also rely on security tools such as Slither.

We also work with external security firms/individuals to help review Solidity code.

Nirato: As far as the frontend is concerned, we are currently writing unit tests and have an army of manual testers. It's not enough, and it's a pain point for us right now. We definitely need to do better and are actively looking for QA engineers (recognize anyone? Active referrals are welcome). Finding QA engineers with blockchain/web3 experience is a challenge we are doing our best to meet. We all agree 1000% that we need E2E and integration testing ASAP.

A valuable asset is the community of testers (not bragging). Without them we would have thousands of bugs.

12. Will Looksrare support multiple chains like polygon or solana in the future? Or some second layer solution like stakware?

JurrasicPunk: Yes, the team has been investigating support for all second-layer solutions, but as @Shisui (lead dev) wrote, it depends on user needs.

Also, it’s not sure if the demand is from NFT bridging (e.g. transferring BAYC to Arbitrum, transacting on L2), or from native layer 2 NFTs with lower transaction fees and more demand (or both) have!).

secondary title

user experience:

Try to make the user experience comfortable in each product

1. When will the public API be open to the public?

Hex: The public API has been released to the first people, which includes third parties and users, to make sure everything goes smoothly; our goal is to release the public API this week or next.

2. Is the reinvestment function of WETH optional? Can I turn it off if I enable it?

JurassicPunk: The automatic reinvestment function (sell WETH-->LOOKS) will be an additional layer of contracts on the current WETH/LOOKS pledge contract. Users can decide to use either of these two contracts according to their preferences.

3. Are you actively working on improving front-end performance?

Nirato: The short answer... yes! The development team releases multiple updates/features/fixes every day. The team tries to focus primarily on new features/improvements, but there is still technical debt and we allocate a large portion of our time to these efforts.

4. I'm a big fan of yours, but the front end makes my laptop sound like a jet is taking off. It's not a very snappy experience either. It might take a while for things to load.

Nirato: We're very proud of the front end and its speed, and we want every user to experience that (well, at least we try to). We just recently updated our image provider, and the loading speed of images has improved significantly. We've also made real improvements in loading gifs and videos, but it's still a challenge for phone users and older computers. It's an ongoing struggle, but stability and performance are top priorities.

We're always exploring new ways to reduce latency and bottlenecks.

secondary title

Team building:

Technical personnel account for the majority of the team, decentralized office

1. How many recruits are there for front-end engineers and back-end engineers (API Focus)? Do you need voice conferencing for work communication? Or is it just file transfers?

Shisui: We currently have 3 frontends, 4 backends (including DB), 1 dev, 1 solidity dev, and me. We use Discord as our main communication tool (with daily meetings).

2. How do members of the development team communicate? Do you both work in the same office or from home?

Shisui: We use Discord as our main communication tool. Everyone is working remotely, we don't have any offices and we have no plans to have one because we don't want to be tied down to one particular country. Our members are now located in the US, Europe and Asia. Decentralization is the DNA of LooksRare.

3. If there is an emergency, how does the LooksRare team respond? Is there an incident response playbook?

Shisui: We have many monitoring tools and several different ways to contact each other, depending on criticality. Usually, when something happens, we're there within minutes. We have a dedicated chat channel internally where we do postmortems on all the events.

secondary title

other:

Calculation method of LOOKS token airdrop

1. Hello everyone, I would like to know how you specify/determine the number of tokens and the level of token airdrops? Also, how is eligibility calculated (e.g. based on OpenSeea's API?)

JurrasicPunk: The mastermind behind the airdrop levels and numbers is Guts, our co-founder. He is very experienced in this area, and after many rounds of rigorous calculations, he has reached his current level.

For collecting transaction volume, we use the subgraph of TheGraph protocol to collect on-chain data of the OpenSea market. This subgraph indexes calls to the Wyvern protocol and uses Uniswap to handle the conversion of non-ETH currency transactions to ETH. This is quite complicated as we have to build integrations for multiple currencies like MANA, GALA etc.

星球君的朋友们
作者文库