In another major milestone for the Space Marmots project and the Chia blockchain, we have successfully encoded a 256×256 Space Marmot PNG image directly onto Chia’s testnet10 blockchain. This was one of the core promises of the project and the completion of this Proof of Concept shows that we are able to execute on that vision.
This PoC was not the creation of an NFT, nor did it utilize any of our production code we will be using for the final product. Instead we used Sebastjan Trepca’s Beacon-Coin software to write about 118KB of Base64 data into the payload of a coloured coin. Why is this important? Because it means that from a theoretical perspective there are no constraints to what we are attempting hard coded into the blockchain, and that we are able to do so inside the cost limits of a single transaction.
In order to get the proof, you will need to sync the Chia Testnet10 blockchain with installation instructions here. You will then need to add some information to the Config.yaml config file after install (version 1.2.11 does not connect to testnet10 by default, but the now defunct testnet7). That info is available below.
testnet10:
AGG_SIG_ME_ADDITIONAL_DATA: ae83525ba8d1dd3f09b277de18ca3e43fc0af20d20c4b3e92ef2a48bd291ccb2
DIFFICULTY_CONSTANT_FACTOR: 10052721566054
DIFFICULTY_STARTING: 30
EPOCH_BLOCKS: 768
GENESIS_CHALLENGE: ae83525ba8d1dd3f09b277de18ca3e43fc0af20d20c4b3e92ef2a48bd291ccb2
GENESIS_PRE_FARM_FARMER_PUZZLE_HASH: 3d8765d3a597ec1d99663f6c9816d915b9f68613ac94009884c4addaefcce6af
GENESIS_PRE_FARM_POOL_PUZZLE_HASH: d23da14695a188ae5708dd152263c4db883eb27edeb936178d4d988b8f3ce5fc
MEMPOOL_BLOCK_BUFFER: 10
MIN_PLOT_SIZE: 18
NETWORK_TYPE: 1
And make the following changes to other sections of config.yaml
and changed selected_network: testnet10
in full_node i did
dns_servers:
- dns-introducer-testnet10.chia.net
introducer_peer:
host: introducer-testnet10.chia.net
port: 58444
Once you have done all that you are able to install Beacon-coin from the instructions above, start your testnet node and run the following command to see the Marmot:
beacon-coin get-data 0x1ce9faace88da94bb6c9bdcf1f9bd7611e46559a326c0a9e85b851f847fdbfc2
That will give you the base64 of the image plus some metadata about the on-chain image that will look something like this:
{"version": 2, "data": [[0, ["base64", "iVBORw0KGgoAAAANSUhEUgAAAQAAAAE....
Take the data from the ‘base64’ pair and then run the following command to convert it back to a PNG
echo base64 string | base64 -d > marmot.png
And voila! You have the marmot pulled directly off-chain, and the proof that on-chain Marmot NFTs are going to be a reality. We think this is a big deal, and we are hoping the Chia community shares our enthusiasm. Drop by the Space Marmots discord server, or check out the site and join the mailing list for more information and to share in our excitement.
Congratulations! This is a major milestone demonstrating the unique strengths of the chia blockchain. Thank you for sharing the methods publicly because it’ll allow other chia projects to build on this accomplishment.
That is cool indeed, but could you shed some light on how Chia’s design prevents blockchain size blowing up from coin payloads like this? I imagine it has been somehow addressed from the start.
Cost of the transactions
DB will become bigger?Affect the transaction speed on the chain?Eliminate most nodes?
This is bad. Illegal or illicit material could be stored directly on chain spread across multiple transactions/blocks with no way to remove. Now running a fullnode makes you a complicit accomplice in its storage and distribution.
Who tried to spam the network with nft tokens? As you decide, write please, I will buy coins.