Looking for feedback on open-source Rust PoW blockchain social network

Hi everyone,

I recently open-sourced my Rust project on GitHub and I would really appreciate feedback from Rust developers.

The project is called Opstan. It is an experimental Proof-of-Work blockchain written in Rust. The main idea is to explore whether a social-network-like system can work without a central server, where public channels and public posts are stored directly in blockchain blocks.

In traditional social networks, posts usually depend on a central platform: they can be deleted, hidden, edited, or controlled by one company. In Opstan, the goal is different: public channel history should be verifiable by running a node, similar to how blockchain transactions can be verified independently.

The project currently includes:

  • a working Rust node
  • Proof-of-Work block production
  • block and transaction validation
  • local blockchain storage
  • P2P networking
  • wallet-related functionality
  • public channel messages inside blocks
  • a simple GUI

The social part is still experimental, but the core idea is that users should be able to publish to public channels, and other users should be able to verify the history through the blockchain instead of trusting a central database.

GitHub:

I would especially appreciate feedback on:

  • general Rust code quality
  • project structure and module organization
  • P2P networking design
  • block and transaction validation
  • how public messages are stored in blocks
  • storage growth and long-term scalability
  • error handling
  • possible security issues
  • README clarity
  • anything that looks fragile, overcomplicated, or unsafe

I know that blockchain and social network projects can be controversial, so I want to clarify that this post is not about token price, trading, exchanges, investment, or promotion.

I am mainly looking for technical review, Rust best practices, architecture feedback, and advice on what should be improved before more people try to run or contribute to the project.

Thanks in advance for any feedback.

The reason bitcoin needed Proof of Work was to prevent double-spending. If your goal is just "social/communication platform without a central server" then that already exists in various forms (the most obvious example being email).

Fair point, but Opstan is not trying to replace private messaging like email.

The idea is about public channels and public social pages: news, opinions, forecasts, investigations, blogs — something closer to Twitter/X or public groups, but with history stored in the blockchain.

PoW gives that public history weight. Miners protect the chain, nodes verify it, and old posts cannot be silently edited or deleted later to make someone look better.

That matters for reputation. If a journalist, analyst, trader, or blogger has been publishing accurate work for years, that history remains visible. And if someone made bad calls or dishonest posts, they cannot simply delete the past and rebuild a fake reputation.

Email is federated, but in practice users still depend on mail servers and providers. Messages live on servers controlled by admins or companies. Opstan’s goal is different: public channel history is stored in blocks, protected by mining, and verifiable by anyone running a node.

Users choose what channels to read, but they can also inspect the full public history and decide for themselves whether a person or channel deserves trust.

Don't paste AI-generated text at me.

Mailing lists can be public.

Mailing lists work this way.

All internet-connected systems depend on the existence of servers.

(post deleted by author)

Why do you need mining? To get trusted nodes? I have several very promising use cases for the system you created, my major concern is how information is preserved in the network? If all nodes suddenly gone, you get nothing after. It's hardly possible for bitcoins, but for other information it is not exceptional.

You are right to ask this — preservation is the core question.

Mining is not about creating “trusted nodes.” It is about creating a trustless chain of history. Miners produce new blocks, secure previous blocks, and keep copies of the blockchain while the network continues to grow.

Of course, if every single node in any blockchain disappeared and every user deleted the data, the chain would be lost — even Bitcoin. But in mature PoW networks this has never happened, because miners and nodes have an incentive to keep the chain alive.

Opstan works by the same principle: posts and publications are preserved inside blocks, and the blockchain is replicated by the network. We already have more than 19,000 blocks, and every new miner/node helps preserve and protect that history.

If you have any suggestions or ideas, we'd love to hear them. We appreciate your advice and support and are open to collaboration and ready to share more details about the project and its structure.

Yes, but blockchain works a little differently. There are miners and public nodes that store the blockchain and mine, for example, around 100,000. A regular user connects to, say, eight of them and uses the blockchain, reads information, posts public messages, and so on. If one miner disconnects, there are still 99,999 miners left to support the network. The fast execution of the code allows for switching from one node to another in the event of a connection loss. No central servers are needed.

There can't be spam because the system is designed so that users read what they want to read, with no recommendation system or feed. The user reads what they've added. You can study this in detail in the code.

