Skip to main content

Project & Development Update #17

February 1, 2023

Good morning, pilots. Fresh out of the oven, the next project update is here.

We've prepared a seven-course reading experience for y'all. To commence, a palate-cleansing progress list to prepare your neurons for our hand-crafted subgraph section. Next, we’ll be infusing the project with a new proposal tool for DAO governance. To follow, we’ll present a visual stimulus platter consisting of GUI progress and a collage of succulent in-game avatars, accompanied by a bold pairing of animated ship propulsions. Finishing the main course, a whimsical visit from The Learner will inform you of seasonal improvements to our Machine Learning models. For dessert, we’ll be using sorcery to bring messages back from the dead. Please enjoy and leave us a 5 star yelp review.

Bonus Join us in 15 Minutes for a Live Team Q&A taking place within the server. We'll be hanging out and answering questions related to today's new update and whatever else you want!

Let's dig in.👇

🔹 Progress

  • Set up continuous integration for the self-hosted graph node
  • Drafted design concepts for proposal builder system
  • Created the base for the sample proposal builders and started work on templates
  • Created contracts for experimental session keys feature
  • Completed pitch and diagrams for future liquidity bootstrapping proposals
  • Drafted contracts for future liquidity bootstrapping proposals
  • Deployed the first version of our ML API and set up continuous integration for it
  • Added message deletion and /oops to C.A.I.S.
  • Added ML spam and trust modules to C.A.I.S. for internal testing within the server
  • Content development for pre-launch awareness campaign
  • Completed ~30 in-game avatars and ~60 avatar backgrounds
  • Completed additional in-game ship propulsion animations
  • Continued revamps of frigates for various manufacturers (60x60 -> 80x80)
  • Drafted "Citadel Reading Materials & Research List" for community

🔸 Utilizing The Graph

What it is

The Graph is a system for indexing blockchain data so that it can be efficiently used from apps. By automatically listening for events, synchronizing database updates, and hosting a GraphQL frontend, The Graph significantly decreases the amount of effort required to create an API that serves blockchain data.

What it enables

The Graph has greatly reduced the amount of code that we have to maintain in order to back the game, construction bay, and governance UIs. It has also made it easy for us to expose everything as a single API through the client library, without forcing dependents to query more data than necessary. As an added bonus, it keeps track of its entire history by block number, which has made it convenient to build scripts that analyze historical data for Machinations without maintaining additional stateful services.

Going the extra mile (self-hosting)

Historically, there have been two ways of using The Graph: the decentralized protocol and the hosted service. The hosted service is a mature, free (subsidized) way of deploying APIs to be hosted by The Graph Foundation, The Graph’s parent company. The decentralized protocol is a newer network of indexers that provide verifiably correct data for financial incentive. Because of its security properties, developing the decentralized protocol to maturity has always been a priority of The Graph Foundation.

In June of last year, The Graph Foundation announced that they would end support for The Graph’s hosted service in Q1 2023 and focus fully on the decentralized protocol. We believe that this was a great decision on their part, but the decentralized protocol does not support Polygon, and there is no official timeline on when that might change. This means that after Q1, there will be no officially supported way for us to deploy APIs that index our Polygon-based contracts, which are the source of truth for all game data.

To work around this, we have created our own, self-hosted, deployment of The Graph. Getting a single graph node to deploy wasn’t very difficult, but it took significant effort to ensure that our deployment would scale to handle large query and transaction volumes without downtime. Ultimately, we believe that the effort will be well worth it for the convenience of using The Graph, and the peace of mind in controlling our own hosting. Still, we eagerly await the day that the decentralized protocol gets Polygon support and we can decentralize another piece of our project.

🔸 GUI - Progress

Updated Windows

Since our last update, we've made some improvements to a few windows. While the changes are small, we figured it'd still be nice to share them with you guys. To showcase them, we’ve prepared a before and after comparison in the embeds below.

Mining Ledger (Updated)

Annotated changesSide-by-side without annotationsBeforeAfter

Roaming Ledger (Updated)

Annotated changesSide-by-side without annotationsBeforeAfter

Asteroid Belt - Ship Manager (Updated)

Annotated changesSide-by-side without annotations
Labeled window for minerLabeled window for marauderLabeled window for minerLabeled window for marauder

New Windows

Here are a few windows which previously haven't been seen in past updates which we're excited to have on launch for the game. These are not annotated, as they're quite straightforward. Though of course if you have any questions simply ping me in chat!

Wallet Ledger

Transaction list and analysisIncome and expenses charts

Customize Avatar

Avatar and background selection

As always, feedback is welcome and highly encouraged on anything displayed here! Feel free to ping us in chat and ask any questions on whatever you're curious about.

🔸 Proposal Builder (WIP)

What is it?

The Proposal Builder is a tool designed to empower anyone to easily submit an onchain proposal to the DAO. This process could previously mean needing to prepare the proposal body from scratch, reading the docs to figure out which calls to attach, and finally submitting all that through Tally. Now, pilots can simply select from a list of proposal templates, explain their rationale, and submit an onchain proposal directly through the builder interface. This turns a multi-hour, multi-site, multi-discipline process into a few button clicks and a transaction prompt.

