Skip to main content

· 3 min read

People use blockchains to make online transactions or payments. However, blockchain APIs and data storage are not built for data analysis purposes. This makes it hard for data scientists or analysts to step into those TB-level volumes of data and find out insights using SQL queries.

Blockroma is a blockchain indexer and explorer that extracts, transforms, and saves EVM-based blockchain data into PostgreSQL database, GraphQL APIs, and web-browsable UIs.

How does it work?

Ethererum blockchain serves all the block and transaction data via its JSON RPC API. The blockchain realtime indexer will listen to the latest block height and fetch the block accordingly. And meanwhile, the catchup indexer will scan a range of blocks. Then we apply parsers to those raw data and then insert results into the database.

Blockroma and Ethereum

Here is how to run Blockroma against Ethereum:

git clone [email protected]:stargately/blockroma.git
cd blockroma

nvm use lts/gallium
npm install

# prepare environment variable
cp ./.env.tmpl ./.env

In the .env file, fill in your database URL and mainnet endpoint, for example,

DATABASE_URL=postgres://localhost:5432/blockroma_eth
ETHEREUM_MAINNET_RPC_URL=https://mainnet.infura.io/v3/TODO_TOKEN

And then, you could customize the indexer in config/ethereum-mainnet.js

module.exports = {
chain: {
chainId: 1,
chainName: "Ethereum",
symbol: "ETH",
rpcUrl: process.env.ETHEREUM_MAINNET_RPC_URL,
decimals: 18,
networkPath: "",
},
indexer: {
catchup: {
enabled: false, // enable if you want
blocksBatchSize: 200,
blockNumberRanges: [
[0, "latest"], // range to scan
],
},
realtime: {
enabled: true,
},
},
};

Once you setup the indexer and explorer, you could run it with

NODE_ENV=production npm run build
NODE_CONFIG_ENV=ethereum-mainnet npm run start

How to browse Blockchain data?

Then, open your browser with http://localhost:4134/, and you can visit

  • http://localhost:4134/blocks for blocks
  • http://localhost:4134/txs for transactions
  • http://localhost:4134/api-gateway/ for APIs

Or simply tap your / key and input your hash, address or block height, and finally hit Enter to search.

Search with blockroma

How to run SQL queries on Ethereum?

Connect to the database that is serving Blockroma service and then you will see address, block, transaction for ETH and then ERC20, ERC721, ERC1155 token and tokenTransfer tables.

UpNext

Blockroma is still in development, and we recently added parsers for ERC20, ERC721, and ERC1155. The next step will be visualizing those parsed tokens and token transfers into web pages and exposing those data models as GraphQL APIs.

To keep posted with our latest progress, please star and fork our project on Github.

Star Blockroma on Github ⭐️

· 3 min read

Blockroma v0.1.0

Stargately is on a mission to provide the best DAO community development tools that anyone can use to start building on Web3. Blockroma is our latest product that allows anyone to view wallet addresses, transaction hashes, and block information on EVM compatible blockchains with a single click.

Find the Blockroma blockchain explorer at https://blockroma.com/

Blockroma plays an important role in the armada of multiple tools that we are putting in the hands of blockchain developers. It is built with the modern web stack - TypeScript, KOA, React, Apollo GraphQL, TypeORM, and PostgreSQL.

Blockroma’s ultimate goal is to be a multi-chain browser, and the first step is being Ethereum web3 compatible.

How Does Blockroma Work?

Part of the beauty of blockchain is that all transactions are stored on their respective chains in an open and transparent manner. Blockchain nodes store copies of all the information that is a part of these digital ledgers, but it is difficult to access this info unless you are running a node. Blockroma pulls information from blockchain nodes and combines it into an easily accessible search engine that anyone can view, explore, and query at any time.

blockchain explorers like Blockroma and Etherscan act as search engines to provide a view of the transactions and activities that are occurring on blockchains. But unlike Etherscan, Blockroma aims to be open-sourced, multi-chain and community-driven.

Key Features

  • View transaction data on EVM compatible blockchains.
  • Easy to find data for particular TX hashes, addresses, or blocks.
  • Developer-friendly with an open GraphQL API.

How Can You Use Blockroma?

Blockchain and crypto users, traders, and developers frequently reference blockchain explorers to see the status of their recent transactions and measure the pulse of on-chain activity to gauge the overall trends. blockchain explorers offer a straightforward way to explore on-chain data and browse many insights and opportunities. Use Blockroma to:

  • Observe activity on EVM compatible blockchains
  • View the latest transactions hashes
  • Keep track of the latest gas fees and transaction fees
  • Develop your own dApps by determining features you like
  • View information related to mining transactions
  • Analyze market activity that influences blockchain growth

