- Background
- 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 seemed interesting, so I created my own blog on it. They also created 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 something for technical people, but rather for those who are not familiar with computers. They claim that the data is "permanently stored on the blockchain," but I don't agree with that. If the data is stored on Web3 and becomes unmodifiable by others, then there is no problem. However, if it is stored on IPFS and not pinned, it may disappear forever during node garbage collection. Also, I am not familiar with blockchain synchronization, so I am not sure if I can fully synchronize their chain. If not, it would be a private chain, and the metadata would not be permanently preserved. 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 to directly use IPFS for my blog. Their platform has limited customization options, and I am not sure if there are alternative components, such as Ethereum JSON-RPC. However, since their services seem to be open source, as long as this chain can be synchronized, it is not a big problem to set up my own RPC.
Directly uploading through the IPFS client is the most native approach, 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. So, I also 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 very good. However, there is a problem that 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#
Accessing my blog directly after deploying it with 4everland is good, but it feels similar to other service providers. Who knows if it reads the web pages from its own server or from the IPFS network? So, I wanted a better way to access it from IPFS and prove that it is indeed on IPFS.
Directly accessing my blog through the gateway is not a problem, but the CID changes every time it is deployed, which is inconvenient for accessing it. 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 websites recorded with dnslink... and every time the CID changes, I have to update my DNS records. Later, I found out that there is something called IPNS, and I took a look at the 4everland console. It turns out that it generates a fixed IPNS for each website, and dnslink can point to the IPNS. 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 the gateway 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 I can create a separate plugin to use their network to provide comment functionality for my static blog. It would be a good choice (after all, the transaction fees on the Ethereum public chain are too expensive 😂).
Better Permanent Storage#
As I 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. 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 also stores data in a distributed manner and can provide a certain level 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 achieve my Forever plan 😝).
However, I am also 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.