- Introduction
- Approach of the technical team
- Direct access from IPFS
- Better permanent storage
- Thoughts
xLog, Crossbell Blockchain#
Recently, I came across something interesting called xLog. I tried it out and found that it is a project on the Crossbell blockchain that uses smart contracts to operate and store metadata, while storing actual data on IPFS. It caught my attention, so I created my own blog on it. They also developed a social system similar to Twitter called Crossbell, which is very user-friendly and brings Web3 to ordinary users. They have written a tutorial on how to set up their project, which can be done in 5 minutes on the Web3 blog.
However, using xLog is not just for technical people, but also for those who are not familiar with computers. They claim that the data is "permanently stored on the blockchain," but I am skeptical about it. If the data is stored on Web3 and cannot be modified by others, that's fine. However, if it is stored on IPFS and not pinned, it may disappear forever during the node's garbage collection process. Also, I am not familiar with blockchain synchronization, so I am not sure if I can fully sync their chain. If not, it would be a private chain, and the metadata would not be permanently retained. So, I can only say that this platform is Web3, which ensures that information does not result in a 404 error due to censorship, but it cannot preserve information in the long run.
Approach of the Technical Team#
As a technical person, it is better for me to directly use IPFS for my blog. The xLog platform has limited customization options, and I am not sure if there are alternative components available, such as Ethereum JSON-RPC. However, their services seem to be open source, so as long as this chain can be synced, it is not a big problem to set up my own RPC. The most native way is to directly upload using an IPFS client, but I don't like installing unknown software on my computer. Currently, I write my blog directly on Github or Gitlab and deploy it using the static page service provider mentioned earlier. Therefore, I hope to have a similar service provider that can help me upload my blog to IPFS. The service provider I found is 4EVERLAND. It can bind to a Git repository and listen for changes. When there are changes, it will automatically deploy to IPFS. They also provide a free gateway to directly access the content on IPFS, which is great. However, there is one problem. For some reason, their deployment template does not include Jekyll statements, and the frontend cannot be customized. So, I can only modify the deployment statements to what I want by capturing packets.
Direct Access from IPFS#
After deploying with 4everland, direct access is also good. However, it feels similar to other service providers. Who knows if it reads the webpage from its own server or from the IPFS network? So, I wanted to find a better way to access it from IPFS and prove that it is indeed on IPFS. Directly accessing my blog through the gateway is fine, but the CID changes every time it is deployed, which is inconvenient for accessing. Later, I heard that I can record the CID in DNS using a method called dnslink, so that I can access it through a fixed and easy-to-remember way. However, at that time, I didn't know how to access a website recorded with dnslink. Also, the CID changes every time it is deployed, so do I have to update my DNS records after each deployment? Later, I found out that there is something called IPNS, and I took a look at the 4everland console. It turns out that each website they deploy also generates a fixed IPNS, which can be pointed to using dnslink. But how to access it? IPFS does not have an IP address, and TXT records alone are not enough, right? Later, I learned that I need to use CNAME resolution to point to the gateway in order to access it. After setting it up, every time I access the gateway, it will automatically resolve the dnslink in the TXT record. Isn't this more flexible than xLog? However, I cannot store comment data with this method. Maybe xLog's specialty is social interaction, as their main project, Crossbell, is a social platform. I hope to create a separate plugin that uses their network to provide comment functionality for my static blog. It is also a good choice (after all, the transaction fees on the Ethereum public chain are too expensive 😂).
Better Permanent Storage#
As mentioned earlier, IPFS can prevent tampering, but it is not a solution for permanent storage. Storing on a public chain is one way of achieving permanent storage, but the cost is too high for me to afford. Later, I learned about something called Arweave, which can permanently store data, but it is not free. You need to pay AR coins to store data on the chain. Fortunately, 4EVERLAND provides some free quotas for uploading to the AR network, which is great. So, in the future, I will write the address of each upload to my Github Releases, further increasing the possibility of permanent storage for my blog.
I also heard about something called ZeroNet, which is said to store data in a distributed manner and can also achieve a certain degree of permanent storage, according to my group friends. However, I found it very difficult to access and it is no longer maintained, so I gave up on it.
Thoughts#
Web3 is developing better and better. I hope more people can participate and create an unrestricted network together. (And also implement my Forever plan 😝)
However, I am concerned about the Crossbell project (the chain used by xLog). As an unregulated platform, once it becomes well-known, it will definitely be abused to death. I hope they can survive longer.