Sycamore Integration with Cosmoshub

Hi Friends! How are your taxes going? This is danb with Defiant Labs and i wanted to hear your opinions on using the treasury to help fund the integration of cosmoshub-4 with app.sycamore.tax! Sycamore is a front end user experience built on top of Defiant Labs opensource cosmos-tax-cli indexer.

We would love feedback and discussion on this proposal before submitting it on-chain!

Summary

In 2022, Defiant Labs created the cosmos-tax-cli. This is an open-source indexer that can index any cosmos node into a database. Additionally, we created a GUI called Sycamore, which allows any user to request their tax data in popular CSV formats. This tool is targeted at both Validators who want to report their staking income, and the degen user who wants to track all their chain activity. We are currently operational on osmosis-1 and looking to expand to more chains including cosmoshub-4.

Cosmos-tax-cli

The cosmos-tax-cli supports many types of cosmos messages. Although this tool is open source and free for anyone to use or improve, it’s not meant to be run by every individual user. We do not expect an individual user to create an archive node, index the entire block chain into a SQL DB, and then run queries against the database for their individual tax needs. Instead, it’s a community tool, where a representative, in this case, Defiant Labs, hosts the infrastructure, indexes the chain, and provides a user-friendly web app that all individuals can use.

Sycamore

In early 2023, Defiant created Sycamore as a way for individual users to get CSVs of their transactions in popular crypto tax formats in a user-friendly environment. It’s as simple as typing in your address, choosing a format, and clicking generate.

Historic Expense

We received a grant in 2022 to build the initial version of the cosmos-tax-cli. This consisted of 3 milestone payments. This funding ended in Q4 of 2022, but we loved this tool so much we keep building it hoping that others will continue to support us as we attempt to make taxes in cosmos easier. Our current expenses are 2 Devs at 70/H each, and me doing the devops, deployments, testing, devrel. I value this at 70/h as well, but have not taken any pay yet. We typically work about 40/hours a month on this as we all also have full time jobs. This makes our burn rate at $8,400 per month. In addition to development costs, we have cloud computing costs. These range anywhere from $1000-$3000 a month depending on what types of nodes we need to spin up to index the data.

Predicted Expenses

If approved, we will be indexing around 14 million blocks, storing them in our Cloud SQL environment, integrating the data into Sycamore, and hosting the required infrastructure for tax season 2023. We will be doing custom go development work required to make our indexer compatible with items unique to cosmoshub, like the tendermint liquidity module, and in the future, inter chain security message types. We are asking for 15K for this custom development. These will be added into the opensource cosmos-tax-cli and free for anyone to use / build upon in the future. And then 15K for indexing all the data and hosting / maintaining it to the cosmos community for the year. The total ask will be 30K USD worth of ATOM.

Infrastructure Choices

Defiant Labs runs in Google Cloud. Google cloud is an industry leader in kubernetes which was the major consideration in choosing this platform. The Google Infrastructure is managed by terraform, and versioned controlled in github. Our repositories use github actions to ensure coding standards and testing for all supporting tools. Additionally, Docker images are created for every PR, and we use these to test each issue before adding a change to the main release. All deployments are defined in kubernetes. As some of you know, kubernetes can run anywhere, even in decentralized environments like Akash. If there was ever an issue with Google, we would be able to quickly pivot to another kubernetes provider and get back to indexing.

Infrastructure Components

  • SQL - We use a mysql offering from Google called Cloud SQL. This is a managed DB that gives us the flexibility to scale up and down as needed, without the need to hire specialized database administrators. Instead, the members on our team are well rounded Devs/Devops engineers who have many years of enterprise experience working with cloud computing. We use Google Kubernetes Engine to run all of our compute loads. This is another managed service that allows us to scale up and down as needed without having a specialized etcd person.
  • Compute - Inside of K8(Kubernetes) we run several compute loads.
    • Archive Node - These can range anywhere from 5-20 TB depending on the chain and year. We don’t need these indefinitely, and also leverage offerings from node providers like DSRV fwhen it makes technical sense.
    • Indexer - This is a k8 job that crawls block by block, looking at all transactions and messages, and structuring them into our cloud SQL DB. We use 1 indexer per chain.
    • API - This api will let any user, application, or authorized commercial team query the database for specific cosmos events. Right now the primary application that uses this api is sycamore.
    • Sycamore – This is a light weight app that connects everything together. It takes the users input, formats into an API request, submits the request, and gives the users the response.