As with the rest of the platform, the Proposal Builder is designed to be modular and expand over time with a growing catalogue of pre-written templates contributed by both us and hopefully the community as the project's needs evolve.

Why it's important

Active participation in governance is a prerequisite to meaningful decentralization, and thus accessibility to participation is paramount to our success. The Proposal Builder helps to democratize the core mechanic of our governance system: submitting proposals. We want to make it as frictionless as possible for anyone in the community to submit proposals. Crucially, the proposal builder includes pre-written code to remove each of the Core Team's special access privileges, ensuring that full accountability is in place from day one.

How it's used

Proposal template list page

You’ll begin by visiting the proposal site and choosing from a list of base templates depending on the intent of your proposal. Keep in mind, these designs are in their early stages and do not represent the final product.

Proposal builder - start page

Choosing a template will open the primary Proposal Builder wizard interface that will walk you through the whole process.

Proposal builder - inputs page

Depending on the template, the wizard will prompt you to enter any relevant inputs, including your explanation and rationale.

Proposal builder - summary page

The last step of the wizard will present you with a summary of your fully prepared proposal to review. If everything looks good, you can then continue to sign a transaction to submit your proposal onchain.

🔹 Avatars + Backgrounds - Progress

In our last update we shared a proof of concept for in-game pilot avatars as a means of incorporating more social elements into the Citadel.

...Welp, they’re done. Here's a randomly generated assortment of how they look:

Random assortment of avatars

We've completed four base pilots for each of the manufacturers for a total of 24 available avatars to be available on launch. To offer another degree of customization, we've also created 54 unique backgrounds that pair with your avatar to cement your in-game identity.

As a reminder, these will exist in-game and be free for all players to use. They are not PFP NFTs, and they will not be sold, because that's wack yo. Instead, access to certain avatars and backgrounds will be gated through game achievements, DAO participation, and ownership of specific ships.

🔹 Animated Ship Propulsions - Progress

Note: When we were ruminating on this update section we accidentally spilled some REDACTED all over it. Thankfully, most of you are fluent in REDACTED anyways.

The REDACTED upgrades to REDACTED REDACTED REDACTED REDACTED have continued to come to REDACTED. REDACTED propulsion REDACTED, unique REDACTED REDACTED manufacturer, will REDACTED further REDACTED player REDACTED and REDACTED up REDACTED marketplaces. We almost can't REDACTED how REDACTED REDACTED yee-haw! REDACTED launch REDACTED REDACTED them!

REDACTEDREDACTED

🔹 ML Models with The Learner

Progress

We’re happy to announce that the proposal quality model has matured enough for us to begin internal testing on real data. To facilitate this, we have deployed a preliminary version of the model as an API. Along the way, we’ve made several technical improvements to the Citadel ML pipeline to smooth the process from model to service.

Additionally, as we made progress on the proposal quality model, we realized that it would be fairly straightforward to modify it for use with discussion within the Citadel Discord. For the effort it would require, it seemed like a no-brainer, and so we went for it. From our testing so far, it is very effective at differentiating true (even casual) discussion from the grinding that we all despise. While we haven’t built anything out yet, we already have a few ideas in mind for getting more pilots on the whitelist and providing reputation scoring for contributors.

What's next

After we got everything deployed and set up for internal testing, we returned to work on improving the models as much as possible. To this end, we’ve been testing various BERT models for spam detection and user trust prediction. Instead of going directly from text to score, BERT models learn by predicting the next word in an input sentence. The output of a BERT model is a learned embedding for each word you send in, which can be understood as an approximation of each English word and its context based on the words that tend to appear near it in the training data. This is incredibly appealing, because a single BERT model can be reused to solve many problems that involve language. However, BERT models are context sensitive and our space has many domain-specific words. This necessitates a domain-specific BERT model. We’ve found several versions trained on crypto-specific datasets, so we’re actively exploring their potential as a base for our models.

We’re perpetually surprised by the rate at which the machine learning space is developing. At the time we wrote the last ML update section, ChatGPT hadn't even been released. Not two months later, we (and everyone else on earth) are looking to integrate it into a core application. The future of ML, at the Citadel and beyond, looks bright, and we couldn't be more thrilled.

🔹 Messages from the Dead

C.A.I.S. and Dyno

As senior station chat poets may be aware, occasionally well-crafted messages get obliterated by Dyno before they ever get the chance to mature, despite their authors' good intentions.

Previously, it was impossible for these local chads to recover the content of their messages or even understand which words caused them to be filtered by Dyno. While this wasn't a big deal for true spam, it was pretty frustrating for pilots trying to send longer messages that accidentally triggered the filter, and might have been preventing engagement in some capacity.

To solve this problem, we've expanded C.A.I.S.’s functionality so that it can take the reigns from Dyno.

Now, if your message gets deleted, you can use the /oops command to privately retrieve its content and an explanation of what went wrong. Hopefully, this new system will make it a bit less stressful to write longer messages within the server and less heartbreaking when deletion does occur.

P.S. Continuing our favorite update tradition, we've added as a new server emoji. There is no specific reason for this one, I just think it's rad.