@@ -71,14 +71,8 @@ parser::parser(system::chain::selection context) NOEXCEPT
7171 service::node_witness;
7272
7373 // database (archive)
74- // Bits cannot be set to the word boundary (32 or 64) as this
75- // consumes the sentinel into the value domain. The bucket must
76- // be able to hold a sentinel that is larger than the bucket count.
77- // This presents a waste problem in the case of 32, since it will
78- // cause an overflow into 5 byte links and 8 byte buckets. In this
79- // case modulo bucketization will become more efficient.
80-
81- configured.database .header_bits = 20 ;
74+
75+ configured.database .header_buckets = power2 (20u );
8276 configured.database .header_size = 21'000'000 ;
8377 configured.database .header_rate = 5 ;
8478
@@ -88,7 +82,7 @@ parser::parser(system::chain::selection context) NOEXCEPT
8882 configured.database .output_size = 25'300'000'000 ;
8983 configured.database .output_rate = 5 ;
9084
91- configured.database .point_bits = 31 ;
85+ configured.database .point_buckets = power2 ( 31u ) ;
9286 configured.database .point_size = 25'700'000'000 ;
9387 configured.database .point_rate = 5 ;
9488
@@ -98,11 +92,11 @@ parser::parser(system::chain::selection context) NOEXCEPT
9892 configured.database .outs_size = 3'700'000'000 ;
9993 configured.database .outs_rate = 5 ;
10094
101- configured.database .tx_bits = 30 ;
95+ configured.database .tx_buckets = power2 ( 30u ) ;
10296 configured.database .tx_size = 17'000'000'000 ;
10397 configured.database .tx_rate = 5 ;
10498
105- configured.database .txs_bits = 20 ;
99+ configured.database .txs_buckets = power2 ( 20u ) ;
106100 configured.database .txs_size = 1'050'000'000 ;
107101 configured.database .txs_rate = 5 ;
108102
@@ -114,7 +108,7 @@ parser::parser(system::chain::selection context) NOEXCEPT
114108 configured.database .confirmed_size = 2'575'500 ;
115109 configured.database .confirmed_rate = 5 ;
116110
117- configured.database .strong_tx_bits = 30 ;
111+ configured.database .strong_tx_buckets = power2 ( 30u ) ;
118112 configured.database .strong_tx_size = 3'150'000'000 ;
119113 configured.database .strong_tx_rate = 5 ;
120114
@@ -124,21 +118,21 @@ parser::parser(system::chain::selection context) NOEXCEPT
124118 configured.database .prevout_size = 5'250'000'000 ;
125119 configured.database .prevout_rate = 5 ;
126120
127- configured.database .validated_tx_bits = 0 ;
121+ configured.database .validated_tx_buckets = power2 ( 0u ) ;
128122 configured.database .validated_tx_size = 1 ;
129123 configured.database .validated_tx_rate = 5 ;
130124
131- configured.database .validated_bk_bits = 21 ;
125+ configured.database .validated_bk_buckets = power2 ( 21u ) ;
132126 configured.database .validated_bk_size = 3'400'000 ;
133127 configured.database .validated_bk_rate = 5 ;
134128
135129 // database (optionals)
136130
137- configured.database .address_bits = 0 ;
131+ configured.database .address_buckets = power2 ( 0u ) ;
138132 configured.database .address_size = 1 ;
139133 configured.database .address_rate = 5 ;
140134
141- configured.database .neutrino_bits = 0 ;
135+ configured.database .neutrino_buckets = power2 ( 0u ) ;
142136 configured.database .neutrino_size = 1 ;
143137 configured.database .neutrino_rate = 5 ;
144138}
@@ -659,9 +653,9 @@ options_metadata parser::load_settings() THROWS
659653
660654 /* header */
661655 (
662- " database.header_bits " ,
663- value<uint32_t >(&configured.database .header_bits ),
664- " The log2 number of buckets in the header table head, defaults to '20'."
656+ " database.header_buckets " ,
657+ value<uint32_t >(&configured.database .header_buckets ),
658+ " The log2 number of buckets in the header table head, defaults to '2^ 20'."
665659 )
666660 (
667661 " database.header_size" ,
@@ -700,9 +694,9 @@ options_metadata parser::load_settings() THROWS
700694
701695 /* point */
702696 (
703- " database.point_bits " ,
704- value<uint32_t >(&configured.database .point_bits ),
705- " The log2 number of buckets in the spend table head, defaults to '31'."
697+ " database.point_buckets " ,
698+ value<uint32_t >(&configured.database .point_buckets ),
699+ " The log2 number of buckets in the spend table head, defaults to '2^ 31'."
706700 )
707701 (
708702 " database.point_size" ,
@@ -741,9 +735,9 @@ options_metadata parser::load_settings() THROWS
741735
742736 /* tx */
743737 (
744- " database.tx_bits " ,
745- value<uint32_t >(&configured.database .tx_bits ),
746- " The log2 number of buckets in the tx table head, defaults to '30'."
738+ " database.tx_buckets " ,
739+ value<uint32_t >(&configured.database .tx_buckets ),
740+ " The log2 number of buckets in the tx table head, defaults to '2^ 30'."
747741 )
748742 (
749743 " database.tx_size" ,
@@ -758,9 +752,9 @@ options_metadata parser::load_settings() THROWS
758752
759753 /* txs */
760754 (
761- " database.txs_bits " ,
762- value<uint32_t >(&configured.database .txs_bits ),
763- " The log2 number of buckets in the txs table head, defaults to '20'."
755+ " database.txs_buckets " ,
756+ value<uint32_t >(&configured.database .txs_buckets ),
757+ " The log2 number of buckets in the txs table head, defaults to '2^ 20'."
764758 )
765759 (
766760 " database.txs_size" ,
@@ -799,9 +793,9 @@ options_metadata parser::load_settings() THROWS
799793
800794 /* strong_tx */
801795 (
802- " database.strong_tx_bits " ,
803- value<uint32_t >(&configured.database .strong_tx_bits ),
804- " The log2 number of buckets in the strong_tx table head, defaults to '30'."
796+ " database.strong_tx_buckets " ,
797+ value<uint32_t >(&configured.database .strong_tx_buckets ),
798+ " The log2 number of buckets in the strong_tx table head, defaults to '2^ 30'."
805799 )
806800 (
807801 " database.strong_tx_size" ,
@@ -833,9 +827,9 @@ options_metadata parser::load_settings() THROWS
833827
834828 /* validated_tx */
835829 (
836- " database.validated_tx_bits " ,
837- value<uint32_t >(&configured.database .validated_tx_bits ),
838- " The number of buckets in the validated_tx table head, defaults to '0 ' (0 disables)."
830+ " database.validated_tx_buckets " ,
831+ value<uint32_t >(&configured.database .validated_tx_buckets ),
832+ " The number of buckets in the validated_tx table head, defaults to '1 ' (0|1 disables)."
839833 )
840834 (
841835 " database.validated_tx_size" ,
@@ -850,9 +844,9 @@ options_metadata parser::load_settings() THROWS
850844
851845 /* validated_bk */
852846 (
853- " database.validated_bk_bits " ,
854- value<uint32_t >(&configured.database .validated_bk_bits ),
855- " The log2 number of buckets in the validated_bk table head, defaults to '21'."
847+ " database.validated_bk_buckets " ,
848+ value<uint32_t >(&configured.database .validated_bk_buckets ),
849+ " The log2 number of buckets in the validated_bk table head, defaults to '2^ 21'."
856850 )
857851 (
858852 " database.validated_bk_size" ,
@@ -867,9 +861,9 @@ options_metadata parser::load_settings() THROWS
867861
868862 /* address */
869863 (
870- " database.address_bits " ,
871- value<uint32_t >(&configured.database .address_bits ),
872- " The log2 number of buckets in the address table head, defaults to '0 ' (0 disables)."
864+ " database.address_buckets " ,
865+ value<uint32_t >(&configured.database .address_buckets ),
866+ " The log2 number of buckets in the address table head, defaults to '1 ' (0|1 disables)."
873867 )
874868 (
875869 " database.address_size" ,
@@ -884,9 +878,9 @@ options_metadata parser::load_settings() THROWS
884878
885879 /* neutrino */
886880 (
887- " database.neutrino_bits " ,
888- value<uint32_t >(&configured.database .neutrino_bits ),
889- " The log2 number of buckets in the neutrino table head, defaults to '0 ' (0 disables)."
881+ " database.neutrino_buckets " ,
882+ value<uint32_t >(&configured.database .neutrino_buckets ),
883+ " The log2 number of buckets in the neutrino table head, defaults to '1 ' (0|1 disables)."
890884 )
891885 (
892886 " database.neutrino_size" ,
0 commit comments