@@ -631,6 +631,80 @@ impl ArcedNodeBuilder {
631
631
self . inner . read ( ) . unwrap ( ) . build_with_fs_store ( ) . map ( Arc :: new)
632
632
}
633
633
634
+ /// Builds a [`Node`] instance with a [VSS] backend and according to the options
635
+ /// previously configured.
636
+ ///
637
+ /// Uses [LNURL-Auth] as default method for authentication/authorization.
638
+ ///
639
+ /// The LNURL with the challenge will be retrieved by making a request to the given `lnurl_auth_server_url`.
640
+ /// The returned JWT token in response to the signed LNURL request, will be used for
641
+ /// authentication/authorization of all the requests made to VSS.
642
+ ///
643
+ /// `fixed_headers` are included as it is in all the requests made to VSS and LNURL Auth server.
644
+ ///
645
+ /// **Caution**: VSS support is in **alpha** and is considered experimental.
646
+ /// Using VSS (or any remote persistence) may cause LDK to panic if persistence failures are
647
+ /// unrecoverable, i.e., if they remain unresolved after internal retries are exhausted.
648
+ ///
649
+ /// [VSS]: https://github.com/lightningdevkit/vss-server/blob/main/README.md
650
+ /// [LNURL-Auth]: https://github.com/lnurl/luds/blob/luds/04.md
651
+ #[ cfg( any( vss, vss_test) ) ]
652
+ pub fn build_with_vss_store (
653
+ & self , vss_url : String , store_id : String , lnurl_auth_server_url : String ,
654
+ fixed_headers : HashMap < String , String > ,
655
+ ) -> Result < Arc < Node > , BuildError > {
656
+ self . inner
657
+ . read ( )
658
+ . unwrap ( )
659
+ . build_with_vss_store ( vss_url, store_id, lnurl_auth_server_url, fixed_headers)
660
+ . map ( Arc :: new)
661
+ }
662
+
663
+ /// Builds a [`Node`] instance with a [VSS] backend and according to the options
664
+ /// previously configured.
665
+ ///
666
+ /// Uses [`FixedHeaders`] as default method for authentication/authorization.
667
+ ///
668
+ /// Given `fixed_headers` are included as it is in all the requests made to VSS.
669
+ ///
670
+ /// **Caution**: VSS support is in **alpha** and is considered experimental.
671
+ /// Using VSS (or any remote persistence) may cause LDK to panic if persistence failures are
672
+ /// unrecoverable, i.e., if they remain unresolved after internal retries are exhausted.
673
+ ///
674
+ /// [VSS]: https://github.com/lightningdevkit/vss-server/blob/main/README.md
675
+ #[ cfg( any( vss, vss_test) ) ]
676
+ pub fn build_with_vss_store_and_fixed_headers (
677
+ & self , vss_url : String , store_id : String , fixed_headers : HashMap < String , String > ,
678
+ ) -> Result < Arc < Node > , BuildError > {
679
+ self . inner
680
+ . read ( )
681
+ . unwrap ( )
682
+ . build_with_vss_store_and_fixed_headers ( vss_url, store_id, fixed_headers)
683
+ . map ( Arc :: new)
684
+ }
685
+
686
+ /// Builds a [`Node`] instance with a [VSS] backend and according to the options
687
+ /// previously configured.
688
+ ///
689
+ /// Given `header_provider` is used to attach headers to every request made
690
+ /// to VSS.
691
+ ///
692
+ /// **Caution**: VSS support is in **alpha** and is considered experimental.
693
+ /// Using VSS (or any remote persistence) may cause LDK to panic if persistence failures are
694
+ /// unrecoverable, i.e., if they remain unresolved after internal retries are exhausted.
695
+ ///
696
+ /// [VSS]: https://github.com/lightningdevkit/vss-server/blob/main/README.md
697
+ #[ cfg( any( vss, vss_test) ) ]
698
+ pub fn build_with_vss_store_and_header_provider (
699
+ & self , vss_url : String , store_id : String , header_provider : Arc < dyn VssHeaderProvider > ,
700
+ ) -> Result < Arc < Node > , BuildError > {
701
+ self . inner
702
+ . read ( )
703
+ . unwrap ( )
704
+ . build_with_vss_store_and_header_provider ( vss_url, store_id, header_provider)
705
+ . map ( Arc :: new)
706
+ }
707
+
634
708
/// Builds a [`Node`] instance according to the options previously configured.
635
709
pub fn build_with_store ( & self , kv_store : Arc < DynStore > ) -> Result < Arc < Node > , BuildError > {
636
710
self . inner . read ( ) . unwrap ( ) . build_with_store ( kv_store) . map ( Arc :: new)
0 commit comments