You all wanted this Pchain code review, you know who you are. When Pchain? When Pchain? Well, now Pchain. Not sure if you’ll love it but I’m not here to butter anyone’s butt.
So what is Pchain – “The first native multichain system that supports EVM in the world. Making large scale blockchain applications possible.” Okay, Ethereum Virtual Machine for the uninitiated… but count me as one of them, because what does native multichain mean?
“One main chain and multiple derived chains. “
“Consensus with hierarchical sharding pipeline”
“POS based multi layer sharding mechanism with a novel pipeline design that tremendously improves the performance of transactions.”
Let’s just go to the code instead.
Hasn’t seen commits in a few months, but let’s assume it’s the usual China / Github argument.
I see ethermint. Not a great start.
go-ethereum and tendermint. Different handlers per chainID. We are going to see a multi array chain model aren’t we?
Nothing really happening in server, let’s move on;
StartP2P, NewChainReactor(), AddReactor, they have my attention, let’s have a look.
Let’s start from CLI, so we want to checkout, GetCMInstance, StartP2P, LoadAndStartMainChain, LoadChains, StartChains, and StartInspectEvent.
LoadMainChain, MakeTendermintNode, and getConsensus are our targets.
Yup, just an array of ethermint chains. You interact with each one separately. They didn’t need the mainchain.
Ok, very unimpressed with this main implementation. It’s just ethermintwith an array of chains.
They have another repo though; research;
bft looked interesting, it was just poa.
newcore looks interesting;
Not bad, I don’t know why it’s built. The coding style is very different, doesn’t seem from the same team.
Builds up a new eth using eth libraries, pretty cool.
Newcore was good.
Merkle is good.
Main is good.
I don’t get it, on the one side we have this multi chain ethermint rush job, which is bad, and on the other is this elegant new chain rewrite off of ethereum, which is good.
Pchain Code Review Conclusion:
50/50. So at the root of it’s promise, is it this native multichain, hierarchical sharding pipeline? No, and stop using dumb buzzwords. Do we need another chain? No, probably not. Is the code mostly reorganized go-ethereum and ethermint? Yes, but that isn’t necessarily a bad thing.
I’m just not seeing any special sauce here. Nothing unique, no differentiation. Just another one.
You can chat about Pchain in our Telegram group, and knowing you lot, you undoubtedly will. A lot.
Disclaimer: Crypto Briefing code reviews are performed by auditing what is on display in the master branch of the repo’s made available. This was performed as an educational review and any comments in the article are the opinion of the writer. It is normal for code to change rapidly, hence we timestamp our code reviews so that they present a snapshot at a moment in time. Information contained herein should not be used as any comment or advice on the project as a whole.
Pchain Code Review Timestamp: November 17th 2018