@@ -934,10 +934,20 @@ pub mod pallet {
934934 pub fn DefaultWeightCommitRevealInterval < T : Config > ( ) -> u64 {
935935 1000
936936 }
937-
937+ // --- DMAP ( netuid ) --> interval
938938 #[ pallet:: storage]
939939 pub type WeightCommitRevealInterval < T > =
940- StorageValue < _ , u64 , ValueQuery , DefaultWeightCommitRevealInterval < T > > ;
940+ StorageMap < _ , Identity , u16 , u64 , ValueQuery , DefaultWeightCommitRevealInterval < T > > ;
941+
942+ /// Default value for weight commit/reveal enabled.
943+ #[ pallet:: type_value]
944+ pub fn DefaultCommitRevealWeightsEnabled < T : Config > ( ) -> bool {
945+ false
946+ }
947+ // --- DMAP ( netuid ) --> interval
948+ #[ pallet:: storage]
949+ pub type CommitRevealWeightsEnabled < T > =
950+ StorageMap < _ , Identity , u16 , bool , ValueQuery , DefaultCommitRevealWeightsEnabled < T > > ;
941951
942952 /// =======================================
943953 /// ==== Subnetwork Consensus Storage ====
@@ -1354,7 +1364,11 @@ pub mod pallet {
13541364 weights : Vec < u16 > ,
13551365 version_key : u64 ,
13561366 ) -> DispatchResult {
1357- Self :: do_set_weights ( origin, netuid, dests, weights, version_key)
1367+ if !Self :: get_commit_reveal_weights_enabled ( netuid) {
1368+ return Self :: do_set_weights ( origin, netuid, dests, weights, version_key) ;
1369+ }
1370+
1371+ Err ( Error :: < T > :: CommitRevealEnabled . into ( ) )
13581372 }
13591373
13601374 /// ---- Used to commit a hash of your weight values to later be revealed.
@@ -1400,6 +1414,9 @@ pub mod pallet {
14001414 /// * `values` (`Vec<u16>`):
14011415 /// - The values of the weights being revealed.
14021416 ///
1417+ /// * `salt` (`Vec<u8>`):
1418+ /// - The random salt to protect from brute-force guessing attack in case of small weight changes bit-wise.
1419+ ///
14031420 /// * `version_key` (`u64`):
14041421 /// - The network version key.
14051422 ///
@@ -1422,9 +1439,10 @@ pub mod pallet {
14221439 netuid : u16 ,
14231440 uids : Vec < u16 > ,
14241441 values : Vec < u16 > ,
1442+ salt : Vec < u16 > ,
14251443 version_key : u64 ,
14261444 ) -> DispatchResult {
1427- Self :: do_reveal_weights ( origin, netuid, uids, values, version_key)
1445+ Self :: do_reveal_weights ( origin, netuid, uids, values, salt , version_key)
14281446 }
14291447
14301448 /// # Args:
0 commit comments