/* Ċ Ġ* ĠLicensed Ġto Ġthe ĠApache ĠSoftware ĠFoundation Ġ( ASF ) Ġunder Ġone Ġor Ġmore Ċ Ġ* Ġcontributor Ġlicense Ġagreements . Ġ ĠSee Ġthe ĠNOTICE Ġfile Ġdistributed Ġwith Ċ Ġ* Ġthis Ġwork Ġfor Ġadditional Ġinformation Ġregarding Ġcopyright Ġownership . Ċ Ġ* ĠThe ĠASF Ġlicenses Ġthis Ġfile Ġto ĠYou Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ċ Ġ* Ġ( the Ġ" License "); Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ċ Ġ* Ġthe ĠLicense . Ġ ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ package Ġorg . apache . tu w eni . eth client Ċ Ċ import Ġio . vertx . core . Vert x Ċ import Ġkotlinx . coroutines . run Blocking Ċ import Ġorg . apache . tu w eni . app . commons . Application Utils Ċ import Ġorg . bouncycastle . j ce . provider . Bo unc y Castle Provider Ċ import Ġpic oc li . CommandLine Ċ import Ġjava . security . Security Ċ import Ġkotlin . system . exit Process Ċ Ċ fun Ġmain ( args : ĠArray < String >) Ġ= Ġrun Blocking Ġ{ ĊĠ ĠApplication Utils . render Banner (" Apache ĠT uw eni Ġboot node Ġloading ") ĊĠ ĠSecurity . add Provider ( Bo unc y Castle Provider ()) ĊĠ Ġval Ġopts Ġ= ĠCommandLine . populate Command ( Boot node App Options (), Ġ* args ) ĊĊĠ Ġif Ġ( opts . help ) Ġ{ ĊĠĠĠ ĠCommandLine ( opts ). usage ( System . out ) ĊĠĠĠ Ġexit Process ( 0 ) ĊĠ Ġ} ĊĠ Ġif Ġ( opts . version ) Ġ{ ĊĠĠĠ Ġprintln (" Apache ĠT uw eni ĠBoot node Ġ#{ Application Utils . version }") ĊĠĠĠ Ġexit Process ( 0 ) ĊĠ Ġ} ĊĊĠ Ġval Ġconfig Ġ= ĠEthereum ClientConfig . fromString ( this . java Class . getResource ("/ boot node . toml ") !!. read Text ()) ĊĠ Ġval Ġeth Client Ġ= ĠEthereum Client ( Vert x . vertx (), Ġconfig ) ĊĠ ĠRuntime . get Runtime (). add Shutdown Hook ( Thread Ġ{ Ġeth Client . stop () Ġ}) ĊĠ Ġeth Client . start () Ċ } Ċ Ċ class ĠBoot node App Options Ġ{ ĊĠ Ġ@ CommandLine . Option ( names Ġ= Ġ[" - h ", Ġ"-- help "], Ġdescription Ġ= Ġ[" Print s Ġusage Ġprompt "]) ĊĠ Ġvar Ġhelp : ĠBoolean Ġ= Ġfalse ĊĊĠ Ġ@ CommandLine . Option ( names Ġ= Ġ[" - v ", Ġ"-- version "], Ġdescription Ġ= Ġ[" Print s Ġversion "]) ĊĠ Ġvar Ġversion : ĠBoolean Ġ= Ġfalse Ċ } Ċ