GithubHelp home page GithubHelp logo

l2beat / l2beat Goto Github PK

View Code? Open in Web Editor NEW
467.0 14.0 345.0 111.11 MB

L2BEAT is an analytics and research website about Ethereum layer two (L2) scaling solutions.

Home Page: https://l2beat.com

License: MIT License

TypeScript 80.37% JavaScript 0.21% CSS 0.20% HTML 0.03% Dockerfile 0.02% Shell 0.02% Python 0.10% Solidity 19.07%
ethereum layer-2 research

l2beat's Introduction

L2BEAT 💓

L2BEAT (Layer 2 Beat) is a website dedicated to providing research and statistics about the very exciting layer 2 technology on Ethereum.

You can visit the site yourself at https://www.l2beat.com/.

Contributing

We welcome and encourage contributions. To learn about the project structure and contributions please read CONTRIBUTING.md.

🔍 Here is also a visual step-by-step guide for creating a Pull Request - link

License

We believe in knowledge sharing and open access. Our code is and will remain open source with the permissive MIT license.

Versioning and publishing (tooling)

Some of the sub-packages are published to NPM. We use a tool called changesets to manage versioning, cross-dependency versioning and publishing new versions to NPM. When you make a change, before mergin to master:

  • run yarn changeset and mark the packages you wish to publish, select what kind of a change it is (major,minor,patch) and provide the summary of the changes

When you want to publish all previous changes to NPM:

  • now run yarn changeset version, this will change the generated .changeset/file.md into an entry into CHANGELOG.md and package.json in changed packages

After your PR with changed CHANGELOG.md and package.json is merged into main, a CI step will run which will try to publish all change changes.

l2beat's People

Contributors

adamiak avatar aminlatifi avatar antooni avatar bergdev22 avatar claudioantonio avatar github-actions[bot] avatar huberacht avatar imxeno avatar jet86 avatar joshuacolvin0 avatar krauspt avatar krzkaczor avatar l2beatsinkas avatar lgingerich avatar lucadonnoh avatar luke7211 avatar maciekop-l2b avatar maciekzygmunt avatar mateuszradomski avatar michalsidzej avatar paszkowskidamian avatar piotrekklis avatar radinat avatar sdlyy avatar sekuba avatar sin6pi7 avatar sz-piotr avatar torztomasz avatar vincfurc avatar zzq0826 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

l2beat's Issues

Group the projects by L2

Currently the projects list seems to be mixing L2s (Optimism, zkSync, etc.) and L2 projects (dYdX and ImmutableX). Instead I suggest that the projects be grouped by L2, like in the following "mockup":

  NAME VALUE LOCKED MARKET SHARE TECH 1 DAY %
1. Loopring $200.42M 60.37% zk-rollup +8.72%
2. Optimism $106.47M 32.07% +9.84%
 Synthetix $106.47M 32.07% optimistic rollup +9.84%
3. StarkEx $15.29M 4.61% +4.30%
 DeversiFi $??.??M ?.??% validium +?.??%
 dYdX $14.73M 4.44% zk-rollup +4.60%
 ImmutableX $561.32K 0.17% zk-rollup -7.97%
4. zkSync $9.24M 2.78% zk-rollup +3.57%
5. Aztec $534.08K 0.16% +6.41%
 zk.money $534.08K 0.16% zk-rollup +6.41%
6. Fuel $4.22 0.00% optimistic rollup -0.17%

NB: Despite not having the DeversiFi numbers, I added it as an example that tech can vary for the same L2.

I guess you could also add "validium, zk-rollup" to the StarkEx row, but I'm not sure whether or not that would improve readability of the list:

  NAME VALUE LOCKED MARKET SHARE TECH 1 DAY %
...
3. StarkEx $15.29M 4.61% validium, zk-rollup +4.30%

Upgradability of Polygon Hermez is potentially inaccurate

A question was raised on Polygon's Discord server, to which one of the responses from the team was:
https://discord.com/channels/635865020172861441/910852199905624124/914840921814732851

image

According to the response that I've received for my initial question, the delay variable for the following smart contract is responsible for the upgradability delay:

https://etherscan.io/address/0xf7b20368Fe3Da5CD40EA43d61F52B23145544Ec3#readContract

604800 / 86400 = 7

If this is the case, the Upgradeability of Polygon Hermez needs to be changed from 'Yes' to '7 days delay'.

Update classification to some projects (zkRollups vs Validium)

Clearly differentiate between zkRollups and Validium architectures:

  • ImmutableX is Validium not zkRollup
  • zkSwap is likely to be Validium as well
  • add DeversiFi (which is a Validium)
    Update "Learn about Layer2" with reference to articles explaining Rollups vs Validium, etc...

Clearly differentiate between intent and implementation risk on the summary page

Right now it's not visually clear that, for example Optimism is using Fraud Proofs, or that it is possible, when Operator is down for users to submit state batch and relay L2 -> L1 message themselves. Maybe the text for State validation should say "Fraud proofs" with red colour and hint "Currently disabled". Similarly the "Operator Down" - can be explained that it is possbile, however right now only Sequencer and Relayer can push tx on L1 and relay them

Add Unverified Smart Contracts warning to the summary page