what's the incentive to mine tho? why not just have a dht with signed posts


Good question. A DHT with signed posts can prove who wrote something, but it does not create a global, immutable, economically protected history.

Signed posts solve authenticity: this key wrote this message.
But they do not fully solve:

  • who keeps the data available long-term;
  • which version of history is canonical;
  • how to prevent mass spam/Sybil abuse;
  • how to prove public order and timestamps;
  • how to make rewriting or burying old posts economically expensive.

That is where mining matters.

In Opstan, miners are not just “creating coins”. They are securing the public message history. Every block adds Proof-of-Work on top of previous posts, making old public channels harder and harder to rewrite. If someone has been publishing news, analysis, investigations, or predictions for years, that reputation becomes protected by the chain itself.

A DHT is useful for finding and distributing data, but by itself it is not the same as a decentralized public record. A blockchain gives a shared, verifiable timeline that every full node can independently check.

So the incentive to mine is:

  1. block rewards now;
  2. future transaction/posting fees if demand grows;
  3. supporting a censorship-resistant public network where reputation and history cannot be silently deleted or edited.

As you can see, for example, a message was released in the prediction channel and it will remain there forever above the block number and this is the history and reputation of the channel.

For my use cases, it shouldn't be a completely no owner network. Mines just help to keep it in a high scale, however the owner is still responsible for archiving all data, eliminating SPAM and abuse and conduct other administrative tasks.

Well, there are no administrators in the blockchain. But spam is physically impossible. Each user reads the talk channel they want.

But what prevents a SPAM in the channel?

So, only the first person to post a message in a channel can post there. The address that first posted in a channel, for example, THREE, becomes its owner. No one else can post in that channel. So spam is impossible.

PoW is used to arbitrate the next transaction without a central server. It's hugely energy-inefficient, so very costly and wasteful, and people put up with it in older blockchain systems only for the reward.

There are a number of other systems like PoS, DPoS, PoI, PoT, PoSpace, ... Isn't any of those better suited to what you're doing?

I understand the concern.

For Opstan, we chose Proof of Work because it is still the most proven model for a truly decentralized public blockchain. Bitcoin has been running for more than 15 years with extremely high stability, strong security, and no central authority deciding the state of the network.

There are many alternatives like PoS, DPoS, PoI, PoT and Proof of Space, but for a new system we did not want to experiment with the base security model. We preferred to use the mechanism that has already proven itself in the real world for many years.

Opstan is not only about transactions. It is about public posts, channels, history and reputation that should not depend on a central company or a small group of validators. That is why we believe PoW is the safest and most decentralized choice for the current stage.

Of course, the future is open. If the community grows and later agrees that another consensus model is better, a hard fork could be discussed, as other blockchains have done before. But for now, we chose the most reliable, secure and battle-tested algorithm.

Time will show what direction is best, but at this stage PoW gives Opstan the strongest foundation.

When I say "transaction", it's probably not the right technical word; I meant the selection of the next block.

Your argument to claim that PoW is the strongest foundation and the most proven model is that Bitcoin has been running longer, but 1) Bitcoin seems to be a completely different application, and 2) the argument would be the same if you chose coal to heat your house. Regarding safety, Bitcoin has shown that bigger farming capacity provided an advantage, so no system is perfect.

Paint me very sceptical. Regarding practice, I still think this choice is somewhat socially irresponsible and not very well adapted with regard to user motivation for an application such as this one.

I understand your scepticism, and honestly, I think it is a fair point.

PoW is not perfect, and I do not claim that it solves every problem. Larger mining power can create advantages, energy use is a real concern, and Bitcoin is indeed a very different application from a decentralized social network.

But Opstan is an experiment in applying a proven decentralized security model to public communication, reputation, and long-term history. Since this is one of the first attempts to build this kind of social application directly on its own PoW blockchain, we decided to start with the model that is the most battle-tested in practice.

Maybe users will like this approach, maybe they will not. We want to see how it works in the real world, with real users, miners, posts, public channels, and reputation built over time.

So I agree that the criticism is valid. But for now, we believe this design is worth testing openly, transparently, and with the community deciding whether it has real value.

This is a neat solution, and it works well for most of my use cases.

Have you read the code and rules? Do you have any other questions?