diff --git a/.gitignore b/.gitignore
index 131d75fddfc02a6abe821fdc762e12cde28e8a5a..ac6d158ede7acc17cb7cb1c4a9562faebf3fe145 100644
--- a/.gitignore
+++ b/.gitignore
@@ -3,4 +3,3 @@
 
 **/*.rs.bk
 *.wot
-*.bin
diff --git a/Cargo.lock b/Cargo.lock
index ce52b969520558ed5e04c31b74a25086056a5b31..f1f4cc636a9011212f306fa3f575d2f00aaa3cbf 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -107,7 +107,7 @@ dependencies = [
 
 [[package]]
 name = "duniter-wotb"
-version = "0.6.2"
+version = "0.7.0"
 dependencies = [
  "bincode 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)",
  "byteorder 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
diff --git a/wotb/Cargo.toml b/wotb/Cargo.toml
index 213c02a862276a8249dfb1cbd0d5915d4416caae..b37f08c63dca1e32ea16e19de9c27fc8343f536a 100644
--- a/wotb/Cargo.toml
+++ b/wotb/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "duniter-wotb"
-version = "0.6.2"
+version = "0.7.0"
 authors = ["nanocryk <nanocryk@duniter.org>", "elois <elois@duniter.org>"]
 description = "Makes Web of Trust computations for the Duniter project."
 repository = "https://git.duniter.org/nodes/rust/duniter-rs"
diff --git a/wotb/legacy.rs b/wotb/legacy.rs
index f70da9e47aeb2567fce7f3aaa50b860f92aaa784..402288a35ed1420d851fefd76f980b3aefc4773d 100644
--- a/wotb/legacy.rs
+++ b/wotb/legacy.rs
@@ -398,7 +398,9 @@ impl WebOfTrust for LegacyWebOfTrust {
         let mut result = WotDistance {
             sentries: 0,
             success: 0,
+            success_at_border: 0,
             reached: 0,
+            reached_at_border: 0,
             outdistanced: false,
         };
 
@@ -412,17 +414,30 @@ impl WebOfTrust for LegacyWebOfTrust {
         sentries[node.0] = false;
 
         let mut checked: Vec<bool> = self.nodes.iter().map(|_| false).collect();
+        let mut checked_without_border: Vec<bool> = checked.clone();
 
         if step_max >= 1 {
             checked = self.check_matches(node, 1, step_max, checked);
+            if step_max >= 2 {
+                checked_without_border =
+                    self.check_matches(node, 1, step_max - 1, checked_without_border);
+            }
         }
 
-        for (&sentry, &check) in sentries.iter().zip(checked.iter()) {
+        for ((&sentry, &check), &check_without_border) in sentries
+            .iter()
+            .zip(checked.iter())
+            .zip(checked_without_border.iter())
+        {
             if sentry {
                 result.sentries += 1;
                 if check {
                     result.success += 1;
                     result.reached += 1;
+                    if !check_without_border {
+                        result.success_at_border += 1;
+                        result.reached_at_border += 1;
+                    }
                 }
             } else if check {
                 result.reached += 1;
diff --git a/wotb/lib.rs b/wotb/lib.rs
index b0f9af3d5bed6afcebfcbbd2e92d02b794488c3b..1a6fed792e1465fd3cb9491b7730cea7b86827ca 100644
--- a/wotb/lib.rs
+++ b/wotb/lib.rs
@@ -151,8 +151,12 @@ pub struct WotDistance {
     pub sentries: u32,
     /// Success count
     pub success: u32,
+    /// Succes at border count
+    pub success_at_border: u32,
     /// Reached count
     pub reached: u32,
+    /// Reached at border count
+    pub reached_at_border: u32,
     /// Is the node outdistanced ?
     pub outdistanced: bool,
 }
@@ -267,15 +271,10 @@ pub trait WebOfTrust {
                     if byte_integer >= factor {
                         byte_integer -= factor;
                     } else {
-                        println!(
-                            "DEBUG : set_enabled({})",
-                            (nodes_count - count_remaining_nodes)
-                        );
-                        let test = self.set_enabled(
+                        let _test = self.set_enabled(
                             NodeId((nodes_count - count_remaining_nodes) as usize),
                             false,
                         );
-                        println!("DEBUG {:?}", test);
                     }
                     count_remaining_nodes -= 1;
                 }
@@ -588,7 +587,7 @@ mod tests {
                 sentry_requirement: 1,
                 step_max: 1,
                 x_percent: 1.0,
-            }),
+            },),
             Some(false)
         );
         // => no because 2,4,5 have certified him
@@ -598,7 +597,7 @@ mod tests {
                 sentry_requirement: 2,
                 step_max: 1,
                 x_percent: 1.0,
-            }),
+            },),
             Some(false)
         );
         // => no because only member 2 has 2 certs, and has certified him
@@ -608,7 +607,7 @@ mod tests {
                 sentry_requirement: 3,
                 step_max: 1,
                 x_percent: 1.0,
-            }),
+            },),
             Some(false)
         );
         // => no because no member has issued 3 certifications
@@ -646,7 +645,7 @@ mod tests {
                 sentry_requirement: 1,
                 step_max: 1,
                 x_percent: 1.0,
-            }),
+            },),
             Some(false)
         ); // OK : 2 -> 0
         assert_eq!(
@@ -655,7 +654,7 @@ mod tests {
                 sentry_requirement: 2,
                 step_max: 1,
                 x_percent: 1.0,
-            }),
+            },),
             Some(false)
         ); // OK : 2 -> 0
         assert_eq!(
@@ -664,7 +663,7 @@ mod tests {
                 sentry_requirement: 3,
                 step_max: 1,
                 x_percent: 1.0,
-            }),
+            },),
             Some(false)
         ); // OK : no stry \w 3 lnk
         assert_eq!(
@@ -673,7 +672,7 @@ mod tests {
                 sentry_requirement: 2,
                 step_max: 2,
                 x_percent: 1.0,
-            }),
+            },),
             Some(false)
         ); // OK : 2 -> 0
 
@@ -706,7 +705,7 @@ mod tests {
                 sentry_requirement: 1,
                 step_max: 1,
                 x_percent: 1.0,
-            }),
+            },),
             Some(true)
         ); // KO : No path 3 -> 0
         assert_eq!(
@@ -715,7 +714,7 @@ mod tests {
                 sentry_requirement: 2,
                 step_max: 1,
                 x_percent: 1.0,
-            }),
+            },),
             Some(true)
         ); // KO : No path 3 -> 0
         assert_eq!(
@@ -724,7 +723,7 @@ mod tests {
                 sentry_requirement: 3,
                 step_max: 1,
                 x_percent: 1.0,
-            }),
+            },),
             Some(false)
         ); // OK : no stry \w 3 lnk
         assert_eq!(
@@ -733,7 +732,7 @@ mod tests {
                 sentry_requirement: 2,
                 step_max: 2,
                 x_percent: 1.0,
-            }),
+            },),
             Some(false)
         ); // OK : 3 -> 2 -> 0
 
@@ -756,14 +755,14 @@ mod tests {
                 sentry_requirement: 2,
                 step_max: 1,
                 x_percent: 1.0,
-            }),
+            },),
             Some(false)
         ); // OK : Disabled
 
         // Write wot in file
         assert_eq!(
             wot.to_file(
-                "test.bin",
+                "test.wot",
                 &[0b0000_0000, 0b0000_0001, 0b0000_0001, 0b0000_0000]
             ).unwrap(),
             ()
@@ -774,7 +773,7 @@ mod tests {
         // Read wot from file
         {
             assert_eq!(
-                wot2.from_file("test.bin").unwrap(),
+                wot2.from_file("test.wot").unwrap(),
                 vec![0b0000_0000, 0b0000_0001, 0b0000_0001, 0b0000_0000]
             );
             assert_eq!(wot.size(), wot2.size());
@@ -791,9 +790,43 @@ mod tests {
                     sentry_requirement: 2,
                     step_max: 1,
                     x_percent: 1.0,
-                }),
+                },),
                 Some(false)
             );
         }
+
+        // Read g1_genesis wot
+        let mut wot3 = generator(100);
+        assert_eq!(
+            wot3.from_file("tests/g1_genesis.bin").unwrap(),
+            vec![
+                57, 57, 45, 48, 48, 48, 48, 49, 50, 65, 68, 52, 57, 54, 69, 67, 65, 53, 54, 68, 69,
+                48, 66, 56, 69, 53, 68, 54, 70, 55, 52, 57, 66, 55, 67, 66, 69, 55, 56, 53, 53, 51,
+                69, 54, 51, 56, 53, 51, 51, 51, 65, 52, 52, 69, 48, 52, 51, 55, 55, 69, 70, 70, 67,
+                67, 65, 53, 51,
+            ]
+        );
+
+        // Check g1_genesis wot members_count
+        let members_count = wot3.get_enabled().len() as u64;
+        assert_eq!(members_count, 59);
+
+        // Test compute_distance in g1_genesis wot
+        assert_eq!(
+            wot3.compute_distance(WotDistanceParameters {
+                node: NodeId(37),
+                sentry_requirement: 3,
+                step_max: 5,
+                x_percent: 0.8,
+            },),
+            Some(WotDistance {
+                sentries: 48,
+                success: 48,
+                success_at_border: 3,
+                reached: 52,
+                reached_at_border: 3,
+                outdistanced: false,
+            },)
+        );
     }
 }
diff --git a/wotb/rusty.rs b/wotb/rusty.rs
index b7ae38b6e8cfe6afa64d0b60bff84bb76446e98c..9429690ccba6a7312b76dbb24ecb78c2c03f9cd5 100644
--- a/wotb/rusty.rs
+++ b/wotb/rusty.rs
@@ -286,19 +286,20 @@ impl WebOfTrust for RustyWebOfTrust {
         }
 
         let sentries: Vec<_> = self.get_sentries(sentry_requirement as usize);
-
-        let success = area.iter().filter(|n| sentries.contains(n)).count() as u32;
-        let sentries = sentries.len() as u32
-            - if self.is_sentry(node, sentry_requirement as usize).unwrap() {
-                1
-            } else {
-                0
-            };
+        let mut success = area.iter().filter(|n| sentries.contains(n)).count() as u32;
+        let success_at_border = border.iter().filter(|n| sentries.contains(n)).count() as u32;
+        let mut sentries = sentries.len() as u32;
+        if self.is_sentry(node, sentry_requirement as usize).unwrap() {
+            sentries -= 1;
+            success -= 1;
+        }
 
         Some(WotDistance {
             sentries,
-            reached: (area.len() - 1) as u32,
+            reached: area.len() as u32,
+            reached_at_border: border.len() as u32,
             success,
+            success_at_border,
             outdistanced: f64::from(success) < x_percent * f64::from(sentries),
         })
     }
diff --git a/wotb/tests/g1_genesis.bin b/wotb/tests/g1_genesis.bin
new file mode 100644
index 0000000000000000000000000000000000000000..e7838df9c9efb58d10cbbb7f8a3ba1a2a4407db5
Binary files /dev/null and b/wotb/tests/g1_genesis.bin differ