@@ -69,7 +69,7 @@ m.get_hashes = function get_hashes(key) {
69
69
// get SHA384
70
70
ret . push ( BigInt ( base . SHA384 ( key ) , 16 ) ) ;
71
71
// get SHA512
72
- hash = new SHA ( "SHA-224 " , "ARRAYBUFFER" ) ;
72
+ hash = new SHA ( "SHA-512 " , "ARRAYBUFFER" ) ;
73
73
hash . update ( key ) ;
74
74
ret . push ( BigInt ( hash . getHash ( "HEX" ) , 16 ) ) ;
75
75
return ret ;
@@ -254,6 +254,23 @@ m.chord_socket = class chord_socket extends mesh.mesh_socket {
254
254
catch ( e ) { }
255
255
}
256
256
257
+ join ( ) {
258
+ this . leeching = false ;
259
+ for ( let handler in this . awaiting_ids ) {
260
+ this . _send_handshake ( handler ) ;
261
+ this . _send_peers ( handler ) ;
262
+ this . _send_meta ( handler ) ;
263
+ }
264
+ for ( let key in Object . keys ( this . routing_table ) ) {
265
+ let handler = this . routing_table [ key ] ;
266
+ if ( handler ) {
267
+ this . _send_handshake ( handler ) ;
268
+ this . _send_peers ( handler ) ;
269
+ this . _send_meta ( handler ) ;
270
+ }
271
+ }
272
+ }
273
+
257
274
_send_meta ( handler ) {
258
275
handler . send ( base . flags . whisper , [ base . flags . handshake , this . leeching ? '1' : '0' ] ) ;
259
276
for ( let key in this . __keys ) {
@@ -280,7 +297,7 @@ m.chord_socket = class chord_socket extends mesh.mesh_socket {
280
297
let beg = tuple [ 0 ] ;
281
298
let mid = tuple [ 1 ] ;
282
299
let end = tuple [ 2 ] ;
283
- if ( m . distance ( beg . id_10 , end . id_10 ) < gap && mid . outgoing ) {
300
+ if ( m . distance ( beg . id_10 , end . id_10 ) . lesser ( gap ) && mid . outgoing ) {
284
301
gap = m . distance ( beg . id_10 , end . id_10 ) ;
285
302
narrowest = mid ;
286
303
}
@@ -447,11 +464,11 @@ m.chord_socket = class chord_socket extends mesh.mesh_socket {
447
464
}
448
465
else {
449
466
node . send ( base . flags . whisper , [ base . flags . retrieve , method , base . to_base_58 ( key ) ] ) ;
450
- ret = new awaiting_value ( ) ;
467
+ let ret = new awaiting_value ( ) ;
451
468
if ( handler ) {
452
469
ret . callback = handler ;
453
470
}
454
- this . requests [ [ method , to_base_58 ( key ) ] ] = ret ;
471
+ this . requests [ [ method , base . to_base_58 ( key ) ] ] = ret ;
455
472
return ret ;
456
473
}
457
474
}
@@ -475,19 +492,23 @@ m.chord_socket = class chord_socket extends mesh.mesh_socket {
475
492
return new Promise ( ( fulfill , reject ) => {
476
493
function check ( ) {
477
494
if ( fails . has ( common ) && iters < limit ) {
495
+ console . log ( 'if' ) ;
478
496
setTimeout ( check , 100 ) ;
479
497
iters += 1
480
498
ctuple = most_common ( vals ) ;
481
499
common = ctuple [ 0 ] ;
482
500
count = ctuple [ 1 ] ;
483
501
}
484
502
else if ( ! fails . has ( common ) && count > 2 ) {
503
+ console . log ( 'fulfill' ) ;
485
504
fulfill ( common ) ;
486
505
}
487
506
else if ( iters === limit ) {
507
+ console . log ( 'timeout' ) ;
488
508
reject ( new Error ( "Time out" ) ) ;
489
509
}
490
510
else {
511
+ console . log ( 'else' ) ;
491
512
reject ( new Error ( `This key does not have an agreed-upon value. values=${ vals } , count=${ count } , majority=3, most common=${ common } ` ) ) ;
492
513
}
493
514
}
0 commit comments