What is the current replication factor per canister within a subnet?

What is the current replication factor per canister within a subnet?
Does each node on a subnet contain each canister (i.e. code + state replication of that canister) on that same subnet?

I was having trouble finding answers to this in the documentation, but either an answer or at least a link to the code where this is held (in the case this replication factor is changed) would be helpful :slightly_smiling_face:

The reason why I ask is that I’d like to have a general idea about how introducing the Fiduciary & Storage subnets mentioned in Dominic’s recent medium post would affect data center decentralization and application performance, and develop some better intuitions around the implications of hosting canisters on either type of subnet.

Yes it does. If documentation was not obvious on this, I should look into it. Where did you read that this was not clear? (So I can improve it)

Thanks, I figured this was the case, but I wanted to make sure. I found language that suggested this, but didn’t see it stated explicitly that a canister is replicated across all nodes/replicas (or each and every node/replica) in a subnet. It’s probably somewhere and I just missed it!

States the following:

“The Internet Computer blockchain software components that run on each node are called a replica because they replicate state and computation across all of the nodes in a subnet blockchain.”

“Messages received by the peer-to-peer layer are replicated to all of the nodes in the subnet to ensure the security, reliability, and resiliency”

So messages, state, and computation are replicated across all nodes (replicas) in the subnet, but it doesn’t specifically state that canisters are also replicated across all of the nodes in the subnet.

I assumed this was implied since messages, code, state essentially describe a canister, but just wanted to verify my assumptions.