Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add a chapter about physical location #3

Merged
merged 13 commits into from
Nov 7, 2024
Merged

Add a chapter about physical location #3

merged 13 commits into from
Nov 7, 2024

Conversation

ruuda
Copy link
Contributor

@ruuda ruuda commented Oct 9, 2024

Background

As a company we often receive RFIs that include a question about location, and we often get questions from potential clients about location. I usually push back on that question because it is not well specified and can be interpreted in many ways, and a specific answer will go out of date quickly anyway, but I’m tired of having to explain this every time.

That’s why I wrote this chapter, so we can have one standard answer to point people to when the topic comes up again. My goal for this is:

  • Explain why there isn’t always a clear location where “it” runs.
  • Explain what goes into picking a location:
    • In order to clarify that the optimal location varies over time.
    • In order to clarify that restrictions on region make our life harder and they should only be a last resort.
  • Explain that even if we give a concrete answer, it will go out of date quickly.

If this chapter doesn’t answer people’s specific question, I included three possible interpretations of “where does it run” at the end of the chapter. We can use this to ask for clarification if people need a more concrete answer to check the box.

Note to reviewers

  • The handbook and this repository are public! Keep in mind that any review comments are public, please don’t put super specific details in here and definitely no confidential information.
  • Keep in mind that this is an approximation, everything depends. I tried to strike a balance between explaining the nuance and having a document that people might reasonably read; we don’t have space to include the full technical details and subtleties of every network we operate.

@@ -0,0 +1,497 @@
# Physical location

We often get asked “Where do your validators run?”

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

0/5

Suggested change
We often get asked “Where do your validators run?”
We often get asked “Where do your nodes run?”

Copy link

@Szymongib Szymongib left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good, just few typos or superficial/opinionated comments 👍

Comment on lines +24 to +48
Software consists of computer programs that get executed by a chip.
In our case,
that chip is inside a server,
which is in a rack,
which is in a building,
which is part of a data center facility.
That facility has a clear physical location.
It’s located in a country, and it has an address.
We can say that the program is running in that particular location.

Blockchains are _distributed systems_.
They don’t consist of a single program running on a single machine,
they are emergent systems that arise
from many instances of a program interacting with each other.
These instances can run on different machines,
in different physical locations.
While a particular instance has a well-defined location,
we can’t really answer the question of “where” the blockchain network is,
more specifically than “everywhere where people run nodes”,
which might be as broad as “everywhere on Earth”.[^1]

A blockchain network as a whole does not have a clearly defined location then,
but at Chorus One we don’t operate the entire blockchain network,
we operate validators that are _part_ of the network.
Don’t these validators at least have a clearly defined location?

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we need to go to such details? Since it is a part of "Network Handbook", I would assume readers familiarity with basic blockchain concepts. I am fine leaving it in if you think it can be useful in cases of less technical people.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, I think the target audience of the “Network Handbook” drifted a bit. (Or the handbook is suffering from scope-creep 😬). Section 2, the “Node Software Guide” is definitely aimed at readers who are building blockchains, so supposedly they know this. Section 1, “How Chorus One Operates Nodes”, I originally intended for it to be background for node software authors, but since then I found it mostly useful as a reference in RFIs. (Which is also the main motivation for writing this new chapter.) You’d think the people sending those RFIs are familiar with basic concepts, and in some of them you can see from the type of questions that they are, but for others, it’s also very clear that they have no clue.

Comment on lines +64 to +65
[^1]: Probably except for Antarctica.
Antarctica doesn’t have a very stable high-bandwidth Internet connection.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Running in the middle of the ocean might be challenging as well if we want to be that specific 😉

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In the 1960s, there were pirate radio stations who didn’t have the right license to use the frequency band they were broadcasting in, operated from ships that sailed just far enough off-shore to be in international waters. But yeah I don’t think we’ll operate a validator from a nuclear submarine with Starlink uplink any time soon :-D

src/chorus-one/physical-location.md Outdated Show resolved Hide resolved
src/chorus-one/physical-location.md Outdated Show resolved Hide resolved
src/chorus-one/physical-location.md Outdated Show resolved Hide resolved
src/chorus-one/physical-location.md Outdated Show resolved Hide resolved
src/chorus-one/physical-location.md Outdated Show resolved Hide resolved
src/chorus-one/physical-location.md Outdated Show resolved Hide resolved
src/chorus-one/physical-location.md Show resolved Hide resolved
This question comes up so often. I want to have a document that explains
why the question is wrong, and why the answer if you ask it anwyay is
"it's complicated" and "it depends" and "that's not really what you want
to know, is it?".
This adds the section with answers to what I guess most companies that
send us RFIs want to know. (Or well, I don't know what they really want
to *know*, but these are my intepretations of the questions they send).
Thanks Szymon! Also fixes one more typo I found.
Thanks Kamil for reviewing this. It's even more complex than I thought!
Thanks again Kamil, my view of Ethereum was still too simplified!
@ruuda ruuda merged commit 937bbdc into master Nov 7, 2024
1 check passed
@ruuda ruuda deleted the location branch November 7, 2024 17:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants