How does Solana blockchain achieve scalability with 50K TPS ?

Solana Proof of History breakthrough:

Let’s break it down

sha256(GENISIS_STRING) = 3969095c1b5b03fa8144d5fb9f0cca5b632875db982a1f6404b21c4d0f71e8f1
sha256(3969095c1b5b03fa8144d5fb9f0cca5b632875db982a1f6404b21c4d0f71e8f1) = 521f0afc4cbe6726bbac7aa554bff62081be9d77bf3044f6eae952f7348386d3
sha256(521f0afc4cbe6726bbac7aa554bff62081be9d77bf3044f6eae952f7348386d3) = 1314f1dcb8d49d8517f09d4c88bfe9aa72b0599a864d35e9d00d3bb60a2ed69c
[
{
"round": 1,
"input": "GENISIS_STRING",
"output": "3969095c1b5b03fa8144d5fb9f0cca5b632875db982a1f6404b21c4d0f71e8f1"
},
{
"round": 2,
"input": "3969095c1b5b03fa8144d5fb9f0cca5b632875db982a1f6404b21c4d0f71e8f1",
"output": "521f0afc4cbe6726bbac7aa554bff62081be9d77bf3044f6eae952f7348386d3"
},
{
"round": 3,
"input": "521f0afc4cbe6726bbac7aa554bff62081be9d77bf3044f6eae952f7348386d3",
"output": "1314f1dcb8d49d8517f09d4c88bfe9aa72b0599a864d35e9d00d3bb60a2ed69c"
}
]
// create some proof of history
let mut sha256 = Sha256::new();
let mut hashes = Vec::new();
sha256.input_str("GENISIS_STRING");
println!("{:?}", hashes[0]);
for i in 1..1000000 {
sha256 = Sha256::new();
sha256.input_str(hashes[i - 1].as_str());
hashes.push(sha256.result_str());
}
// now verify that proof in parallel...
let mut children = vec![];
let proofs = Arc::new(hashes);
for i in 0..10 {
let val = proofs.clone();
children.push(thread::spawn(move || {
for j in i * 100000..i * 100000 + 100000 {
let proof_str = if j == 0 {
"GENISIS_STRING"
} else {
val[j - 1].as_str()
};
let mut hasher = Sha256::new();
hasher.input_str(proof_str);
let proof = val[j].as_str();
let output = hasher.result_str();
println!("output N°{:?}: {:?}", j, output);
println!("proof N°{:?}: {:?}", j, proof);
if proof != output {
panic!("hello panic");
}
}
}));
}

Ok, I get proof of history! What’s the point?

Now, what about Proof of Stake?

Back to Proof of history.

Conclusion:

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store