diff --git a/autonomi/src/client/registers.rs b/autonomi/src/client/registers.rs index 52f8944e1e..40f79ead0b 100644 --- a/autonomi/src/client/registers.rs +++ b/autonomi/src/client/registers.rs @@ -209,7 +209,7 @@ impl Client { put_quorum: Quorum::All, retry_strategy: None, use_put_record_to: None, - verification: Some((VerificationKind::Network, get_cfg)), + verification: Some((VerificationKind::Crdt, get_cfg)), }; // Store the updated register on the network diff --git a/autonomi/src/client/vault.rs b/autonomi/src/client/vault.rs index 209d174842..20eb1e1b93 100644 --- a/autonomi/src/client/vault.rs +++ b/autonomi/src/client/vault.rs @@ -233,7 +233,7 @@ impl Client { retry_strategy: Some(RetryStrategy::Balanced), use_put_record_to: None, verification: Some(( - VerificationKind::Network, + VerificationKind::Crdt, GetRecordCfg { get_quorum: Quorum::Majority, retry_strategy: None, diff --git a/sn_networking/src/driver.rs b/sn_networking/src/driver.rs index e70cc6c68d..b76c14f82c 100644 --- a/sn_networking/src/driver.rs +++ b/sn_networking/src/driver.rs @@ -231,6 +231,8 @@ pub struct PutRecordCfg { pub enum VerificationKind { /// Uses the default KAD GET to perform verification. Network, + /// Uses the default KAD GET to perform verification, but don't error out on split records + Crdt, /// Uses the hash based verification for chunks. ChunkProof { expected_proof: ChunkProof, diff --git a/sn_networking/src/lib.rs b/sn_networking/src/lib.rs index 01e5d6c9f6..4b15e66a08 100644 --- a/sn_networking/src/lib.rs +++ b/sn_networking/src/lib.rs @@ -1017,6 +1017,11 @@ impl Network { NetworkAddress::from_record_key(&record_key), )); } + Err(NetworkError::GetRecordError(GetRecordError::SplitRecord { .. })) + if matches!(verification_kind, VerificationKind::Crdt) => + { + warn!("Record {pretty_key:?} is split, which is okay since we're dealing with CRDTs"); + } Err(e) => { debug!( "Failed to verify record {pretty_key:?} to be stored with error: {e:?}"