Giter Club home page Giter Club logo

Comments (3)

zomglings avatar zomglings commented on June 7, 2024

One possible architecture:

  1. We create a private journal called moonstream-data. Only our crawlers, the Moonstream API, and the bugout team have access to this journal.
  2. Crawlers put all crawled data into the moonstream-data journal using tags that denote the source type (e.g. ethereum_blockchain, ethereum_txpool, etc.).
  3. When a user calls the /stream endpoint on Moonstream API, Moonstream queries the moonstream-data journal for events from that user's subscriptions and returns only those events back to the user.

from api.

zomglings avatar zomglings commented on June 7, 2024

For some sources, we will show the user all crawled data (e.g. ethereum_blockchain).

For other sources, we will only show the user data from when their subscription started (e.g. ethereum_txpool). This prevents us from leaking information to one user about when other users became interested in an address in the transaction pool.

from api.

zomglings avatar zomglings commented on June 7, 2024

Two invariants:

  1. Single journal (moonstream-data) into which all crawled data goes.
  2. Users only have access to moonstream-data through the Moonstream API, and their access is determined by their subscriptions.

This way, we don't have to duplicate data from multiple sources across multiple users, which will save us a lot in terms of storage costs.

from api.

Related Issues (20)

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.