This information can be critical to both crypto users and blockchain developers, so we must create platforms and tools to access it in the simplest ways possible.

Fork Blockroma on Github 👉

What’s Next?

Blockroma will continue to be a completely free and open-source blockchain explorer, and we will continue to increase its capabilities over time. In the future, we will add developer guide, NFT/ERC721 and ERC20 support. Additionally, we will provide more advanced data pulled from multiple chains that will inform developers and investors alike.

· One min read
Dora Noda

2021 Q4 Goal

ProjectStatus
BoomMo BetaDone
Beancount ProFailed

BoomMo Beta

Q4S6 (velocity 1)

  • onboard MSFT system design meetup

Beancount Pro

Q4S6 (velocity 4)

  • Dropbox integration
    • http-sync-server delete file
    • [fava] call file-sync-http-server to update file
    • widget gql endpoint and client for disconnect
    • widget & gql disconnect and clean up

Screen Shot 2021-12-31 at 7 12 37 PM

· One min read
Dora Noda

Q4 Goal

Last Sprint of 2021

ProjectStatus
BoomMo Beta😼 Ontrack
Beancount Pro😼 Ontrack
  • BoomMo Beta
    • User & Events
    • Multi-tenancy
  • Beancount Pro
    • Dropbox

BoomMo Beta

Last Sprint: Velocity: 10 tasks

  • fix missing publicId in events view page.
  • fix carrier theme type error.
  • mount to a specific domain
  • add theme color to allow customize button color
  • query community by public id
  • delete community
  • illustrations for empty list
  • edit / update community
  • misc fixes
  • add calendar invitation for event subscription

Q4S6

  • onboard MSFT system design meetup

Beancount Pro

Last Sprint: Velocity: 1 task

  • differentiate web and mobile analytics

Q4S6

  • Dropbox integration
    • http-sync-server delete file
    • http-sync-server update file
    • [fava] call file-sync-http-server to update file
    • widget gql endpoint and client for disconnect
    • widget & gql disconnect and clean up

· One min read
Dora Noda

Q4 Goal

2 Sprints (Q4S5, Q4S6) to go

ProjectStatus
BoomMo Beta🤨 At Risk for an unknown scope
Beancount Pro😼 Ontrack
  • BoomMo Beta: 18 unknown tasks
    • User & Events
    • Multi-tenancy
  • Beancount Pro: 10 tasks
    • Dropbox: 6 tasks

BoomMo Beta

Last Week: Velocity: 4 tasks / week

  • fix email template
  • public community home without event list for audience
  • fix storybook
  • public community home with event list for audience

Q4S5

  • Prepare for onboarding community owners
    • Finish ADR1. multi-tenancy community
    • all the subtasks associated

Beancount Pro

Last Week: Velocity: 6 tasks / week

  • Payment
    • add payment wall
    • prepare discount codes for pilot users
    • add configurations in pylon and mount in web-beancount
    • add cancel subscription
  • Dropbox integration
    • add Fava admin api to accept file upsert
    • migrate widget to netlify

Q4S5

  • Dropbox integration
    • http-sync-server delete file
    • http-sync-server update file
    • [fava] call file-sync-http-server to update file
    • widget gql endpoint and client for disconnect
    • widget & gql disconnect and clean up

· One min read
Dora Noda

Q4 Goal

ProjectStatus
BoomMo Beta🤨 At Risk for a larger scope
Beancount Pro😼 Ontrack

Projecting 50 tasks towards the end of Q4.

  • BoomMo Beta: 20 unknown tasks
    • User & Events
    • Multi-tenancy
  • Beancount Pro: 10 tasks
    • Payment: 4 tasks
    • Dropbox: 6 tasks

BoomMo Beta

Last Week: Velocity: 6 tasks / week

  • account settings error handling
  • fix bugs
    • post login not found
    • misc fixes
    • launch room fixes
  • removed unfinished features for ADR2. Audience MVP
  • draft ADR2. Audience MVP

This Week

  • Prepare for onboarding community owners
    • Finish ADR1. multi-tenancy community
    • all the subtasks associated

Beancount Pro

Last Week: Velocity: 2 tasks / week

Continue with Dropbox integration

  • deprecate slugified-email path
  • ADR1. user-ledger relationship and authz in the proxy

This Week

  • Dropbox integration
    • call file-sync-http-server to update file
    • add Fava admin api to accept file upsert
    • widget & gql disconnect and clean up
  • Payment
    • add configurations in pylon and mount in web-beancount

