I wanted a list of components in the Blockstack architecture that are still centralized.
Is there anyone that can help where I can find this information?
Can you define “centralized”?
There are some things that are built to be decentralized but are currently pseudo-centralized due to lack of third party implementations. This includes:
- default browser (browser.blockstack.org) is the only one finished right now (some third party ones, such as extensions, are in development)
- default gaia hub (hub.blockstack.org) is the only one available on the default browser, therefore all of your data is centralized on this until more people implement gaia hubs and/or an interface is added to the browser (or another browser is created with such options)
- default core node (core.blockstack.org) should be configurable in the browser(?)
- default transaction server (for name acquisition etc) should be configurable(?)
Thanks Michael for the answer,
By centralized I mean:
- It has a central server to response the user requests
- Important data are stored in a central database
I think your answer is already assuming these
I believe it does. For more information you can read the whitepaper here: https://blockstack.org/whitepaper.pdf
It’s fairly simple to understand.
I’ve read this paper months ago, actually one of the reasons that I asked this question was that I couldn’t find fairly deep technical documents on the architecture, enough to be sure to choose Blockstack as the enabling tech for my dapp.
This paper is very focused on methods and processes that proves the robustness of main components in the architecture (like the DNS) but there are many details if you want to design a complex system which are not discussed enough in this paper or other Blockstack documents.
It has a central server to response the user requests
You can change which Core node to use for user/address lookups in the API settings page on the Browser. Note that these are separate URL endpoints – you can mix and match different Core nodes or search indexes for different uses as you see fit.
Important data are stored in a central database. I think your answer is already assuming these
It is (ostensibly) possible for a user to run their own Gaia hub, and end up hosting all of their data. However, Blockstack PBC provides a default Gaia hub which gets used by default when the user signs up for the first time. We’re working on a user-friendly way to prompt the user during onboarding which Gaia hub they want to use (e.g. they can use Blockstack PBC’s, they can use one recommended by the application they’re using, or they can enter the URL to their favorite Gaia hub).
@MichaelFedora is correct in that there are some other defaults that are provided by Blockstack PBC at this time – in particular, the transaction broadcaster is there to allow users to queue up and register their names without having to wait for the transactions to confirm (before we had this service, users would register an on-chain name and then turn their laptops off, thereby causing the registration to get cancelled or aborted part-way through). It should be possible to select a different transaction broadcaster API endpoint of the user’s choice, but this isn’t implemented yet in the API settings page.