Unverified Smart Contracts should be considered a major no-no in our space. Nobody except from in-the-know devs and testers should ever use contracts that are unverified. If the Rollup is using even a single unverified smart contract, we should display the big red warning in the summary page to attract user (and developers team) attention

Fuel "Current level of decentralization" incorrect

The "Current level of decentralization" for Fuel is incorrectly described as "Low" for the following reasons.

Test deployment on mainnet?
no verified source on etherscan

  1. Fuel was the first optimistic rollup to be deployed to mainnet, and was deployed in 2020.
  2. The source code can be deterministically compiled and verified against the bytecode on the Ethereum blockchain. Verifying code through a centralized block explorer does not decentralized make. We provide a helper script here: https://github.com/FuelLabs/fuel/blob/2ca18a536dfa8717e743138a4463347b3f2574dd/package.json#L30 that can be used with just a bit of elbow grease.

Explain the difference between L1 and L2

There is a lot of confusion in the community about what should be called an L2. The intention of l2beat.com is to provide transparent and verifiable info about the state of "L2" for Ethereum L1 chain. Other blockchains (e.g. Solana, Avalanche, Fantom, BSC, Polychain, etc...) are L1s. The main page of l2beat.com should explain the approach and the difference clearly

Fix Synthetix Optimism bridge

Synthetix Optimism bridge has migrated to a new version - data pipeline should be fixed to reflect the migration and report SNX locked in the bridge properly again

Possible outdated contract in Aztec configuration

the page for Aztec lists two different versions of the TurboVerifier contract

  • under Smart Contracts, links to 0x7379…A2ba which has an unverified dependency. this lines up with the risk described in the risks sections: the source code of unverified contracts contains malicious code (CRITICAL).

  • under References, links to 0xbc87.... this looks like a newer version of TurboVerifier, which does not have the unverified dependency issue.

chart code

Hey, I find our chart on L2Beat quite beautiful and I also noticed that it's using svg. I'm the author of an SVG line chart library: https://github.com/rugpullindex/svg-line-chart I use it to instantly give users a chart upon page load. And looking at yours, I was wondering what library you're using or if it's your implementation.

I'm interested in reading the code. Maybe there's even a chance to collab on a chart lib?

Arbitrum "Permissionless" and "Force TX mechanism" descriptions

The key here is that for both of these, the sequencer can be avoided entirely.
I.e., Force TX mechanism currently reads

  • "Sequencer can be forced to append a txn to the rollup"
    This actually isn't true, but there is a force tx mechanism; a user posts their transaction directly on chain, and eventually it will be made available for validators to include in assertions (no sequencer involvement).

Likewise, permissionless reads

  • "Only the sequencer can produce blocks
    Any body can be a validator and make assertions (i.e., propose state updates to Arbitrum). The Sequencer only has a special privilege to propose fast soft-confirmed updates before things hit the L1 (i.e., before an assertion is made). I think I'd argue that this effectively makes Arbitrum itself a "Permissionless? Yes", tho this is debatable, since the sequencer itself is a permissioned entity.

(As I've said elsewhere, this is by far the best L2 tracker I've seen — thanks for putting it together!)

Add HBT (Hubiits) token for Nahmii.

Nahmii has some value locked in HBT tokens. However this token has the same symbol as the Habitat token. This requires a rework of how we identify tokens.

Prove dYdX is a rollup

There were some concerns raised on Twitter. Find out where the data is stored on chain.

Make the "Log" vs. "Linear" selection for the graph axis persistent

A month or two ago, L2beat added a selection button to enable a Logarithmic scale on the y-axis. This is super useful. Thanks.

But as it stands, the web app resets the axis view to Linear every time the page is opened, or refreshed.

This forces the user to have to manually reselect the "Log" view each time if they prefer logarithmic scales.

(personal opinion: log scales are vastly better than linear scales for properly analyzing exponential growth, which a very great deal of blockchain adoption data is. E.g., growth in overall L2 TVL in the recent week/month; or the growth of Arbitrum L2 in any reasonable time period now.)
But hey, let's make it user-selectable, and persistent.

Could you consider adding a way to store the user choice used on the L2beat.com website to be persistent? A non-tracking cookie? Or something else?

Update TVL every hour

With the exponential growth of L2, it'd be awesome to see the TVL change hour-by-hour.

Layer2.finance TVL reported incorrectly

Layer2.finance batches deposits in one place and then uses these funds to invest in various DeFi protocols. That's why watching TVL only on the bridge contract ends up greatly underestimating TVL.

CC: @Dominator008, do you have any library that can help us with this?

Allow switch between USD or ETH denominated TVL

As TVL in USD varies depending on the coin price (in USD), sometimes a better metric is to use ETH as quote currency. This is especially true for Rollups that take only ETH (like ImmutibleX). OTOH dYdX takes only USDC as a deposit, so USD is a better quote currency. More generic Rollups that take many tokens may benefit further from token breakdown, but initially switch between USD/ETH should add a lot of insight

📌 L2BEAT Roadmap 09.2021

This document outlines our focused tasks for L2BEAT starting September 2021. It minimally indicates intent to investigate tasks or contribute to an implementation. Nothing is set in stone, but we will strive to complete these tasks in a reasonable timeframe.

Architecture changes

Frontend improvements

Research

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.