I thank you for your feedback. Generally, it's meant to be an experiment to find out if it's even possible today to create a blockchain using AI and completely without programming knowledge. The requirements are probably too high; I'll lower them over time if this doesn't work out.
Yesterday, I tried using Cursor.com but didn't get very far. Cursor uses well-known models, such as Claude.ai's 3.5 Sonnet. The user interface is very simple and might be too simple for non-programmers. I didn't even get to use the software because I simply didn't know how to use it effectively. Maybe it was because I didn't have the Pro version. At least, I gave up quickly on that and asked ChatGPT which AI model it would recommend. The suggestions from ChatGPT were the following, in this order:
OpenAI's GPT (like ChatGPT, Code Interpreter, or GPT-4 Code Pro)
GitHub Copilot
Tabnine
Replit Ghostwriter
ChatGPT itself had never heard of GPT-4 Code Pro, which makes this selection a bit challenging. I then asked Google and came across Amazon Q. The information on the website, as usual, is incomprehensible for non-programmers. However, there seems to be a plugin that can be integrated with various programs like Visual Studio Code. I downloaded and installed the plugin for this. A prerequisite for using it is an AWS account. After some testing, I realized that this is more of a tool that helps find errors in existing code or improve it. Programming a new blockchain from scratch is difficult for novices and not particularly user-friendly because you input prompts in a small window and the responses are such that you have to scroll a lot. So, Amazon Q isn't what I'm looking for either.
As you can see, I haven't made much progress yet, but I'm not giving up. I will keep trying to find the AI model that is suitable for programming a blockchain. I still have some options if my initial plan doesn't work out. But don't worry, I'm not giving up that easily. The year has just begun, and I'm sure I'll find the model I can work with.
I've been thinking back and forth about why I've hit the limits of various models so far, and I think I've found an answer. In the past, whenever new code was supposed to be added, I told the model to show me the entire code again for error prevention. However, since these models don't have "long-term memory," this led to errors being made, and all AI models struggled with the entire codebase. Then, I thought about which model I had gone the furthest with, and that was clearly Claude.ai.
The goal of creating an extremely fast blockchain with up to 500,000 TPS is probably very challenging or even unattainable for current AI models, so at the start, my aim is just to develop a blockchain where transactions can be processed as quickly as possible. That doesn't mean I've completely abandoned my original goal; rather, I want to start this way, and once we get this thing running, we'll see what we can implement to make the blockchain faster and more comprehensive. But it remains: everything I do, I will try to achieve only with the help of AI models. I will keep you regularly updated on the progress or setbacks. I'm open to all improvement suggestions and ideas.
I'm trying to create my own blockchain using only AI, with no programming knowledge.
For the first time, I feel like I've made significant progress. The new approach with http://Claude.ai seems to work, at least so far. As I mentioned in my last post, all models had trouble remembering things after a certain point and especially posting the entire code again with changes or additions. I've therefore changed my approach and now only ask http://Claude.ai for the code for smaller changes and additions. With this method, I've now reached over 1400 lines of code.
I started with simpler specifications than originally planned, with the intention of gradually incorporating new features into the code. I'm still using Rust as the programming language, as every AI model so far has recommended it. I've made significant progress with this method, and here are the features we've integrated into the code so far:
Basic Blockchain Functionality
- A complete blockchain structure with blocks and transactions
- Proof of Work mining system with adjustable difficulty
- Automatic difficulty adjustment based on block time
- A halving system for mining rewards (might be changed)
Wallet System
- Generation of wallets with public and private keys
- Shortened wallet addresses through hash functions (16 characters)
- Secure storage of wallet information in files
- Transaction validation and signing
Validator System
- Proof of Stake elements through validator registration
- Stake-based validator selection
- Distribution of mining rewards among validators
- Security mechanisms against stake manipulation
Naming System
- Registration of user-friendly names for wallet addresses
- Resolution of names to addresses and vice versa
- Validation of name registrations
- Integration into the transaction system
Network Protocol
- Peer-to-peer communication between nodes
- Synchronization of blocks and transactions
- Management of peer connections
- Graceful shutdown of nodes
Planned Next Steps:
- Implementation of a decentralized consensus mechanism
- Expansion of the network protocol to include automatic peer discovery
- Development of a user-friendly CLI interface
- Integration of a Merkle tree for more efficient transaction verification
- Implementation of a smart contract system
As always, I'm open to any constructive criticism, suggestions, and tips.
I'm trying to build a blockchain exclusively with the help of AI models without any programming knowledge.
In the last 3 days, I've made really significant progress. In my last post, we were at about 1,400 lines of code; now we're at around 4,700 lines, though this includes comments that weren't part of it before. I'm still using Claude.ai with a single account and a business account that allows a total of 5 team accounts. Since I have so much code and I have to upload the current code to Claude for reference repeatedly, the limitations become apparent pretty quickly. I then try to continue in another account, but I have to precisely inform it about how far we've gotten, what should be done, what has been done, and what still needs to be done. If you're not very specific here, the model makes mistakes. The most common errors are that the code isn't fully checked, and things get repeated that are already integrated.
I want to prepare the code so we can launch a testnet in the near future. Here are the things that have already been implemented:
- Basic node discovery with peer structure, reputation, and services
- Bootstrap node configuration
- Basic error handling with a NodeError system
- Async TCP connections and message broadcasting
- Simple mempool management
- CLI commands
- Basic test documentation
The following things are still missing and will be done next:
- Rate limiting and DoS protection are largely missing
- The fork resolution is only rudimentary
- The RocksDB integration needs to be completed
- The checkpoint system is still missing
- The test suite needs to be expanded
If you have ideas, suggestions, or constructive criticism, please let me know. I welcome all your comments.
[moderator's note: consecutive posts merged]