How do I setup lookup node and seed node? Is that even possible? Are those centralised?
Lookup nodes are hosted by Zilliqa. Seed nodes are hosted by Zilliqa, exchanges, wallet, explorers and other service providers.
So… one can say Zilliqa is centralised and under control of one entity?
In my opinion, lookup and seed nodes serves a gateway from Users to the validating nodes (DS/Shard). Their primary responsibility is to store historical states and serve service requests. In order to be able to ensure 99% uptime for such gateways, the people hosting these nodes need to have a stake in supporting the network. As such, these seed nodes are hosted by Zilliqa, exchanges, wallet, explorers and other service providers.
One thing we are exploring to do in future is to incorporate staking/slashing in order for public member to serve as a seed node. If the seed node goes offline for a certain amount of time, their stake will be slashed. This will take probably take some time to implement.
Historical states in bitcoin and other cryptocurrencies is stored in just plain nodes.
So in my opinion Zilliqa is not fully distributed, at least for now. I dont see any reason for people not being able to host lookup and seed nodes on their own.
Is the source code for seed nodes and lookup nodes open source?
There is no need to store historical states if there is finality in the chain. Hence, DS and Shard nodes do not store historical states, but only stores latest states and the DS blocks (merkle root of merkle roots).
I already explained the reason why lookup/seed nodes needs to have a constant uptime. This is similar to super nodes in Bitcoin/Ethereum, or INFURA nodes for Ethereum. A staking mechanism that slashes bad behaviours can be a way to open lookup/seed node joining to the public.
Yes, the whole codebase is open-source. You can learn about the codebase here: https://github.com/Zilliqa/Zilliqa
Lookup and seed nodes receive 5% of rewards. There already is incentive to setup lookup and seed nodes. Sure some kind of punishing might be needed for nodes going offline.
UPDATE: Ethereum network will work fine if you disable INFURA nodes. Will Zilliqa work if all lookup/seed nodes go offline?