· 2 min read
Dora Noda

Q4 Goal

ProjectStatus
BoomMo Beta😼 Ontrack
Beancount Pro😼 Ontrack

BoomMo Beta

Last Week: Velocity: 9(2+6+1) tasks / week

  • finished multi-in and multi-out voting contract
  • Migrate Webpack to v5 from v4
  • prepare a route for admin api
  • if the user is the owner of the event, add an edit button to the public page
  • setup data backup plan
  • migrate to $START_COMMAND for choosing pkg to run
  • add nextjs-pages
  • add feature flag for leftNavigationBar
  • sync with SPLVM community

This Week

  • Prepare for onboarding community owners
    • Finish ADR1. multi-tenancy community
    • all the subtasks associated
  • Bug fixes
    • launch room fixes
    • account settings error handling
  • removed unfinished features for ADR2. Audience MVP

Beancount Pro

Last Week: Velocity: 2 tasks / week

Continue with Dropbox integration

  • add toggle for "billed monthly or yearly"
  • fix a security issue

This Week

  • Dropbox integration
    • call file-sync-http-server to update file
    • add Fava admin api to accept file upsert
    • widget & gql disconnect and clean up
  • Payment
    • add configurations in pylon and mount in web-beancount
  • start mobile planning

· One min read
Dora Noda

Q4 Goal

ProjectStatus
BoomMo Beta😼 Ontrack
Beancount Pro😼 Ontrack

BoomMo Beta

Last Week: Velocity: 3 tasks / week

  • Add one vote contract
  • support other kinds of events
  • start to spike calendar invite

This Week

  • 10x.pub
    • hire PM or community manager
    • add more events
    • planning
  • Audience
    • spike calendar invite
  • User & Events
    • setup data backup plan
  • Payout and integrations UX
    • planning

Beancount Pro

Last Week: Velocity: 4 tasks / week

Continue with Dropbox integration

  • add pricing plan
  • Fix TypeError: ctx.setState is not a function
  • interviewed 2 engineering candidates
  • differentiate web and fava analytics

This Week

  • Fava bug fixes
  • Fava-side work of dropbox integration
    • [fava] call file-sync-http-server to update file
    • [Fava] add Fava admin api to accept file upsert
  • Add payment and pricing plan
    • payment wall

· 2 min read
Dora Noda

Q4 Goal

ProjectStatus
BoomMo Beta😼 Ontrack
Beancount Pro😼 Ontrack

BoomMo Beta

Last Week: Velocity: 8 tasks / week

  • fix: added debounce to chat submit.
  • fix editor style does not match viewing style
  • [chat] Beautify chat messages
  • [chat] Add denounce to chat submit
  • add a page to update user profile
  • add left navigation bar to dashboard
  • fix edit meeting will lose managed zoom meeting info
  • Paste image in the editor

This Week

  • 10x.pub
    • hire PM or community manager
    • add more events
    • planning
  • Audience
    • spike calendar invite
  • User & Events
    • support other kinds of events
    • setup data backup plan
  • Payout and integrations UX
    • planning

Beancount Pro

Last Week: Velocity: 8 tasks / week

Continue with Dropbox integration

  • integrations sequalize data model
  • sync files to dropbox
  • add webhook to receive dropbox file updates
  • implement getActiveAccessToken
  • deploy http-sync-server and add service-to-service auth
  • add Fava admin api to accept file upsert
  • add update-ledger-file admin api
  • clean up the prefix in absolute path

This Week

  • Fava bug fixes
  • Fava-side work of dropbox integration
    • [fava] call file-sync-http-server to update file
    • [Fava] add Fava admin api to accept file upsert
  • Add payment and pricing plan
    • payment wall
    • pricing plan

· One min read
Mike Thrift

Hi, there! 👋 We are writing this status update in the hope that we are making meaningful progress every week. And we cannot wait to serve our customers and our communities better by moving fast enough!

Q4 Goal

ProjectStatus
BoomMo Beta😼 Ontrack
Beancount Pro😼 Ontrack

BoomMo Beta

Last Week

This Week

  • refactor meeting experiences to a different pkg
  • Paste image in the editor
  • [chat] Beautify chat messages
  • [chat] Add denounce to chat submit
  • [User & Events] mount to a specific domain
  • edit meeting will lose managed zoom meeting info

Beancount Pro

Last Week

  • widget & gql show connected status
  • implement getActiveAccessToken

This Week

  • sync files to dropbox
  • widget & gql disconnect and clean up
  • non-blocking sync operations