From e0d8ea8a5836cfce714f9b7cff1fcc246a8e50a0 Mon Sep 17 00:00:00 2001 From: Andrius Dagys Date: Mon, 22 Oct 2018 10:26:10 +0100 Subject: [PATCH 1/2] =?UTF-8?q?CORDA-535:=20Move=20implementation=20specif?= =?UTF-8?q?ic=20configuration=20values=20out=20of=20n=E2=80=A6=20(#4058)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The configuration objects for specific notary implementations have been replaced by a single untyped "extraConfig" Config object that is left to the notary service itself to parse. * Remove the raft bootstrapping command from node, we'll need a different mechanism for that. * Remove pre-generated identity config value. * Split up obtainIdentity() in AbstractNode to make it easier to read. * A temporary workaround for the bootstrapper tool to support BFT notaries. * Update docs * Add upgrade notes * Fix rebase issue * Add a config diff for the bft notary as well --- docs/source/changelog.rst | 23 ++++++ docs/source/corda-configuration-file.rst | 25 ++----- .../resources/notary-config-update-bft.png | Bin 0 -> 131365 bytes .../source/resources/notary-config-update.png | Bin 0 -> 86107 bytes docs/source/running-a-node.rst | 2 - .../corda/notary/bftsmart/BFTSMaRtConfig.kt | 18 +++++ .../notary/bftsmart/BftSmartNotaryService.kt | 11 +-- .../notary/bftsmart/BFTNotaryServiceTests.kt | 13 ++-- .../net/corda/notary/raft/RaftConfig.kt | 18 +++++ .../corda/notary/raft/RaftNotaryService.kt | 10 ++- .../notary/raft/RaftUniquenessProvider.kt | 1 - .../internal/network/NetworkBootstrapper.kt | 10 ++- .../net/corda/node/NodeCmdLineOptions.kt | 6 -- .../net/corda/node/internal/AbstractNode.kt | 67 +++++++++--------- .../net/corda/node/internal/NodeStartup.kt | 15 +--- .../node/services/config/NodeConfiguration.kt | 53 ++++---------- .../net.corda.node.internal.NodeStartup.yml | 5 -- .../corda/node/internal/NodeStartupTest.kt | 1 - .../net/corda/node/services/TimedFlowTests.kt | 7 +- samples/notary-demo/build.gradle | 14 ++-- .../testing/node/internal/DriverDSLImpl.kt | 25 +++---- 21 files changed, 167 insertions(+), 157 deletions(-) create mode 100644 docs/source/resources/notary-config-update-bft.png create mode 100644 docs/source/resources/notary-config-update.png create mode 100644 experimental/notary-raft/src/main/kotlin/net/corda/notary/raft/RaftConfig.kt diff --git a/docs/source/changelog.rst b/docs/source/changelog.rst index 51330fffd3..eb81172b4a 100644 --- a/docs/source/changelog.rst +++ b/docs/source/changelog.rst @@ -16,6 +16,29 @@ Unreleased * Vault storage of contract state constraints metadata and associated vault query functions to retrieve and sort by constraint type. +* UPGRADE REQUIRED: changes have been made to how notary implementations are configured and loaded. + No upgrade steps are required for the single-node notary (both validating and non-validating variants). + Other notary implementations have been moved out of the Corda node into individual Cordapps, and require configuration + file updates. + + To run a notary you will now need to include the appropriate notary CorDapp in the ``cordapps/`` directory: + + * ``corda-notary-raft`` for the Raft notary. + * ``corda-notary-bft-smart`` for the BFT-Smart notary. + + It is now required to specify the fully qualified notary service class name, ``className``, and the legal name of + the notary service in case of distributed notaries: ``serviceLegalName``. + + Implementation-specific configuration values have been moved to the ``extraConfig`` configuration block. + + Example configuration changes for the Raft notary: + + .. image:: resources/notary-config-update.png + + Example configuration changes for the BFT-Smart notary: + + .. image:: resources/notary-config-update-bft.png + * New overload for ``CordaRPCClient.start()`` method allowing to specify target legal identity to use for RPC call. * Case insensitive vault queries can be specified via a boolean on applicable SQL criteria builder operators. By default diff --git a/docs/source/corda-configuration-file.rst b/docs/source/corda-configuration-file.rst index e5afa2f27b..6f5fcf17b5 100644 --- a/docs/source/corda-configuration-file.rst +++ b/docs/source/corda-configuration-file.rst @@ -132,34 +132,17 @@ absolute path to the node's base directory. :security: Contains various nested fields controlling user authentication/authorization, in particular for RPC accesses. See :doc:`clientrpc` for details. -:notary: Optional configuration object which if present configures the node to run as a notary. If part of a Raft or BFT SMaRt - cluster then specify ``raft`` or ``bftSMaRt`` respectively as described below. If a single node notary then omit both. +:notary: Optional configuration object which if present configures the node to run as a notary. :validating: Boolean to determine whether the notary is a validating or non-validating one. :serviceLegalName: If the node is part of a distributed cluster, specify the legal name of the cluster. At runtime, Corda checks whether this name matches the name of the certificate of the notary cluster. - :raft: If part of a distributed Raft cluster specify this config object, with the following settings: + :className: The fully qualified class name of the notary service to run. The class is expected to be loaded from + a notary CorDapp. Defaults to run the ``SimpleNotaryService``, which is built in. - :nodeAddress: The host and port to which to bind the embedded Raft server. Note that the Raft cluster uses a - separate transport layer for communication that does not integrate with ArtemisMQ messaging services. - - :clusterAddresses: Must list the addresses of all the members in the cluster. At least one of the members must - be active and be able to communicate with the cluster leader for the node to join the cluster. If empty, a - new cluster will be bootstrapped. - - :bftSMaRt: If part of a distributed BFT-SMaRt cluster specify this config object, with the following settings: - - :replicaId: The zero-based index of the current replica. All replicas must specify a unique replica id. - - :clusterAddresses: Must list the addresses of all the members in the cluster. At least one of the members must - be active and be able to communicate with the cluster leader for the node to join the cluster. If empty, a - new cluster will be bootstrapped. - - :custom: If `true`, will load and install a notary service from a CorDapp. See :doc:`tutorial-custom-notary`. - - Only one of ``raft``, ``bftSMaRt`` or ``custom`` configuration values may be specified. + :extraConfig: an optional configuration block for providing notary implementation-specific values. :rpcUsers: A list of users who are authorised to access the RPC system. Each user in the list is a config object with the following fields: diff --git a/docs/source/resources/notary-config-update-bft.png b/docs/source/resources/notary-config-update-bft.png new file mode 100644 index 0000000000000000000000000000000000000000..207d87cdefcc58fbf19dda1f983791608edfd168 GIT binary patch literal 131365 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 literal 0 HcmV?d00001 diff --git a/docs/source/resources/notary-config-update.png b/docs/source/resources/notary-config-update.png new file mode 100644 index 0000000000000000000000000000000000000000..345c3854feac0fd60ec8c8f4cf4f3155ad25dc9d GIT binary patch literal 86107 zcmZsC1yo#1@;4G-@BtFs1_%-cO>iGHxCVC%A-Fq%A-D#23GVJ1oDeLyI|O%!Z?f-Y z_wD|_IcLt?d%LT;OSho#hzN7D#651NP;MS`;-}9xf>PnjU8cjpW z;;LePXkyQCqN(6f)jHqPqrwznIKZ6GnWOQHHSLC5QLmsmmfy2p!hcAHR{Swz-d3tP%Bz4dBD6kZc z@ZPE=zcTM4&3eJ}wXjZ|!Km*05+W(T=t+{RoMQW5%0kD*?d88Sh69-yX z^xu+Fu#i9};XA%0$ug6`Q6UyisAzl?3ncWdaQ4(t>pk(=~)|qPK*j3-g?T#g9ztC0Zer+WcvGnr&)&mhv@^0bLapT7?LW6l7}tNqopdmjU%F0xdfoX<-9Z z!tk8OLX^(e(qc%>yuKyd2plV?_+|BVE&dw1uq7+p^V)KbN$HIj;_##2hNQRhKK`7F zAUB9&ff4`^lqiuleA!3gnmT}q2r>pJsh{|c;XfIW7=RvnLAtqq7!}wXzWlb&NKtY# zaZ`~mR>0iYbDb}3F&E%mIw%R@BRiiZBC~WNxT3tH1ayf!4?+uuj7K4SMc##A^pjTk z>wsA3foPv*6!~K@Ooi{V_zQrq0*W$`cTjey95I`aFh#Jl-oD3jNA!X!u@d1!UmA*Q zpqq8Pt3cmJvCl!gmbdhi``_D8h+D#uVAN$d82wmn?=Gj>8j=LjC z6M+}DK(L;$Pp2X)E+I!4YA-6Duc5Ir8&9HA!ZuhOhV!?wSl_h+-XMWxP z_~aVw$<~JBgCrD|(OC|>2B1B|^Wy`BReVttE&w^=9^&SqGKzU;R zf~SMmyTx&XX=K=G-D0w(lD^`O^Nh=l)9fN@`j$x7fl$7D83-J3+F(8vJ*5hOD1FsX z_M?9r`z;n(8hevrQvf?o@=ISZU6?tG0+9mA2Q5wP49L5b>Thl{o%dc{mp&&ef_mLk}X0Af-{04!Yo2QlKZo~0{SA- z$A&!Fc4_t0_ZAe0$hZdCD&crqSS{5xSj z1(IB^=kd?$aIpvkX%@iz;1)0yvk?O>a}47+6+6|bQY`ZaI$~;f)f(ONU_vcfweKom zwf)!`r%E?F5jz#Tc-OLPw-ZU+3TP2Dp_@5)0`~z|CPq01D~5F7ON>CwnerP3nZoyl zRE3Pn4&$m84!iWbRJ+CFEISZKMt5*4bV)`(Dmuz8_HBG&3{jM3v|7wX+;EIlv=^0R ztZ~11|BC^qA*Ozrq2>Yeey#x_WlDP1=TtA`>CYL!jIS7O8Oaqts;8>qD%mSbtA9`? zR?nl?rl+GBNLz?(6gp8nl{&s2z}wqh)!e#Skm+OmRy>mOt97w? z>@F>`R^ii#vA*fD$+ESOUb{g%a=WRI_7mhO7_QWJ5#9x%2O$T6&(BuGTclP*Mti@G zbeWy(BQO<@ze&x)a&Ag{zPql+y16CIh0ozG04N*eBW2uAm&aF~-1z+0b1m|wjw-`6 zgI0`c3`VpRbS`ujjErE`Q2MY$)0E1{%55qps!;0foR8VkIeLqxtFknSG^7d|D^0eRcv;=0!DMg!`bVmTG3HbgYm~*?8spIL+OwDm&;}35#0QW1{$`%0GCqt(PKIIl6&Yk z=o9Gq5shS)jM)U6_^kqM57(te4{L*X-FO3Zw9+~s<+F`K5!d z=b~7vx|fZ=lBj5on6U`nLhQmD7uxIZE1L7wWW&V6YD_ipEer;P+c(0f+*rA^N( zq~3rniWlBso7}psIuR?rdHgx*c{*MMzR%3O`um4(4n97-JQa6i0qzr@mUY4kq({1BclSlm|3HEgZdWNN>+X4QLe z$@kf1?iTY_+lTYI(W%2W^Pp^OF+ya$^GBAPsQPE7&*h8NtuE_r6AygUDUzQhyd){Y zkRs*y0UoS(te2~Mk_?gW$ju{+dmS>41sJ?voz&bC#OZ6%V$d-w%*kI0oq1onhHzY* zPIv1I$(ak~^RuK!r&}aWrnSB?7vj1$8VcP_NKIfo<9S+pQomu`R2ODC@+LY(2b?5FDI}F>4;z8&~$ye_#uU9uEr;TT!LkTC7 z4U=kEUxsw*5$I`Fg8*<#KS6CEAlxs?wSc;hu4T&)80Q4$XDI%6#rlnHM&A-j13_?; z@o?AFyGsGAF@s5P$5iXd;^&pmD$ncF?uNl0s>)(%As3`w6#nDoLN<&VOQq;!Yl#+w_4Kpj1AQ~klCBMCi8LzUK z#NXtwI{~Wqj*hmxEG#ZAF3c{knQiRNS=e}Zcvx83S=iZ`U^AE;+^ii9U74&MsQ+T} zhmV-4gR#AZt)qpFHRW%_Dq6Uje$)`NurjrFfUP0O#>vXg|1X07GxVP&|3RwxAJW&ax&KM|kCDGA z`B{ET@DGXpQrEwp!t^DG#?SI^-3y}SB7h8F<{-5YQ&5HdBEY`CKZUR_{olW^>p}3f zg<>fjoG{#5F%eZ)`292#*XL@}eNQRU0H$+X&^dWXb|xh~8JN=305Nw)5l2KA2i>ow z+z(02OHB;txssw1(1NOf9w7DQ)h9(f04m67;*!tB+-3X6{>QgfB+5So6{=plSU(Ie z&d%OtI7AFUSdK$cbzUOuO_#GM4td?4Gbr*fcRx#n!!tmT^+k21J-*q_pyuS9a_EI@ z0qe79zo1U!$uXM9>7=5v!qayAd*)v^zLp5I_z<0MtJIHl9gv_WA_sIBmw%0&%B-Z= zv~^Y*_nm5&2;T$%*-Zyy5#lx>e$ANl_yqG=?Ih3Qc$K`~A>P`N}N#pUzg3h<5d zEe`-{o&zz1ym+kEx`SoY|G%nP22=poxN3ANxt{T(f<6%?M5m?(v}7tmRSU!LnrArT zxpa82|H#z^JkA9g5%7!o>?24C3;Wi3Tt1-U(LT>>)`^F4w*i>w^~Qb0(D3`V)7FI6 z<=4W{?e<>^OcdUw?0`t^a!0;&eqIIzo_z|}IPS7ctiQ?Rt>e+IWajldevKj^DM~)lI8bSizB8 z>Q`=||1D~)JpvdSdy1#C5NJ*VeU^Lp%_{n#QhWMFp2E7b1UYF+6(8bg>zeRKb=aua z(tt{B{~0Es{VquZgG@CHoFl4(F-eLG!=uJmFe{NhQ+COc>DfEZrxuyrsXS-pT<(Je zVWA(f|I@&+MhJog5a*0mUzF+lkca%W=O5!3Db2?L&*pR}V~yg|1LMCyTlug+lg~fj zj*;2QHEdJm3Is+2V_Nr&-yGg#JMA#hGIi&Fxy!NU3Fyu`*e5Qo89^nd_{$zTUI=Zt zkZ!5-DGKKk(U$qA-Y_DE3lv=pk0|nH>>+ilz8!Q;>7!R%BDWiD0LIT=OsC8zUbX7| z)paA1@3-?y+~x(InA&^{fxiOX)nZ?>{d4cEpOnQr%pv`CGiTTB6m@GlI)3* zr!bH68(hLR{O}YMH*)6jJ#ms*Y^Vt1kO&oYLLuZU|AiAbyzY8A*ohEmXcuJ&>i*=% z^~VXW!+p!4Kx!GFAw2H$=Ozz$kf0fI9{aD$y~?PwbRF|_c#%~C$0ICu4N1oOOyYP!|6Xmdj-`1|N4gR zj3ZVDz{w8Oy$8;Bc6Po4ZKQh~o=huB>$L_>b)4V4UH7gAX4|jceTWN4DV@j=^u5gy z%po;CNw}fb=@SxK7+n+nuQ-yMT>aJMVTEIS$KUS zVu0g1IFK!}N(0Z=7mAvT_AF2g8qkI)K4kFM#){qRf0?L5japF=Bz9N<6z-PM@SSnDrxG(A@s5Lmr&o>WI}M%!oD0sc-8o9JPgo5$nulI+Y4%71-gb?gE%jVp z%c_!{KI@$l2)xoy38vfjGUpp2JGqXDJh^>1P+FRF6KW@+P)VxH{$5MwtLyV6_XgO) zX^fw@Fx6G4x*y_l+?mB#@UD!M*~SyOdWuoANr<1Uo~v-JKO;_TQh)>1>jO^=+^Lu6 z$3D*c({Cdh)tBZabIpCu71Xz~q<+y)E-Z(8q%U8LTG1Z#w(wX+N7(ONf2TPgUJM^u z*6~Gpdg#Vyt)xEmdbA7kaDQW6gq*5#fhD-$f|M7=+whb-_MSo0sDQ(KZKQtNKt&p^ zs@SnRmhP_EEEnItu?G?)^TzY<1d#|+_6jzr+Zxk|Ko}w_T52REB?UNaIr~w}Ikh%b z@$ym~fUy$MOF77u7Byq@;+CdMySR z^JlDsNNq7=U^ZhhUXV>4DJ)|QeJ8(F)p_(1q-uKAiJXQN0yPY^JqcARAb&5E9BjkD zdaHY>i+!|ymCVMXRjV#^=dEzMdsls@TwPE;a>e?C`bOS+H3y0NdK9nM*vADMygs*j zuFRfB0g~PRghR4^tf`!N~V59%Oa12uo3;$0UEE{5YgT9TK$26z^K! z+==TK1Qdb7Q7!c>`@$niqw@-d{&2) zr(;3LAnE7qJM5?iFTAN#8HtNbd)6mGB7c3p_X30upOkN)bhFp%c5h3ae z$(y1Wx!p_d;1=DIY!iaWqwSIZr0f9N6?Bl8W7i?BOg9pakFzDP8K4{iHVXib*V`;Z zt{TtZDar=Gd?JrQy#=N@K}4U{p9s_K_E0R$PL>Vg;^y1$aZ1ke#=im1e-eCdyl@ge zi@Rfb=pbU2kQH*2XHeXl5g|iBIX9a z^KF@EuAEpPp5{`zH+Z=Gin@qT&*6!0(;1W;G53C*bcti~8{X7c0$cX&7jnAx@;3Ds z5UHv3IKnAoerIjQL|>}}T59EAEa;%6m`%?=a-hlob|;|F{yR_?t{8w4f>EjM2ZK*b zt&@RrXiIzJT2&?hm_vD892H+=z@3%l?$|8?=D(@5HM&gKci#Qs^H&bZ{0gN11_|nn z{PcC1wdMnt_^5{PVK%vqIbUQI94kJby$~cH?tnq?aq563wxo{s(It{dWuA!N`Xwsf zUs=GPf9}KLVQJ$x=)72%JHZr5)EpwMO1r+xuX+{47(OO24YKh*2K}}k+U1fS>LnH? zMZQ*xJP^{KWh2z{={Om1=OVDA>C~^}+|?_P=&Fm^*EVAS67%E1+=y9G5gzlF8po({Qg(>h-rsn1_64uuEsog$i*FKq8j4f&+^ z$#4umOSlKhYCj(GIVkf3N+%A{-TyF;4zvCBD+<#N{U#4DYp}w(k3mJ{QAMw&Y)_TT2zx4@)2M zct?Lg!!ZiHKH#^3>yRs(dvV`^AaIqTl!k_e4V&@W_iSOx%I2s*NZ4WIOWXg1nW?}z{c+eq5cwm(NF7l%sU7}KqHbIjCJ!>o(VwGtj1I4l4uU+x!3R}o zgF(K4Js>Cu29*!r;QN4}N5#4s?b$8m_^sU4#&{8VNl_lRE}p_{NH3;ag$1h41*x^& zn-AG34FBge#|S6AfME2Xy*(Z!O&EvaM(`DphKJON&>PcDi!Ur7F>k-HSG%nEN3E_b zyj%rFrIq}+C*FN}(km`G`Nv|+g{?P|>?bC#Ut$H-BDg&Di)#?r<6P$VzqVikJKTY; z@`(Vyo~mkpHt4U>b9*rDIU7Fh8bf2BTsVsKuYyYFJWd{RdEUbiHd<)X&|hEz4zHg8 z-Ul7@J7Spv&_Rdt3MT{*j3ckyJM&>XhP0z%aUIC=qB`Gjc8>nHpPq?Kvoo#bDn#=C zD#iY&%K#xa76uGYgX6ptExaq-j4?sMSd`Nm_}FEY{AhSF6@I&x(VW#3=O@!#0`DQ^ zJ#XMxpulplA`N~-6C2d8kVX77iuJrE`NQ?4WUL+lN0<9}ZJ3btiQ5XZ`}8_;^ySaB z9U^Tgx8gDK9~WuIF#vVjyhm5GW59!4x6RqWlI<56Co8^Z?TPA{9;=YlR#|8s=I zfUvVFCy@On6l>LeFy=lR%~j|C$;Kp0-|{2#oq z4?Io+Rxw@jxAEGNZu%n{vL~_LT?st*RLP)7vsluQpzGDs-A_oanNC)eo21@uS8NNX3s-ev=UdnyXpz9bstrk_p;|I2 zj2n{oSLDq5ZWtUt0Ue zJEKiJSt@7Kpb#$A=sK~hzb%l~6MgMqub6vtu`?|jOtHNu=voqaR4hOh^ZI#@SM5T& zm-Y)tZ;W`q++63oQ`S1HX|nutQAYFZ$x(vZ&F-ZNuFAV_ z`D0mCXCN=>?@f`cSEV+U4_#XOw4&&DLkzy|^0?l~7nHXnQ6)kpNhoXIgv_&U<`{Ma zjS*|*ApQ1;pbh#S8jG@S8oQ$TrGoh@heU%Sl$WOi!XyFbd6Sl)EZOhq7OxOyHggOo4H_ zni*RJD~4Bw_*hv#usZK)?Nz)-f7E7~NS@1ApjcE|GW~bv@)U=4r}U#Y-1%`=?mk2Y zp~ZoAxf~1Uh7DJ(%7-RJ^)J`&fBdt!>3Akh0*?=oo+r9kb$xU%L@M*y465zj^>FYKAHc$_R4RMy7qrHtr?H{ z`*<+6CHOo6jGG0+;_N@WTy?OQrKNVw|JNCj%~ZuR0DV=>Sh~k%K9~_99e6|i*mpyC zyq{l(W=7q6N=m%d&Kvns2NiVbH(NN+|0c!o2OL82wAjKD;*=(0} ziV%jVyd~ew+7FZO4O4xcA|K^kaUnGVS%ggUnt-v_t6qPI+h}1Ofbw8_FVjfjv1RoH zfnI*2KVyF}UJ-z4wZ&Ww+1|`(!rySGR)gpl$G7y(l5JW;le;-@5f+brnWl8gq6s?>Zg<@^IshOH>%3howlQ7K*I2Cg5B(1q{<})@{M|d%$J@L; z74Kk%ZWIGe4=3^!yhClh|Go1L8JHWnqJ~ue!K!~E7OYP!9Q?Z<8O$x0TmJ>tBV2MA zqW-G_`xGMs3+OQ(hYj0*1o#8*VVGw{w!`G+j3v~;epe=#&wGKlU@n{_p{?^I=%15B z5tjGw(I**I=~ctuO>1-s#M_37Ggr!ff(HQ5AO^Oq2!5hFk#(Yw5}#Tvf*+XbS-gV* zXL2jW79Tu+AG{}EG>>UXN9QqYceN)Cvk5*@~Tfe6#cbN??Lx&{a@ zQ+?YBE<@1C@gX5YNh{v0Fv&ZXr)6LV_;6t*{f{%jn02tg40nP)rL4k$4$9q9Jr!<& zDKCg1iW?oamNn|NhvA6Ty0~i;Y!T?N9NQ;l>AxB6cCQ-#L;0DRzdeAyu}TT%KUH?= zZn0=EPj#h*DOOPf;Zbjf@#B-HTKZp6CsBCz<;v0COIV-V#rmZGA95K;!Avg-PJK_E zNdS4JR;2oBHdW>=IBtDSWHVA&Ls;Sw&DQ$27x+d9i@6HuO7AYnN%Lv*qV(n%A;@O- z1FrAf2Ov_>Y0}mO-9V|gBKCDetMFNXA`Kh>m`z|i;!iX87!|fXPru5a?_dC~P@tBd z^|$^Ag;!}{++lvVjP7ysD~#fGHE>O`L5Bm6p8DCnSE~u=YnUtzd7e4Kw)YM07a?~< zeNy$awn|SDT28<_Jl8)>YGI<^E=a^Z5I{(U4hrz?6PF={ttY*}u#WZmlab_a_C2N@ zFoPw$?tFk5EWx+EJVEdU1l-ujofz|p+kx|YBR&)fdF6AEZ7g=gWC1eorm?dY|SUj#=aFw(DI=K$XunbxFHzQ{+fo;0t}M$1ynvkUc+>Uu7(hZsRU{4EspLzSpkbwK6{=+h z2hj{S#Ls@TBVr=zI7WR5CHoW$MVD$!%sVgEVf8EeDYh8|gyJ`+-)4&1-5nqCH5XDP zmw$P}mMeOG@38N`^uDP7$Sdl%>Tw|6t*%5lk38Y)47YrK?eaaS14Nw<~&;dH1b%FGGa5#zTZ6>$Y(g!@S}j( z^}>6l0%+v=Ar)6HNp7^!?pZ38>_TF=(7S!6SqLDQ|177-INIyy#aYGe$YRjXU_N}+ zZ!9icT@&rEh!Rqlg6rVbZ4T#}Q!=i)P(hkOKABv~Q;h9idMz9~frsXiWJr|mt%N)wUg}IHD z3QA&mCNfN%ZLLvAV$_DbaTL&c??`JmuS|M$RiqNVQ0FkZe>JZ(DGV5p7YzK;#}X~2 zgjzc%-q?b|5C$|F6bSzkjXj>q#&aP@vvElV&p(cSVOikilOrSg^Q|PnXxo}%K zrcJ(qu|nmFXm3Y?wT#5Dg$IcuwKrAy*pkC^*1iXgP-Rvl_t7CZG}G2Z5&@TP3ze)CfaAx5hk_qz~fm4r_AhPTn@FIbHa3d#s=rQUF1q4G&&Y3bo` z3=jXQsp&t%!epZs-Aha%-F5)=>o5X%($>M^P%9s75j=m2^$33N1=s=QYk)ip;v@Xz z$eV`mPPyMl9`}4T^Em(n*>H;yOE1L@nO9Hk`_63s^*M39JmBVdLtaOr9aVa~xB?=z zu-+Pd8-7Znp+~Bq$w6@v>1`t(Ef0}$ti*-9U(KdN@PG-uY`IU;S zUQ6uAh1%|SHS3@Dj))O1KErdNKZh;H+Il86QJMw`Nr&%XiC`?MFI?t2e>_|&uu3@f zVUQGBUkZoUBQ;z&ionz?0s1Zs2!6VMo9h0NdU6RHgldzM7J7&6g9f_H+N^bZo@Mzt z`%^}Gikzo0Kkhbp4QGPDhSD?akeczT#BWNCKH92W8roORZ9~&uru+(7_6r9ESVd)_Nfg9zqwa#M9aFfqp%g74;4kJ19{B z_e&@@ckY_5ASnI2p!nJGrz;)?8b*Q_t)Ny2Z$J>^akc*H_ zs4pXzZP%;we?|z{qcii5X)UsJF~N`>LNhMs@}f><7(EgMP(@-ap{nM|m{XA9FXwZZ zMF*ZFv1kQWop;OE*j4({s;i~e4HW^6^c(tj@7RBV4+mkH`-^h5D}&~ft5VHRQ$zeY zm0w2z0#=q~Fvv?+L6ZlGrY?eUgotF+_Ch-MH5gdrfo1MDL*jf z6^S*rSxQ~|H1TsA_VTT+g~6MuB~7?<$zK_3U89<=getNCWVrJpSa`D>ezPR%_Ia^mzA5j8)c_gn?Sf+pc^x@g3@mEk_e3s>i zf%~}|3gvJELtFrGk|Vwt2@a*DxW#VuwkD>ibj28vE6?QCM$&%!$tQh`9U8V`yqwuqH}i5*vLsm|Ml1 zo_zqB#`tvpJ)aWV>E`Fy`ZL|O!_Z$)LZgASun#G>77K4~Q~>a6INIBK#pvul4U6{v z14n@-mOwW{-DTUZvDW}=@&SZ)@-Y2NnL^-N{0jjblR4qCYI@%$+Y6UUa}QN)#@o?1 zrpkaud%zLXti;y!=BQKm!%nILU`Xf*&4%Rx-bYJ8OD4?i`04nkmrJIV_z;#!rQ-TZis$y5isS?*8-62JZtiQf zbaTqd%I!DO_+@0A$O1+4b9_xWHXr!|Mx{ah(lZfn^kNDcfO4sw$5a7L#gMxpu_EJ*gunJOm?BptLs{t(%v~v-hSNa z6Ws~a@Wat~mp6(*m^hi&=OGzUm5v}V*7D(4f6@YpNWF{5w>*hT>8hv-JL*Q)B+CmF zn-3}GOewE#c%Tu70iUfAdXupqK26XpZ3aw9bmJ`oy=@7YTbhx17~|+hn5>$qUAnCb zy!BDS`BL{AzH#&IAr9uJqDPP1{{)EDg@|{B*Y)_MiA$09e3#<3B_v9@q~6Z=`q}5j zsXW$C=0nYz$(LMHygH!)4kq#L&do`Pb{GzSKU&X@8}AudLa^UHv5UGpz>?JkwGMJT zNiAYX_|dmr9L1v+8=NOJX3k4d9%*Ytg`889fUNQ!fZ*d3n%;zkJJ3%gfGmQUOSe>> z73{!FL* z{j%rh&EZJq@4N%Q2T<^BDKAB_b>RK94n6IUm<^aYGAdEqz#@ZgUHI2d&R)jUTXhGt ze=%TJ7w$JkRBZQMZgdB2oX?fxxX|Ei-PUIg=?>dDufNi{zh>MhRa%SR!uZM-*-CNX zQB+ohJCY%`P?yH~bWUO)U+!?uWxkSDu`ou#5u~Kz|Cp9j_k;YcxbS;=g!;CikGFa_ zYye08Z zzt<`~vR#}hN8MP{Kmo5 z;r)x|sCxTQY9H(NrT)ETvKKZ-VN!N@D{FBTCz3Q|jk3#RT-iuoE;QD8mX~WB5hHHQ z7t}Tzly91H$p`bl?3Fz|1n-Z2+;H9x$JhNpIF(G&j7|5Bypnu~oFBkMf=ul;`BBGH zwR`E;r&ME>%m8NuqNyB(nqCjh8*289+YYwv9w(O2G7q(#=FGCty_Zq#mQm}eqg-}} zJA7jcJuYhZ>gPNyQrRB4v<0uL{3Tj&NLkVb@{Y_eOxaX)@|rzBgQ1n?y*(>y1VSGU zak{r(+Gt=yF@J^KPKK9?onK z-(_=yUX(#nqu3dsqz}k>(NC4~?Xwek2Gje~an~dfs21~4Yj)i}4}cHtBHKfYdzDX} zryaF(q>}BKb^E_sE~C5^u;RT9cdZI)DfKdXT%Q<1NbD8x){O(CO+jB3uNzqZs#;@t zf44TKRot;M)HH+5%Wxo4avv82NXL*IU(-ONYKtub7B53e^dkd+d>He0jj>{q(uxq3 zmf5lpV$uaWu|>j05I&wZ5x7YOKb$fX5B(=`EEA58F}P>Bf@Nzja{g-jkoS{bE#7`} z-IeYBoeg7{r(^>7Xe!^}z=s#bvc0O7+PbZ8^HokQvSb*xCIFPRu{!UIy{t~`w!f{x zKd!TyNyJ4K9{{|^3%~T@=ckkunNfeNBMGX_`%?a1mI>#lT72ncn$rJ9vt z*hcHY+@P6J@)14N2A&v9NSVy_4?>&rq%SvNop++4SHW-J!DO*3ic00FJ7dSNNyFMA6HDs zg!kb@xgqdbVnyMbrLn6(gft>rBlb8t%L_}TOW)3^iZSFUU%o*%%NmHwdM7ghcV_sp zoNdOt|J$7tKvp9p!cl0=1tb>INaMr&cFL}s!+u&bXU}xdT!G5_7s#dOV_)`57ipxF zqbgv`>l-ELu-o!25nfm1zTapXFy?85wg=(FJ!~WB;})cbf@E_A)c4$uhS%y`_;RW6 zz2?M@R*7Dy*!Q^8aPOB~=1<&{l-=k!VQrc#45?wNfSNR0 zu=#b17!}0iZgi`d?G~J=Y0jYGj_?3j_QG=8+}(x7w(bb6<5{LDxd?=d z>k?B^Pw&6aG0WMr(|tgT@LIOg>E^4)?r>Gs?8N^+`0Rw=X;a=>G^V9cH10I>IB?VOvgV@7O(YdTWg08gMGEBTYdsrh%XC8SdhL%> zEkvp>NC&2r0`TO+8g)V4A?{AcMWw%rzEqvKXQ+xPF7(N;ZJsb{b^?abMM2O(@Uk1x zk)FCZ4#92GNniHEyCED{QINq1GCA)4=y;GCTu|g^!Hpk*suU1HH&MB*IiDR2?ojl? zYm=8)43A^mMAYuvJ%~0P*r{k{Cr``yD!1T{KuyBvrzHGACCoxk{6*63)@p5jS*C?B z(EF(XVM)WHJa8>7wYrB-^ND;e^7i?`7={Nl6w!sn-oejHlI@^g&NZ`A!}Tjtrp0r| zd%Odq@B%8U3(r)a9S=(@iNm)W0j!p^x8{#4PGWCzdL~{{Pd@!p5wWt|K*QMn7`A5>_|G2BmsDSr$JrYs5QA zNXf?=<8anX7{58qy72QZ;SnA1Gx%r@oxtnm>B9oq?34T~*G`2-$)NXA@2b5lsMHV} z(srgBRL{5eX$K}9%@EA>`>oDse^x*q3N@?igzzJg+xlof!;5UGJ@01J^qL`v+Yo1n zUY5mw5r@JhHrmD{<)wN#j&>Qsh z#Hywfmt79lzR;)5yI>&D;!U63MF~RGWYXqik>GN5RwmMR?`UymNBI3oQ#zui&G@M} zmsSDio|_$lIzcj$iUt6`C%rI?c_Z_w?+J=+cHF1-7HqzH@aNt39i`JBN*Gl^&>z$1 zp8&hhgDYOGR-}fDT(b_*LoN}l+CdQgL5$&h7By_T4!Q3V%G|(P> z?OYw}0_~0=e_hIvtD?BOgQH|Wc{4YK4tk2P2>4nax98WIy)UUJ*6581B=teyIT{iE zp|@s$F3SuJPNR|CP~Ot1+5qelhlfN@;v_obGaR*smXz;fSIdjn#wxw1@nX?gXvQ=D zkxxZW{|v;p+!;6PQ6iVDpAk4H_o@SuVRbTCII4&ipDsS_ZzUz4gIMzn?|5Ide}=Bi zVjAQ!paBj1B17jsrP%^5h|p@C&*ns(YI_bbF%+($#y3=uTrzgjHhpO68_jO~h9L0* zV*fcpSh2kh@IeP}6Kt}2d{)moGDlyONibY4>L_3faCMB659(|@Ab2kq0!~tXpU$7{ z8DHHSCV7({9pRP|Xsg<&h8eFHb;GRhpiICl@sQdhRinikCH_(~y4I@bJL*kxfi4Zp zjQPYon-&g7gaq|~A7clpXy;^H&-KDdBvq!2Lu@(8C*LsFL?NwT6=4ocTHN}fVthO~ zebf~$G=40ppG{Z!t9F_v?ZOov_f2(DZ&PadZY>L?o_q1)Ttr3Yj_#ETYs~jj%l^4hYqz4Ou+1kyDUa6YRyUWM zUkE|W&0<%dUT_|XYiZ?i41LeLU~LuuI<)`D-vI%PweG3uBrl+-ZQi-C?+GMM07|K> zq8*K}*XzTGcjmH_&vv<=7@IKC3jm}p!vUt!F5CQdvBNA*U8Q^PC7)4b%=VcI4u8@K z!GSPWidCFvhvDE>Ut+#VKgk_`(FCgDU(%dlTKe;MQi@Z*-yo8XxDrn-RRXY66|FZU zMs9@e>-9?!Tw()&BRl(${u|S@(I+D9NAFpUvsJzDJ(|(A{-jzt+mcPq1>9V4!=B|d z0D&9|>_Jk;eC8C%Ve6xYdZ+&(0tY<~KmGCH8F|!vYzg@DgDvs|Z~C-jPpk?e0W&mH zVzGM8u?pfAQ=(WG@^f3I(meHXcg7Z1tZ2e$i$Qc+Lq`5cY}0LeHKI|v*7-!_wKXpd zItacHv%<<8Fz3Qy%MiZ^M2N#BnyoP7Ed~%zm^Vjz_;3Ys_&Se; zbO(s4a4783f>S>YvD|++Fz9Uwc+UqOEUZ4w{>q(r*$FA0$DfsF*d4|BD$Y^gZ!*h$@UQ1@}*3Y zc9rQ?sZsl3;s^F$!|(i;wn-QLzARdW-kSuECxeyVGY#JkE-EOzx>D+mnMlAVBDiu0 zA~SkSC4Nn~C?8Ms zBQ%P--)K{0z(^dNPP^7!Nh(%XXhBv?s?cE@eG+~mm0Aq2O7h^!l9OvfesP?uJ2T|> z4gj)Sy>i=Gs4G(Sz&CQv5Q~c#F2yHad+lSiF1WGqb71sAZQtjxGvJASy72qM-B{_T zlMA|yZms(z>+D*xvt`NATD$b0d3(dz5ja%o-U+(Ko1^zZJ|3Lx9})6_HAPlUYIy3@ z7Ds|Klh(l!#G!sz>Q1=;! z6uu{W{RBr|n`d}*BT;DWB~FOTFzL@mv)HrU^0+N0#!+6aR!N{6;()+x{Ecc-p;l}N`>9LjeN+H<{Bpvjd(!fF`q`Ztz-@Qbq6PBlXDN#z z=6JDy*WEMM!#E223Lraz3Sj-9~-nNspaJmdN#4{%(VaJ8y?KbotL4=Gd3NE6Mh1 zvic1?vG(*l#}YMkQoW`5I&S5PHkkU8Qq%xrO#ST+CUi}1t1g=Q%@V+4O6bneud5-l zV2M!exQuOg#^>l{dj@=Y*g9q9lGQAzD6Wras36HVfoaYrB7RtCS=nCF=sL@TX5sdc zL>^npq|ZVSPlp!6k87&POK~8nzka@?@ft&|mwkte$)vQU-Q zAv)_V(pwL#j8+*c-+Pnt{M*d{R_ajV8wRs&I_0ucy%_%^mkM z^gxV$o8Eq7YG@vfxfsZv|3-o^x1T*c{&RKnV@ zm?JTbF3b1pT}=7qV2Icq)jN3lI<<~j8iu?G?s5M$|CY>PY%1l&){PqwI{Gd9($+-6 z+3%N4q#i=J16538X0v7)^~tweOcLj;2qG-{o}B2s5)X+7cc)juC+4~yOwvx&VzYbC zrzc#S((^QQS$Bob?7hxMoxZESvC}{vtCjEe{C`ZHbzD^2_xBY+Km-N^Mv)pqNF(|Z>F(|vy1RLXd%xb_^V;WMW}mZbt@YV!z1e>7P>nLDHT_aM z7+(~0NydZ~O&8TesD!?tRFlxP#i7DYA6Jnqu5lW-@N?RXb@p1&G;VR{BNdDhgT8P!^S$CmSpcl_yn%(ZXo_+0|)LaOu_V%X$ zdiJ^iPg%oHKyVpGYTp1Ep?Omz_htLWL~${DhL8OZ)q7yCU-qF+Q)q66{w`ynun=EzRKsRKR-{ez+2F#QLZ!4 z=Jdqt+&}P5kgk;&MnTYg1tPV)jy}gN(UxPB%p4_j63p~#dq2**5pwV9v1*m0NL2

vRRMAAR9@WgKHdWZn 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ȋi&>ld%0 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, + val debug: Boolean = false, + /** Used for testing purposes only. */ + val exposeRaces: Boolean = false +) { + init { + require(replicaId >= 0) { "replicaId cannot be negative" } + } +} + /** * BFT SMaRt can only be configured via files in a configHome directory. * Each instance of this class creates such a configHome, accessible via [path]. diff --git a/experimental/notary-bft-smart/src/main/kotlin/net/corda/notary/bftsmart/BftSmartNotaryService.kt b/experimental/notary-bft-smart/src/main/kotlin/net/corda/notary/bftsmart/BftSmartNotaryService.kt index 391b92a630..905a8fe569 100644 --- a/experimental/notary-bft-smart/src/main/kotlin/net/corda/notary/bftsmart/BftSmartNotaryService.kt +++ b/experimental/notary-bft-smart/src/main/kotlin/net/corda/notary/bftsmart/BftSmartNotaryService.kt @@ -20,9 +20,9 @@ import net.corda.core.utilities.debug import net.corda.core.utilities.getOrThrow import net.corda.core.utilities.unwrap import net.corda.node.services.api.ServiceHubInternal -import net.corda.node.services.config.BFTSMaRtConfiguration import net.corda.node.services.transactions.PersistentUniquenessProvider import net.corda.node.utilities.AppendOnlyPersistentMap +import net.corda.nodeapi.internal.config.parseAs import net.corda.nodeapi.internal.persistence.NODE_DATABASE_PREFIX import java.security.PublicKey import javax.persistence.Entity @@ -54,10 +54,13 @@ class BftSmartNotaryService( } private val notaryConfig = services.configuration.notary - ?: throw IllegalArgumentException("Failed to register ${this::class.java}: notary configuration not present") + ?: throw IllegalArgumentException("Failed to register ${BftSmartNotaryService::class.java}: notary configuration not present") - private val bftSMaRtConfig = notaryConfig.bftSMaRt - ?: throw IllegalArgumentException("Failed to register ${this::class.java}: raft configuration not present") + private val bftSMaRtConfig = try { + notaryConfig.extraConfig!!.parseAs() + } catch (e: Exception) { + throw IllegalArgumentException("Failed to register ${BftSmartNotaryService::class.java}: BFT-Smart configuration not present") + } private val cluster: BFTSMaRt.Cluster = makeBFTCluster(notaryIdentityKey, bftSMaRtConfig) diff --git a/experimental/notary-bft-smart/src/test/kotlin/net/corda/notary/bftsmart/BFTNotaryServiceTests.kt b/experimental/notary-bft-smart/src/test/kotlin/net/corda/notary/bftsmart/BFTNotaryServiceTests.kt index 1924470588..b69255d24a 100644 --- a/experimental/notary-bft-smart/src/test/kotlin/net/corda/notary/bftsmart/BFTNotaryServiceTests.kt +++ b/experimental/notary-bft-smart/src/test/kotlin/net/corda/notary/bftsmart/BFTNotaryServiceTests.kt @@ -21,9 +21,9 @@ import net.corda.core.utilities.NetworkHostAndPort import net.corda.core.utilities.Try import net.corda.core.utilities.getOrThrow import net.corda.core.utilities.seconds -import net.corda.node.services.config.BFTSMaRtConfiguration import net.corda.node.services.config.NotaryConfig import net.corda.nodeapi.internal.DevIdentityGenerator +import net.corda.nodeapi.internal.config.toConfig import net.corda.nodeapi.internal.network.NetworkParametersCopier import net.corda.testing.common.internal.testNetworkParameters import net.corda.testing.contracts.DummyContract @@ -55,7 +55,7 @@ class BFTNotaryServiceTests { @BeforeClass @JvmStatic fun before() { - mockNet = InternalMockNetwork(cordappsForAllNodes = cordappsForPackages("net.corda.testing.contracts")) + mockNet = InternalMockNetwork(cordappsForAllNodes = cordappsForPackages("net.corda.testing.contracts", "net.corda.notary.bftsmart")) val clusterSize = minClusterSize(1) val started = startBftClusterAndNode(clusterSize, mockNet) notary = started.first @@ -71,10 +71,10 @@ class BFTNotaryServiceTests { fun startBftClusterAndNode(clusterSize: Int, mockNet: InternalMockNetwork, exposeRaces: Boolean = false): Pair { (Paths.get("config") / "currentView").deleteIfExists() // XXX: Make config object warn if this exists? val replicaIds = (0 until clusterSize) - + val serviceLegalName = CordaX500Name("BFT", "Zurich", "CH") val notaryIdentity = DevIdentityGenerator.generateDistributedNotaryCompositeIdentity( replicaIds.map { mockNet.baseDirectory(mockNet.nextNodeId + it) }, - CordaX500Name("BFT", "Zurich", "CH")) + serviceLegalName) val networkParameters = NetworkParametersCopier(testNetworkParameters(listOf(NotaryInfo(notaryIdentity, false)))) @@ -84,8 +84,9 @@ class BFTNotaryServiceTests { mockNet.createUnstartedNode(InternalMockNodeParameters(configOverrides = { val notary = NotaryConfig( validating = false, - bftSMaRt = BFTSMaRtConfiguration(replicaId, clusterAddresses, exposeRaces = exposeRaces), - className = "net.corda.notary.bftsmart.BftSmartNotaryService" + extraConfig = BFTSMaRtConfiguration(replicaId, clusterAddresses, exposeRaces = exposeRaces).toConfig(), + className = "net.corda.notary.bftsmart.BftSmartNotaryService", + serviceLegalName = serviceLegalName ) doReturn(notary).whenever(it).notary })) diff --git a/experimental/notary-raft/src/main/kotlin/net/corda/notary/raft/RaftConfig.kt b/experimental/notary-raft/src/main/kotlin/net/corda/notary/raft/RaftConfig.kt new file mode 100644 index 0000000000..75996a6ebf --- /dev/null +++ b/experimental/notary-raft/src/main/kotlin/net/corda/notary/raft/RaftConfig.kt @@ -0,0 +1,18 @@ +package net.corda.notary.raft + +import net.corda.core.utilities.NetworkHostAndPort + +/** Configuration properties specific to the RaftNotaryService. */ +data class RaftConfig( + /** + * The host and port to which to bind the embedded Raft server. Note that the Raft cluster uses a + * separate transport layer for communication that does not integrate with ArtemisMQ messaging services. + */ + val nodeAddress: NetworkHostAndPort, + /** + * Must list the addresses of all the members in the cluster. At least one of the members mustbe active and + * be able to communicate with the cluster leader for the node to join the cluster. If empty, a new cluster + * will be bootstrapped. + */ + val clusterAddresses: List +) \ No newline at end of file diff --git a/experimental/notary-raft/src/main/kotlin/net/corda/notary/raft/RaftNotaryService.kt b/experimental/notary-raft/src/main/kotlin/net/corda/notary/raft/RaftNotaryService.kt index 3913551802..97843cb13c 100644 --- a/experimental/notary-raft/src/main/kotlin/net/corda/notary/raft/RaftNotaryService.kt +++ b/experimental/notary-raft/src/main/kotlin/net/corda/notary/raft/RaftNotaryService.kt @@ -6,6 +6,7 @@ import net.corda.core.internal.notary.TrustedAuthorityNotaryService import net.corda.node.services.api.ServiceHubInternal import net.corda.node.services.transactions.NonValidatingNotaryFlow import net.corda.node.services.transactions.ValidatingNotaryFlow +import net.corda.nodeapi.internal.config.parseAs import java.security.PublicKey /** A highly available notary service using the Raft algorithm to achieve consensus. */ @@ -14,11 +15,14 @@ class RaftNotaryService( override val notaryIdentityKey: PublicKey ) : TrustedAuthorityNotaryService() { private val notaryConfig = services.configuration.notary - ?: throw IllegalArgumentException("Failed to register ${this::class.java}: notary configuration not present") + ?: throw IllegalArgumentException("Failed to register ${RaftNotaryService::class.java}: notary configuration not present") override val uniquenessProvider = with(services) { - val raftConfig = notaryConfig.raft - ?: throw IllegalArgumentException("Failed to register ${this::class.java}: raft configuration not present") + val raftConfig = try { + notaryConfig.extraConfig!!.parseAs() + } catch (e: Exception) { + throw IllegalArgumentException("Failed to register ${RaftNotaryService::class.java}: raft configuration not present") + } RaftUniquenessProvider( configuration.baseDirectory, configuration.p2pSslOptions, diff --git a/experimental/notary-raft/src/main/kotlin/net/corda/notary/raft/RaftUniquenessProvider.kt b/experimental/notary-raft/src/main/kotlin/net/corda/notary/raft/RaftUniquenessProvider.kt index e9aac5a99e..f3b7671a3e 100644 --- a/experimental/notary-raft/src/main/kotlin/net/corda/notary/raft/RaftUniquenessProvider.kt +++ b/experimental/notary-raft/src/main/kotlin/net/corda/notary/raft/RaftUniquenessProvider.kt @@ -26,7 +26,6 @@ import net.corda.core.serialization.SingletonSerializeAsToken import net.corda.core.serialization.serialize import net.corda.core.utilities.contextLogger import net.corda.core.utilities.debug -import net.corda.node.services.config.RaftConfig import net.corda.node.utilities.AppendOnlyPersistentMap import net.corda.nodeapi.internal.config.MutualSslConfiguration import net.corda.nodeapi.internal.persistence.CordaPersistence diff --git a/node-api/src/main/kotlin/net/corda/nodeapi/internal/network/NetworkBootstrapper.kt b/node-api/src/main/kotlin/net/corda/nodeapi/internal/network/NetworkBootstrapper.kt index 1747cc2333..c581577c57 100644 --- a/node-api/src/main/kotlin/net/corda/nodeapi/internal/network/NetworkBootstrapper.kt +++ b/node-api/src/main/kotlin/net/corda/nodeapi/internal/network/NetworkBootstrapper.kt @@ -126,8 +126,8 @@ internal constructor(private val initSerEnv: Boolean, } return clusteredNotaries.groupBy { it.first }.map { (k, vs) -> val cs = vs.map { it.second.config } - if (cs.any { it.hasPath("notary.bftSMaRt") }) { - require(cs.all { it.hasPath("notary.bftSMaRt") }) { "Mix of BFT and non-BFT notaries with service name $k" } + if (cs.any { isBFTNotary(it) }) { + require(cs.all { isBFTNotary(it) }) { "Mix of BFT and non-BFT notaries with service name $k" } NotaryCluster.BFT(k) to vs.map { it.second.directory } } else { NotaryCluster.CFT(k) to vs.map { it.second.directory } @@ -135,6 +135,12 @@ internal constructor(private val initSerEnv: Boolean, }.toMap() } + private fun isBFTNotary(config: Config): Boolean { + // TODO: pass a commandline parameter to the bootstrapper instead. Better yet, a notary config map + // specifying the notary identities and the type (single-node, CFT, BFT) of each notary to set up. + return config.getString ("notary.className").contains("BFT", true) + } + private fun generateServiceIdentitiesForNotaryClusters(configs: Map) { notaryClusters(configs).forEach { (cluster, directories) -> when (cluster) { diff --git a/node/src/main/kotlin/net/corda/node/NodeCmdLineOptions.kt b/node/src/main/kotlin/net/corda/node/NodeCmdLineOptions.kt index 6d04567d9d..4f4ba98c1a 100644 --- a/node/src/main/kotlin/net/corda/node/NodeCmdLineOptions.kt +++ b/node/src/main/kotlin/net/corda/node/NodeCmdLineOptions.kt @@ -88,12 +88,6 @@ class NodeCmdLineOptions { ) var justGenerateRpcSslCerts: Boolean = false - @Option( - names = ["--bootstrap-raft-cluster"], - description = ["Bootstraps Raft cluster. The node forms a single node cluster (ignoring otherwise configured peer addresses), acting as a seed for other nodes to join the cluster."] - ) - var bootstrapRaftCluster: Boolean = false - @Option( names = ["-c", "--clear-network-map-cache"], description = ["Clears local copy of network map, on node startup it will be restored from server or file system."] diff --git a/node/src/main/kotlin/net/corda/node/internal/AbstractNode.kt b/node/src/main/kotlin/net/corda/node/internal/AbstractNode.kt index 72eb7e1bc1..a8ba165e1f 100644 --- a/node/src/main/kotlin/net/corda/node/internal/AbstractNode.kt +++ b/node/src/main/kotlin/net/corda/node/internal/AbstractNode.kt @@ -268,7 +268,7 @@ abstract class AbstractNode(val configuration: NodeConfiguration, check(started == null) { "Node has already been started" } log.info("Generating nodeInfo ...") val trustRoot = initKeyStores() - val (identity, identityKeyPair) = obtainIdentity(notaryConfig = null) + val (identity, identityKeyPair) = obtainIdentity() startDatabase() val nodeCa = configuration.signingCertificateStore.get()[CORDA_CLIENT_CA] identityService.start(trustRoot, listOf(identity.certificate, nodeCa)) @@ -323,7 +323,7 @@ abstract class AbstractNode(val configuration: NodeConfiguration, networkMapCache.start(netParams.notaries) startDatabase() - val (identity, identityKeyPair) = obtainIdentity(notaryConfig = null) + val (identity, identityKeyPair) = obtainIdentity() identityService.start(trustRoot, listOf(identity.certificate, nodeCa)) val (keyPairs, nodeInfoAndSigned, myNotaryIdentity) = database.transaction { @@ -400,8 +400,8 @@ abstract class AbstractNode(val configuration: NodeConfiguration, val keyPairs = mutableSetOf(identityKeyPair) val myNotaryIdentity = configuration.notary?.let { - if (it.isClusterConfig) { - val (notaryIdentity, notaryIdentityKeyPair) = obtainIdentity(it) + if (it.serviceLegalName != null) { + val (notaryIdentity, notaryIdentityKeyPair) = loadNotaryClusterIdentity(it.serviceLegalName) keyPairs += notaryIdentityKeyPair notaryIdentity } else { @@ -840,24 +840,14 @@ abstract class AbstractNode(val configuration: NodeConfiguration, myNotaryIdentity: PartyAndCertificate?, networkParameters: NetworkParameters) - private fun obtainIdentity(notaryConfig: NotaryConfig?): Pair { + /** Loads or generates the node's legal identity and key-pair. */ + private fun obtainIdentity(): Pair { val keyStore = configuration.signingCertificateStore.get() + val legalName = configuration.myLegalName - val (id, singleName) = if (notaryConfig == null || !notaryConfig.isClusterConfig) { - // Node's main identity or if it's a single node notary. - Pair(NODE_IDENTITY_ALIAS_PREFIX, configuration.myLegalName) - } else { - // The node is part of a distributed notary whose identity must already be generated beforehand. - Pair(DISTRIBUTED_NOTARY_ALIAS_PREFIX, null) - } // TODO: Integrate with Key management service? - val privateKeyAlias = "$id-private-key" - + val privateKeyAlias = "$NODE_IDENTITY_ALIAS_PREFIX-private-key" if (privateKeyAlias !in keyStore) { - // We shouldn't have a distributed notary at this stage, so singleName should NOT be null. - requireNotNull(singleName) { - "Unable to find in the key store the identity of the distributed notary the node is part of" - } log.info("$privateKeyAlias not found in key store, generating fresh key!") keyStore.storeLegalIdentity(privateKeyAlias, generateKeyPair()) } @@ -865,30 +855,41 @@ abstract class AbstractNode(val configuration: NodeConfiguration, val (x509Cert, keyPair) = keyStore.query { getCertificateAndKeyPair(privateKeyAlias, keyStore.entryPassword) } // TODO: Use configuration to indicate composite key should be used instead of public key for the identity. - val compositeKeyAlias = "$id-composite-key" + val certificates = keyStore.query { getCertificateChain(privateKeyAlias) } + check(certificates.first() == x509Cert) { + "Certificates from key store do not line up!" + } + + val subject = CordaX500Name.build(certificates.first().subjectX500Principal) + if (subject != legalName) { + throw ConfigurationException("The name '$legalName' for $NODE_IDENTITY_ALIAS_PREFIX doesn't match what's in the key store: $subject") + } + + val certPath = X509Utilities.buildCertPath(certificates) + return Pair(PartyAndCertificate(certPath), keyPair) + } + + /** Loads pre-generated notary service cluster identity. */ + private fun loadNotaryClusterIdentity(serviceLegalName: CordaX500Name): Pair { + val keyStore = configuration.signingCertificateStore.get() + + val privateKeyAlias = "$DISTRIBUTED_NOTARY_ALIAS_PREFIX-private-key" + val keyPair = keyStore.query { getCertificateAndKeyPair(privateKeyAlias) }.keyPair + + val compositeKeyAlias = "$DISTRIBUTED_NOTARY_ALIAS_PREFIX-composite-key" val certificates = if (compositeKeyAlias in keyStore) { - // Use composite key instead if it exists. val certificate = keyStore[compositeKeyAlias] // We have to create the certificate chain for the composite key manually, this is because we don't have a keystore // provider that understand compositeKey-privateKey combo. The cert chain is created using the composite key certificate + // the tail of the private key certificates, as they are both signed by the same certificate chain. listOf(certificate) + keyStore.query { getCertificateChain(privateKeyAlias) }.drop(1) - } else { - keyStore.query { getCertificateChain(privateKeyAlias) }.let { - check(it[0] == x509Cert) { "Certificates from key store do not line up!" } - it - } - } + } else throw IllegalStateException("The identity public key for the notary service $serviceLegalName was not found in the key store.") - val subject = CordaX500Name.build(certificates[0].subjectX500Principal) - if (singleName != null && subject != singleName) { - throw ConfigurationException("The name '$singleName' for $id doesn't match what's in the key store: $subject") - } else if (notaryConfig != null && notaryConfig.isClusterConfig && notaryConfig.serviceLegalName != null && subject != notaryConfig.serviceLegalName) { - // Note that we're not checking if `notaryConfig.serviceLegalName` is not present for backwards compatibility. - throw ConfigurationException("The name of the notary service '${notaryConfig.serviceLegalName}' for $id doesn't " + + val subject = CordaX500Name.build(certificates.first().subjectX500Principal) + if (subject != serviceLegalName) { + throw ConfigurationException("The name of the notary service '$serviceLegalName' for $DISTRIBUTED_NOTARY_ALIAS_PREFIX doesn't " + "match what's in the key store: $subject. You might need to adjust the configuration of `notary.serviceLegalName`.") } - val certPath = X509Utilities.buildCertPath(certificates) return Pair(PartyAndCertificate(certPath), keyPair) } diff --git a/node/src/main/kotlin/net/corda/node/internal/NodeStartup.kt b/node/src/main/kotlin/net/corda/node/internal/NodeStartup.kt index 10fc55f7e5..f26af3380a 100644 --- a/node/src/main/kotlin/net/corda/node/internal/NodeStartup.kt +++ b/node/src/main/kotlin/net/corda/node/internal/NodeStartup.kt @@ -18,7 +18,6 @@ import net.corda.node.* import net.corda.node.internal.Node.Companion.isValidJavaVersion import net.corda.node.internal.cordapp.MultipleCordappsForFlowException import net.corda.node.services.config.NodeConfiguration -import net.corda.node.services.config.NodeConfigurationImpl import net.corda.node.services.config.shouldStartLocalShell import net.corda.node.services.config.shouldStartSSHDaemon import net.corda.node.utilities.createKeyPairAndSelfSignedTLSCertificate @@ -27,7 +26,6 @@ import net.corda.node.utilities.registration.NodeRegistrationException import net.corda.node.utilities.registration.NodeRegistrationHelper import net.corda.node.utilities.saveToKeyStore import net.corda.node.utilities.saveToTrustStore -import net.corda.core.internal.PLATFORM_VERSION import net.corda.nodeapi.internal.addShutdownHook import net.corda.nodeapi.internal.config.UnknownConfigurationKeysException import net.corda.nodeapi.internal.persistence.CouldNotCreateDataSourceException @@ -189,14 +187,7 @@ open class NodeStartup : CordaCliWrapper("corda", "Runs a Corda Node") { if (cmdLineOptions.devMode == true) { println("Config:\n${rawConfig.root().render(ConfigRenderOptions.defaults())}") } - val configuration = configurationResult.getOrThrow() - return if (cmdLineOptions.bootstrapRaftCluster) { - println("Bootstrapping raft cluster (starting up as seed node).") - // Ignore the configured clusterAddresses to make the node bootstrap a cluster instead of joining. - (configuration as NodeConfigurationImpl).copy(notary = configuration.notary?.copy(raft = configuration.notary?.raft?.copy(clusterAddresses = emptyList()))) - } else { - configuration - } + return configurationResult.getOrThrow() } private fun checkRegistrationMode(): Boolean { @@ -298,12 +289,12 @@ open class NodeStartup : CordaCliWrapper("corda", "Runs a Corda Node") { val console: Console? = System.console() when (console) { - // In this case, the JVM is not connected to the console so we need to exit. + // In this case, the JVM is not connected to the console so we need to exit. null -> { println("Not connected to console. Exiting") exitProcess(1) } - // Otherwise we can proceed normally. + // Otherwise we can proceed normally. else -> { while (true) { val keystorePassword1 = console.readPassword("Enter the RPC keystore password => ") diff --git a/node/src/main/kotlin/net/corda/node/services/config/NodeConfiguration.kt b/node/src/main/kotlin/net/corda/node/services/config/NodeConfiguration.kt index ecf0c407f9..eab762dcdd 100644 --- a/node/src/main/kotlin/net/corda/node/services/config/NodeConfiguration.kt +++ b/node/src/main/kotlin/net/corda/node/services/config/NodeConfiguration.kt @@ -11,12 +11,7 @@ import net.corda.core.utilities.loggerFor import net.corda.core.utilities.seconds import net.corda.node.services.config.rpc.NodeRpcOptions import net.corda.nodeapi.BrokerRpcSslOptions -import net.corda.nodeapi.internal.config.FileBasedCertificateStoreSupplier -import net.corda.nodeapi.internal.config.SslConfiguration -import net.corda.nodeapi.internal.config.MutualSslConfiguration -import net.corda.nodeapi.internal.config.UnknownConfigKeysPolicy -import net.corda.nodeapi.internal.config.User -import net.corda.nodeapi.internal.config.parseAs +import net.corda.nodeapi.internal.config.* import net.corda.nodeapi.internal.persistence.DatabaseConfig import net.corda.tools.shell.SSHDConfiguration import org.slf4j.Logger @@ -73,7 +68,7 @@ interface NodeConfiguration { val flowMonitorPeriodMillis: Duration get() = DEFAULT_FLOW_MONITOR_PERIOD_MILLIS val flowMonitorSuspensionLoggingThresholdMillis: Duration get() = DEFAULT_FLOW_MONITOR_SUSPENSION_LOGGING_THRESHOLD_MILLIS val crlCheckSoftFail: Boolean - val jmxReporterType : JmxReporterType? get() = defaultJmxReporterType + val jmxReporterType: JmxReporterType? get() = defaultJmxReporterType val baseDirectory: Path val certificatesDirectory: Path @@ -119,34 +114,16 @@ fun NodeConfiguration.shouldStartSSHDaemon() = this.sshd != null fun NodeConfiguration.shouldStartLocalShell() = !this.noLocalShell && System.console() != null && this.devMode fun NodeConfiguration.shouldInitCrashShell() = shouldStartLocalShell() || shouldStartSSHDaemon() -data class NotaryConfig(val validating: Boolean, - val raft: RaftConfig? = null, - val bftSMaRt: BFTSMaRtConfiguration? = null, - val serviceLegalName: CordaX500Name? = null, - val className: String = "net.corda.node.services.transactions.SimpleNotaryService" -) { - init { - require(raft == null || bftSMaRt == null) { - "raft and bftSMaRt configs cannot be specified together" - } - } - - val isClusterConfig: Boolean get() = raft != null || bftSMaRt != null -} - -data class RaftConfig(val nodeAddress: NetworkHostAndPort, val clusterAddresses: List) - -/** @param exposeRaces for testing only, so its default is not in reference.conf but here. */ -data class BFTSMaRtConfiguration( - val replicaId: Int, - val clusterAddresses: List, - val debug: Boolean = false, - val exposeRaces: Boolean = false -) { - init { - require(replicaId >= 0) { "replicaId cannot be negative" } - } -} +data class NotaryConfig( + /** Specifies whether the notary validates transactions or not. */ + val validating: Boolean, + /** The legal name of cluster in case of a distributed notary service. */ + val serviceLegalName: CordaX500Name? = null, + /** The name of the notary service class to load. */ + val className: String = "net.corda.node.services.transactions.SimpleNotaryService", + /** Notary implementation-specific configuration parameters. */ + val extraConfig: Config? = null +) /** * Used as an alternative to the older compatibilityZoneURL to allow the doorman and network map @@ -167,7 +144,7 @@ data class NetworkServicesConfig( val doormanURL: URL, val networkMapURL: URL, val pnm: UUID? = null, - val inferred : Boolean = false + val inferred: Boolean = false ) /** @@ -360,7 +337,7 @@ data class NodeConfigurationImpl( override val effectiveH2Settings: NodeH2Settings? get() = when { - h2port != null -> NodeH2Settings(address = NetworkHostAndPort(host="localhost", port=h2port)) + h2port != null -> NodeH2Settings(address = NetworkHostAndPort(host = "localhost", port = h2port)) else -> h2Settings } @@ -372,7 +349,7 @@ data class NodeConfigurationImpl( "Cannot specify both 'rpcUsers' and 'security' in configuration" } @Suppress("DEPRECATION") - if(certificateChainCheckPolicies.isNotEmpty()) { + if (certificateChainCheckPolicies.isNotEmpty()) { logger.warn("""You are configuring certificateChainCheckPolicies. This is a setting that is not used, and will be removed in a future version. |Please contact the R3 team on the public slack to discuss your use case. """.trimMargin()) diff --git a/node/src/main/resources/net.corda.node.internal.NodeStartup.yml b/node/src/main/resources/net.corda.node.internal.NodeStartup.yml index a67e7cee5a..28f0651a78 100644 --- a/node/src/main/resources/net.corda.node.internal.NodeStartup.yml +++ b/node/src/main/resources/net.corda.node.internal.NodeStartup.yml @@ -6,11 +6,6 @@ required: false multiParam: true acceptableValues: [] - - parameterName: "--bootstrap-raft-cluster" - parameterType: "boolean" - required: false - multiParam: false - acceptableValues: [] - parameterName: "--clear-network-map-cache" parameterType: "boolean" required: false diff --git a/node/src/test/kotlin/net/corda/node/internal/NodeStartupTest.kt b/node/src/test/kotlin/net/corda/node/internal/NodeStartupTest.kt index 947c6f0e73..ec1da7a226 100644 --- a/node/src/test/kotlin/net/corda/node/internal/NodeStartupTest.kt +++ b/node/src/test/kotlin/net/corda/node/internal/NodeStartupTest.kt @@ -35,7 +35,6 @@ class NodeStartupTest { assertThat(startup.cmdLineOptions.sshdServer).isEqualTo(false) assertThat(startup.cmdLineOptions.justGenerateNodeInfo).isEqualTo(false) assertThat(startup.cmdLineOptions.justGenerateRpcSslCerts).isEqualTo(false) - assertThat(startup.cmdLineOptions.bootstrapRaftCluster).isEqualTo(false) assertThat(startup.cmdLineOptions.unknownConfigKeysPolicy).isEqualTo(UnknownConfigKeysPolicy.FAIL) assertThat(startup.cmdLineOptions.devMode).isEqualTo(null) assertThat(startup.cmdLineOptions.clearNetworkMapCache).isEqualTo(false) diff --git a/node/src/test/kotlin/net/corda/node/services/TimedFlowTests.kt b/node/src/test/kotlin/net/corda/node/services/TimedFlowTests.kt index 3dd2d51152..86c6283f62 100644 --- a/node/src/test/kotlin/net/corda/node/services/TimedFlowTests.kt +++ b/node/src/test/kotlin/net/corda/node/services/TimedFlowTests.kt @@ -15,9 +15,7 @@ import net.corda.core.internal.bufferUntilSubscribed import net.corda.core.internal.notary.NotaryServiceFlow import net.corda.core.internal.notary.TrustedAuthorityNotaryService import net.corda.core.internal.notary.UniquenessProvider -import net.corda.core.node.AppServiceHub import net.corda.core.node.NotaryInfo -import net.corda.core.node.services.CordaService import net.corda.core.transactions.SignedTransaction import net.corda.core.transactions.TransactionBuilder import net.corda.core.utilities.ProgressTracker @@ -82,13 +80,14 @@ class TimedFlowTests { private fun startClusterAndNode(mockNet: InternalMockNetwork): Pair { val replicaIds = (0 until CLUSTER_SIZE) + val serviceLegalName = CordaX500Name("Custom Notary", "Zurich", "CH") val notaryIdentity = DevIdentityGenerator.generateDistributedNotaryCompositeIdentity( replicaIds.map { mockNet.baseDirectory(mockNet.nextNodeId + it) }, - CordaX500Name("Custom Notary", "Zurich", "CH")) + serviceLegalName) val networkParameters = NetworkParametersCopier(testNetworkParameters(listOf(NotaryInfo(notaryIdentity, true)))) val notaryConfig = mock { - whenever(it.isClusterConfig).thenReturn(true) + whenever(it.serviceLegalName).thenReturn(serviceLegalName) whenever(it.validating).thenReturn(true) whenever(it.className).thenReturn(TestNotaryService::class.java.name) } diff --git a/samples/notary-demo/build.gradle b/samples/notary-demo/build.gradle index ad7f9110e1..d5b6a07a89 100644 --- a/samples/notary-demo/build.gradle +++ b/samples/notary-demo/build.gradle @@ -112,7 +112,7 @@ task deployNodesRaft(type: Cordform, dependsOn: ['jar', nodeTask, webTask]) { notary = [ validating: true, serviceLegalName: "O=Raft,L=Zurich,C=CH", - raft: [ + extraConfig: [ nodeAddress: "localhost:10008" ], className: className @@ -128,7 +128,7 @@ task deployNodesRaft(type: Cordform, dependsOn: ['jar', nodeTask, webTask]) { notary = [ validating: true, serviceLegalName: "O=Raft,L=Zurich,C=CH", - raft: [ + extraConfig: [ nodeAddress: "localhost:10012", clusterAddresses: ["localhost:10008"] ], @@ -145,7 +145,7 @@ task deployNodesRaft(type: Cordform, dependsOn: ['jar', nodeTask, webTask]) { notary = [ validating: true, serviceLegalName: "O=Raft,L=Zurich,C=CH", - raft: [ + extraConfig: [ nodeAddress: "localhost:10016", clusterAddresses: ["localhost:10008"] ], @@ -181,7 +181,7 @@ task deployNodesBFT(type: Cordform, dependsOn: ['jar', nodeTask, webTask]) { notary = [ validating: false, serviceLegalName: "O=BFT,L=Zurich,C=CH", - bftSMaRt: [ + extraConfig: [ replicaId: 0, clusterAddresses: clusterAddresses ], @@ -198,7 +198,7 @@ task deployNodesBFT(type: Cordform, dependsOn: ['jar', nodeTask, webTask]) { notary = [ validating: false, serviceLegalName: "O=BFT,L=Zurich,C=CH", - bftSMaRt: [ + extraConfig: [ replicaId: 1, clusterAddresses: clusterAddresses ], @@ -215,7 +215,7 @@ task deployNodesBFT(type: Cordform, dependsOn: ['jar', nodeTask, webTask]) { notary = [ validating: false, serviceLegalName: "O=BFT,L=Zurich,C=CH", - bftSMaRt: [ + extraConfig: [ replicaId: 2, clusterAddresses: clusterAddresses ], @@ -232,7 +232,7 @@ task deployNodesBFT(type: Cordform, dependsOn: ['jar', nodeTask, webTask]) { notary = [ validating: false, serviceLegalName: "O=BFT,L=Zurich,C=CH", - bftSMaRt: [ + extraConfig: [ replicaId: 3, clusterAddresses: clusterAddresses ], diff --git a/testing/node-driver/src/main/kotlin/net/corda/testing/node/internal/DriverDSLImpl.kt b/testing/node-driver/src/main/kotlin/net/corda/testing/node/internal/DriverDSLImpl.kt index cd46caf2fb..c722058ba3 100644 --- a/testing/node-driver/src/main/kotlin/net/corda/testing/node/internal/DriverDSLImpl.kt +++ b/testing/node-driver/src/main/kotlin/net/corda/testing/node/internal/DriverDSLImpl.kt @@ -163,7 +163,7 @@ class DriverDSLImpl( private fun establishRpc(config: NodeConfig, processDeathFuture: CordaFuture): CordaFuture { val rpcAddress = config.corda.rpcOptions.address - val clientRpcSslOptions = clientSslOptionsCompatibleWith(config.corda.rpcOptions) + val clientRpcSslOptions = clientSslOptionsCompatibleWith(config.corda.rpcOptions) val client = createCordaRPCClientWithSslAndClassLoader(rpcAddress, sslConfiguration = clientRpcSslOptions) val connectionFuture = poll(executorService, "RPC connection") { try { @@ -481,29 +481,30 @@ class DriverDSLImpl( } } - // TODO This mapping is done is several places including the gradle plugin. In general we need a better way of - // generating the configs for the nodes, probably making use of Any.toConfig() - private fun NotaryConfig.toConfigMap(): Map = mapOf("notary" to toConfig().root().unwrapped()) - private fun startSingleNotary(spec: NotarySpec, localNetworkMap: LocalNetworkMap?, customOverrides: Map): CordaFuture> { + val notaryConfig = mapOf("notary" to mapOf("validating" to spec.validating)) return startRegisteredNode( spec.name, localNetworkMap, spec.rpcUsers, spec.verifierType, - customOverrides = NotaryConfig(spec.validating).toConfigMap() + customOverrides + customOverrides = notaryConfig + customOverrides ).map { listOf(it) } } private fun startRaftNotaryCluster(spec: NotarySpec, localNetworkMap: LocalNetworkMap?): CordaFuture> { fun notaryConfig(nodeAddress: NetworkHostAndPort, clusterAddress: NetworkHostAndPort? = null): Map { val clusterAddresses = if (clusterAddress != null) listOf(clusterAddress) else emptyList() - val config = NotaryConfig( - validating = spec.validating, - serviceLegalName = spec.name, - className = "net.corda.notary.raft.RaftNotaryService", - raft = RaftConfig(nodeAddress = nodeAddress, clusterAddresses = clusterAddresses)) - return config.toConfigMap() + val config = configOf("notary" to mapOf( + "validating" to spec.validating, + "serviceLegalName" to spec.name.toString(), + "className" to "net.corda.notary.raft.RaftNotaryService", + "extraConfig" to mapOf( + "nodeAddress" to nodeAddress.toString(), + "clusterAddresses" to clusterAddresses.map { it.toString() } + )) + ) + return config.root().unwrapped() } val nodeNames = generateNodeNames(spec) From ba7727a4e1c750901df12c1e4a22fd60221de056 Mon Sep 17 00:00:00 2001 From: Viktor Kolomeyko Date: Mon, 22 Oct 2018 12:24:05 +0100 Subject: [PATCH 2/2] ENT-2610: Resolve conflicted changes (#4102) --- node/src/main/kotlin/net/corda/node/internal/AbstractNode.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/node/src/main/kotlin/net/corda/node/internal/AbstractNode.kt b/node/src/main/kotlin/net/corda/node/internal/AbstractNode.kt index a8ba165e1f..b16ed8698c 100644 --- a/node/src/main/kotlin/net/corda/node/internal/AbstractNode.kt +++ b/node/src/main/kotlin/net/corda/node/internal/AbstractNode.kt @@ -874,7 +874,7 @@ abstract class AbstractNode(val configuration: NodeConfiguration, val keyStore = configuration.signingCertificateStore.get() val privateKeyAlias = "$DISTRIBUTED_NOTARY_ALIAS_PREFIX-private-key" - val keyPair = keyStore.query { getCertificateAndKeyPair(privateKeyAlias) }.keyPair + val keyPair = keyStore.query { getCertificateAndKeyPair(privateKeyAlias, keyStore.entryPassword) }.keyPair val compositeKeyAlias = "$DISTRIBUTED_NOTARY_ALIAS_PREFIX-composite-key" val certificates = if (compositeKeyAlias in keyStore) {