So this question got asked of me recently, not in the same words but along those lines and I wanted to see if anybody can explain this to me.
Most witnesses probably use cloud servers, so I'm not sure who exactly has the answer, but the question is, how exactly do you access what we could call the "back-end", (sounds cheeky) if you're not using an application designed for us non-developers... Are there programs used on laptops for accessing the data on a blockchain? Or can only a server be used? Could anybody actually show me an example of what it looks like? Is it that you only see it by asking it questions? (Like pull the most recently paid out posts above x amount etc)
I'm sure this sounds silly to some, but I couldn't answer without asking people who actually use whatever it is that's used to see the data without a website or app already designed for pulling it... Feels sorta like a chicken or the egg question when I try to figure it out... 🙈
You can interact with the nodes, which are what provide access to the blockchain. There are some programming interfaces that make it pretty easy. I use those for my various scripts. As long as some nodes are operating the blockchain cannot easily be shut down. There some apps (such as Ecency) that remove the need to use the web to use Hive. We need this diversity to keep it running.
I know some witnesses have a witness PC at their own place so they have full control. From what I understand it doesn't have to be all that powerful, but it needs a fair bit of memory and storage. It would be interesting to know what the minimum spec would cost. I am out of touch with the latest hardware. I last built a regular PC some years ago.
Wow so I can use Ecency on my phone even if I've no Internet connection?? .... or did I totally misunderstand what you meant there?
I think I did 😂
Er, no. I just meant that it doesn't need the web. The app can use any of the Hive nodes, so may not rely on the Ecency one being available. I'm not sure what is required to upload images as they require storage off the blockchain.
It was very early in the morning 🤣😅
I'm gonna try ecency. Hearing good things, they've obviously survived well.
I'm using the Ecency app right now. I use that on my phone and peakd on the PC.
The blockchain itself is a data structure, and it is stored in files just like pretty much any other data. If you ran a witness, you could open up the files with a text editor and see the raw data, though it would look pretty meaningless.
If I still had my old witness server I could show you, but it has long been deleted.
As for how you access it, most witnesses interact with the CLI, ie. the Command Line Interface. But technically that is interacting with the Application Program Interface (API), not the blockchain directly, as you generally don't interact directly with raw data structures, you interface with an application or an API.
So it would be like You -> CLI -> API -> hived application -> blockchain. There may be more layers that I'm not aware of.
Would HAF be something to check out? (maybe it is still in Beta). From my understanding it is a more readable database of the blockchain continually updates so it is more user friendly for app developers.
I don't know enough about it to say.
Thanks! I could have just asked you directly like I normally do 😂
It really depends on what you are hoping to look at but if you wanna be a little techie it is pretty easy to write some javascript that will let you do things like view the most recent block and its contents I think the hivejs library would be the best way to do that.
Any up to date Hive node will have the whole blockchain, but you have to enable certain plugins in the config to access different API calls. Some plugins cover some data and others cover other data. And then there's running Hivemind which acts as an intermediate layer for all data, most useful for front ends and apps.
For instance, this is my plugin line in config.ini from the node I use to query and interact with the blockchain, usually with cli_wallet:
plugin = account_by_key account_by_key_api network_broadcast_api condenser_api wallet_bridge_api