ETNX/ETNXP/LTNX/GLDX/CRFI
EI-2.0ElectroneroSmartChainxAssets&XRC-20tokensaremintedfortokenswaps&airdropsonElectroneroSmartChain.EI-2.0isDeployingmainneton09/09/2021.EI-1.0holderswillbeairdroppedxAssetsatvariousratesthroughcross-chainatomicswaps.Moreintelreleasedonthewebsiteandthroughsocialmedia.ElectroneroNetworkCorecontributorsaremainlyactiveonTelegramjointhecommunityxAssets(airdrops&swaps):xETNX/xETNXP/xLTNX/xGLDX/xCRFI/xXMR/xETN
SourcecodeforkedfromMonero,BlockchainforkedfromElectroneum.Manysecurityupdatesanduniquefeatureshavebeenaddedovertheyears.
Copyright(c)2014-2018TheMoneroProject.PortionsCopyright(c)2012-2013TheCryptonotedevelopers.PortionsCopyright(c)2017-2018TheElectroneumdevelopers.PortionsCopyright(c)~2018TheMasaridevelopers.PortionsCopyright(c)~2018TheSumokoindevelopers.PortionsCopyright(c)~2018TheStellitedevelopers.PortionsCopyright(c)2014-2018TheElectroneroProject.PortionsCopyright(c)2014-2018TheElectroneroPulseProject.PortionsCopyright(c)2014-2018TheLiteneroProject.PortionsCopyright(c)2014-2018TheGoldneroProject.
TableofContentsDevelopmentresourcesVulnerabilityresponseResearchAnnouncementsIntroductionAboutthisprojectSupportingtheprojectLicenseContributingCompilingElectronerofromsourceDependenciesDevelopmentresourceselectroneroETNX-Web:electronero.orgelectroneropulseETNXP-Web:electroneropulse.orgliteneroLTNX-Web:litenero.orggoldneroGLDX-Web:goldnero.orgcrystaleumCRFI-Web:crystaleum.orgelectronerounnoffical-Chat:t.me/electroneroelectroneronetwork-Chat:t.me/electronero_networkelectroneropulse-Chat:t.me/etnxplitenero-Chat:t.me/litenerogoldnero-Chat:t.me/goldnerocrystaleum-Chat:t.me/crystaleumelectronerocore-Mail:support@electronero.orgelectroneronetwork-GitHub:github.com/electronero/electronero
VulnerabilityresponseMonerosourceVulnerabilityResponseProcessencouragesresponsibledisclosureMoneroisalsoavailableviaHackerOneAnnouncementsYoucansubscribetoelectroneroannouncementstogetcriticalannouncementsfromElectronerocore.Theannouncementlistcanbeveryhelpfulforknowingwhensoftwareupdatesareneeded,etc.
IntroductionElectroneroisaprivate,secure,untraceable,decentraliseddigitalcurrency.Youareyourbank,youcontrolyourfunds,andnobodycantraceyourtransfersunlessyouallowthemtodoso.
Privacy:Electronerousesacryptographicallysoundsystemtoallowyoutosendandreceivefundswithoutyourtransactionsbeingeasilyrevealedontheblockchain(theledgeroftransactionsthateveryonehas).Thisensuresthatyourpurchases,receipts,andalltransfersremainabsolutelyprivatebydefault.
Security:Usingthepowerofadistributedpeer-to-peerconsensusnetwork,everytransactiononthenetworkiscryptographicallysecured.Individualwalletshavea25wordmnemonicseedthatisonlydisplayedonce,andcanbewrittendowntobackupthewallet.Walletfilesareencryptedwithapassphrasetoensuretheyareuselessifstolen.
Untraceability:Bytakingadvantageofringsignatures,aspecialpropertyofacertaintypeofcryptography,Electroneroisabletoensurethattransactionsarenotonlyuntraceable,buthaveanoptionalmeasureofambiguitythatensuresthattransactionscannoteasilybetiedbacktoanindividualuserorcomputer.
SupportingtheprojectElectroneroisa100%communitydrivenendeavor.Tojoincommunityefforts,theeasiestthingyoucandoissupporttheprojectfinancially.ElectronerodonationscanbemadetotheElectronerodonationaddressviathedonatecommand(typehelpinthecommand-linewalletfordetails).Else,hereareourdevteamsaddresses.Thefundinggoestomanydevelopers,andvolunteerswhocontribute,theyaregratefulforourdonations!
TheMonerodonationaddressis:85PTaJNpkEEeJao2MNk1sRWTQXLUf1FGjZew8oR8R4cRUrXxFrTexa9GwrjmJD4Pyx6UrjgMQnuMoFNmaBKqxs7PPXVe9oX
TheBitcoindonationaddressis:38jiBKevQHp8zhQpZ42bTvK4QpzzqWkA3K
TheEthereumdonationaddressis:0x59d26980a1cdd75e1c3af516b912a6233aa2f5e4
TheTetherUSDdonationaddressis:0x59d26980a1cdd75e1c3af516b912a6233aa2f5e4
TheZCashdonationaddressis:t1Kmnv9eDqw7VyDWmzSUbjBPrxoY7hMuUCc
TheLiquiddonationaddressis:VJL9H2mk4tKBRgSkTNkSrFGQABiNxUs1UPbm4rHCsE8vF87kSJgSo8AQfGDt54nC59tEtb2W47GsMrw2
TheElectronerodonationaddressis:etnkHfFuanNeTe3q9dux4d9cRiLkUR4hDffvhfTp6nbhEJ5R8TY4vdyZjT4BtWxnvSJ5nfD64eCAQfKMJHSym2dj8PQqeiKmBM
TheElectroneumdonationaddressis:etnkHfFuanNeTe3q9dux4d9cRiLkUR4hDffvhfTp6nbhEJ5R8TY4vdyZjT4BtWxnvSJ5nfD64eCAQfKMJHSym2dj8PQqeiKmBM
TheDogecoindonationaddressis:DTTez7ggKPzDcKuUUTns8VzMrKesZUKMCk
TheLitecoindonationaddressis:MAtV7sbBnmuf2bxVUPgCprpmJ5xX6euBwe
TheSumokoindonationaddressis:Sumoo47CGenbHfZtpCVV4PRMSsXP38idFdt5JSj7VuJrD1nABoPHTBHgR6owQJfn1JU8BiWWohw4oiefGEjAn4GmbFYYtCcfPeT
TheAavedonationaddressis:0x59d26980a1cdd75e1c3af516b912a6233aa2f5e4
TheAttentionTokendonationaddressis:0x59d26980a1cdd75e1c3af516b912a6233aa2f5e4
TheCardanoADAdonationaddressis:DdzFFzCqrhspgQJTD1r81KsmXjzySdu4Zb4pJf7iLxkcVKvoRLoVHss9f2147QTRCRkQAFjWwHdr77Snn3efEo9ne4YzM5UCwwnMGR15
TheCompounddonationaddressis:0x59d26980a1cdd75e1c3af516b912a6233aa2f5e4
TheDashdonationaddressis:XcFVDo2k3XRJwQKQQRgMBfhCEDFANawQ3B
TheMakerdonationaddressis:0x59d26980a1cdd75e1c3af516b912a6233aa2f5e4
ThePaxosStandarddonationaddressis:0x59d26980a1cdd75e1c3af516b912a6233aa2f5e4
TheRENdonationaddressis:0x59d26980a1cdd75e1c3af516b912a6233aa2f5e4
TheTrueUSDdonationaddressis:0x59d26980a1cdd75e1c3af516b912a6233aa2f5e4
TheUSDCoindonationaddressis:0x59d26980a1cdd75e1c3af516b912a6233aa2f5e4
AboutthisprojectThisisamodifiedcoreimplementationofMonero/Electroneum.Itisopensourceandcompletelyfreetousewithoutrestrictions,exceptforthosespecifiedinthelicenseagreementbelow.TherearenorestrictionsonanyonecreatinganalternativeimplementationofMonerothatusestheprotocolandnetworkinacompatiblemanner.
Aswithmanydevelopmentprojects,therepositoryonGithubisconsideredtobethe"staging"areaforthelatestchanges.Beforechangesaremergedintothatbranchonthemainrepository,theyaretestedbyindividualdevelopersintheirownbranches,submittedasapullrequest,andthensubsequentlytestedbycontributorswhofocusontestingandcodereviews.Thathavingbeensaid,therepositoryshouldbecarefullyconsideredbeforeusingitinaproductionenvironment,unlessthereisapatchintherepositoryforaparticularshow-stoppingissueyouareexperiencing.Itisgenerallyabetterideatouseataggedreleaseforstability.
AnyoneiswelcometocontributetoElectronero'scodebase!Ifyouhaveafixorcodechange,feelfreetosubmititasapullrequestdirectlytothe"master"branch.Incaseswherethechangeisrelativelysmallordoesnotaffectotherpartsofthecodebaseitmaybemergedinimmediatelybyanyoneofthecollaborators.Ontheotherhand,ifthechangeisparticularlylargeorcomplex,itisexpectedthatitwillbediscussedatlengtheitherwellinadvanceofthepullrequestbeingsubmitted,orevendirectlyonthepullrequest.
LicenseSeeLICENSE.
ContributingIfyouwanttohelpout,joinElectroneroNetworkCoreContributors.ContactusonTelegram.SeeCONTRIBUTINGforasetofguidelines.
ScheduledsoftwareupgradesElectroneroutilizesasoftwareupgrade(hardfork)mechanismtoimplementnewfeatures.ThismeansthatusersofElectronero(endusersandserviceproviders)shouldruncurrentversionsandupgradetheirsoftwareonaregularbasis.Therequiredsoftwarefortheseupgradeswillbeavailablepriortothescheduleddate.PleasechecktherepositorypriortothisdatefortheproperElectronerosoftwareversion.
ReleasestagingscheduleandprotocolApproximatelythreemonthspriortoascheduledsoftwareupgrade,abranchfromMasterwillbecreatedwiththenewreleaseversiontag.PullrequeststhataddressbugsshouldthenbemadetobothMasterandthenewreleasebranch.Pullrequeststhatrequireextensivereviewandtesting(generally,optimizationsandnewfeatures)shouldnotbemadetothereleasebranch.
CompilingElectronerofromsourceDependenciesThefollowingtablesummarizesthetoolsandlibrariesrequiredtobuild.Afewofthelibrariesarealsoincludedinthisrepository(markedas"Vendored").Bydefault,thebuildusesthelibraryinstalledonthesystem,andignoresthevendoredsources.However,ifnolibraryisfoundinstalledonthesystem,thenthevendoredsourcewillbebuiltandused.Thevendoredsourcesarealsousedforstatically-linkedbuildsbecausedistributionpackagesoftenincludeonlysharedlibrarybinaries(.so)butnotstaticlibraryarchives(.a).
DepMin.versionVendoredDebian/UbuntupkgArchpkgFedoraOptionalPurposeGCC4.7.3NObuild-essentialbase-develgccNOCMake3.0.0NOcmakecmakecmakeNOpkg-configanyNOpkg-configbase-develpkgconfNOBoost1.58NOlibboost-all-devboostboost-develNOC++librariesOpenSSLbasicallyanyNOlibssl-devopensslopenssl-develNOsha256sumlibzmq3.0.0NOlibzmq3-devzeromqcppzmq-develNOZeroMQlibrarylibunbound1.4.16YESlibunbound-devunboundunbound-develNODNSresolverlibsodium?NOlibsodium-dev?libsodium-develNOlibsodiumlibminiupnpc2.0YESlibminiupnpc-devminiupnpcminiupnpc-develYESNATpunchinglibunwindanyNOlibunwind8-devlibunwindlibunwind-develYESStacktracesliblzmaanyNOliblzma-devxzxz-develYESForlibunwindlibreadline6.3.0NOlibreadline6-devreadlinereadline-develYESInputeditingldns1.6.17NOlibldns-devldnsldns-develYESSSLtoolkitexpat1.1NOlibexpat1-devexpatexpat-develYESXMLparsingGTest1.5YESlibgtest-dev^gtestgtest-develYESTestsuiteDoxygenanyNOdoxygendoxygendoxygenYESDocumentationGraphvizanyNOgraphvizgraphvizgraphvizYESDocumentation[1]OnDebian/Ubuntulibgtest-devonlyincludessourcesandheaders.Youmustbuildthelibrarybinarymanually.Thiscanbedonewiththefollowingcommandsudoapt-getinstalllibgtest-dev&&cd/usr/src/gtest&&sudocmake.&&sudomakeThen:
onDebian:sudomvlibg*/usr/lib/onUbuntu:sudomvlib/libg*/usr/lib/[2]libnorm-devisneededifyourzmqlibrarywasbuiltwithlibnorm,andnotneededotherwise
InstallalldependenciesatonceonDebian/Ubuntu:
sudoaptupdate&&sudoaptinstallbuild-essentialcmakepkg-configlibssl-devlibzmq3-devlibunbound-devlibsodium-devlibunwind8-devliblzma-devlibreadline6-devlibldns-devlibexpat1-devlibpgm-devqttools5-dev-toolslibhidapi-devlibusb-1.0-0-devlibprotobuf-devprotobuf-compilerlibudev-devlibboost-chrono-devlibboost-date-time-devlibboost-filesystem-devlibboost-locale-devlibboost-program-options-devlibboost-regex-devlibboost-serialization-devlibboost-system-devlibboost-thread-devccachedoxygengraphviz
InstallalldependenciesatonceonopenSUSE:
sudozypperref&&sudozypperincppzmq-develldns-devellibboost_chrono-devellibboost_date_time-devellibboost_filesystem-devellibboost_locale-devellibboost_program_options-devellibboost_regex-devellibboost_serialization-devellibboost_system-devellibboost_thread-devellibexpat-devellibminiupnpc-devellibsodium-devellibunwind-develunbound-develcmakedoxygenccachefdupesgcc-c++libevent-devellibopenssl-develpkgconf-pkg-configreadline-develxz-devellibqt5-qttools-develpatterns-devel-C-C++-devel_C_C++
InstallalldependenciesatonceonmacOSwiththeprovidedBrewfile:brewupdate&&brewbundle--file=contrib/brew/Brewfile
FreeBSD12.1one-linerrequiredtobuilddependencies:pkginstallgitgmakecmakepkgconfboost-libslibzmq4libsodium
CloningtherepositoryClonerecursivelytopull-inneededsubmodule(s):
$gitclone--recursivehttps://github.com/electronero/electronero
Ifyoualreadyhavearepocloned,initializeandupdate:
$cdelectronero&&gitsubmoduleinit&&gitsubmoduleupdate&&cdcoins/electronero&&gitsubmoduleinit&&gitsubmoduleupdate&&make-j2&&cd../electroneropulse&&gitsubmoduleinit&&gitsubmoduleupdate&&make-j2&&cd../litenero&&gitsubmoduleinit&&gitsubmoduleupdate&&make-j2&&cd../goldnero&&gitsubmoduleinit&&gitsubmoduleupdate&&make-j2&&cd../crystaleum&&gitsubmoduleinit&&gitsubmoduleupdate&&make-j2
Note:Iftherearesubmoduledifferencesbetweenbranches,youmayneedtousegitsubmodulesync&&gitsubmoduleupdateafterchangingbranchestobuildsuccessfully.
BuildinstructionsElectronerousestheCMakebuildsystemandatop-levelMakefilethatinvokescmakecommandsasneeded.
OnLinuxandOSXInstallthedependencies
Changetotherootofthesourcecodedirectoryandbuild:
`$cdelectronero&&gitsubmoduleinit&&gitsubmoduleupdate&&cdcoins/electronero&&gitsubmoduleinit&&gitsubmoduleupdate&&make-j2&&cd../electroneropulse&&gitsubmoduleinit&&gitsubmoduleupdate&&make-j2&&cd../litenero&&gitsubmoduleinit&&gitsubmoduleupdate&&make-j2&&cd../goldnero&&gitsubmoduleinit&&gitsubmoduleupdate&&make-j2&&cd../crystaleum&&gitsubmoduleinit&&gitsubmoduleupdate&&make-j2`Optional:Ifyourmachinehasseveralcoresandenoughmemory,enableparallelbuildbyrunningmake-j<numberofthreads>insteadofmake.Forthistobeworthwhile,themachineshouldhaveonecoreandabout2GBofRAMavailableperthread.
Note:Ifcmakecannotfindzmq.hppfileonOSX,installingzmq.hppfromhttps://github.com/zeromq/cppzmqto/usr/local/includeshouldfixthaterror.
TheresultingElectroneroNetworkexecutablescanbefoundinbuild/release/binforeachElectroneroNetworkcoinincoins/dir
AddPATH="$PATH:$HOME/electronero/build/release/bin"to.profile
AddPATH="$PATH:$HOME/electroneropulse/build/release/bin"to.profile
AddPATH="$PATH:$HOME/litenero/build/release/bin"to.profile
AddPATH="$PATH:$HOME/goldnero/build/release/bin"to.profile
AddPATH="$PATH:$HOME/crystaleum/build/release/bin"to.profile
RunElectroneroelectronerod
RunElectroneroPulsepulsed
RunLitenerolitenerod
RunGoldnerogoldnerod
RunCrystaleumcrystaleumd
Optional:buildandrunthetestsuitetoverifythebinaries:
makerelease-testNOTE:core_teststestmaytakeafewhourstocomplete.
Optional:tobuildbinariessuitablefordebugging:
makedebugOptional:tobuildstatically-linkedbinaries:
makerelease-staticDependenciesneedtobebuiltwith-fPIC.Staticlibrariesusuallyaren't,soyoumayhavetobuildthemyourselfwith-fPIC.Refertotheirdocumentationforhowtobuildthem.
Optional:builddocumentationindoc/html(omitHAVE_DOT=YESifgraphvizisnotinstalled):
HAVE_DOT=YESdoxygenDoxyfileOntheRaspberryPiTestedonaRaspberryPiZerowithacleaninstallofminimalRaspbianStretch(2017-09-07orlater)fromhttps://www.raspberrypi.org/downloads/raspbian/.IfyouareusingRaspianJessie,pleaseseenoteinthefollowingsection.
apt-getupdate&&apt-getupgradetoinstallallofthelatestsoftware
InstallthedependenciesforElectronerofromthe'Debian'columninthetableabove.
Increasethesystemswapsize:
sudo/etc/init.d/dphys-swapfilestopsudonano/etc/dphys-swapfileCONF_SWAPSIZE=1024sudo/etc/init.d/dphys-swapfilestartCloneelectroneroandcheckoutmostrecentreleaseversion:gitclonehttps://github.com/electronero/electronero.gitBuild:$cdelectronero&&gitsubmoduleinit&&gitsubmoduleupdate&&cdcoins/electronero&&gitsubmoduleinit&&gitsubmoduleupdate&&make-j2&&cd../electroneropulse&&gitsubmoduleinit&&gitsubmoduleupdate&&make-j2&&cd../litenero&&gitsubmoduleinit&&gitsubmoduleupdate&&make-j2&&cd../goldnero&&gitsubmoduleinit&&gitsubmoduleupdate&&make-j2
AddPATH="$PATH:$HOME/electronero/build/release/bin"to.profile
Youmaywishtoreducethesizeoftheswapfileafterthebuildhasfinished,anddeletetheboostdirectoryfromyourhomedirectory
NoteforRaspbianJessieusers:IfyouareusingtheolderRaspbianJessieimage,compilingElectroneroisabitmorecomplicated.TheversionofBoostavailableintheDebianJessierepositoriesistoooldtousewithElectronero,andthusyoumustcompileanewerversionyourself.Thefollowingexplainstheextrasteps,andhasbeentestedonaRaspberryPi2withacleaninstallofminimalRaspbianJessie.
Asbefore,apt-getupdate&&apt-getupgradetoinstallallofthelatestsoftware,andincreasethesystemswapsizesudo/etc/init.d/dphys-swapfilestopsudonano/etc/dphys-swapfileCONF_SWAPSIZE=1024sudo/etc/init.d/dphys-swapfilestartThen,installthedependenciesforElectroneroexceptlibunwindandlibboost-all-dev
Installthelatestversionofboost(thismayfirstrequireinvokingapt-getremove--purgelibboost*toremoveapreviousversionifyou'renotusingacleaninstall):
cdwgethttps://sourceforge.net/projects/boost/files/boost/1.64.0/boost_1_64_0.tar.bz2tarxvfoboost_1_64_0.tar.bz2cdboost_1_64_0./bootstrap.shsudo./b2sudo./bjaminstallFromhere,followthegeneralRaspberryPiinstructionsfromthe"CloneElectroneroandcheckoutmostrecentreleaseversion"step.OnWindows:BinariesforWindowsarebuiltonWindowsusingtheMinGWtoolchainwithinMSYS2environment.TheMSYS2environmentemulatesaPOSIXsystem.Thetoolchainrunswithintheenvironmentandcross-compilesbinariesthatcanrunoutsideoftheenvironmentasaregularWindowsapplication.
Preparingthebuildenvironment
DownloadandinstalltheMSYS2installer,eitherthe64-bitorthe32-bitpackage,dependingonyoursystem.
OpentheMSYSshellviatheMSYS2Shellshortcut
Updatepackagesusingpacman:
pacman-SyuuExittheMSYSshellusingAlt+F4
EditthepropertiesfortheMSYS2Shellshortcutchanging"msys2_shell.bat"to"msys2_shell.cmd-mingw64"for64-bitbuildsor"msys2_shell.cmd-mingw32"for32-bitbuilds
RestartMSYSshellviamodifiedshortcutandupdatepackagesagainusingpacman:
pacman-SyuuInstalldependencies:
Tobuildfor64-bitWindows:
pacman-Smingw-w64-x86_64-toolchainmakemingw-w64-x86_64-cmakemingw-w64-x86_64-boostmingw-w64-x86_64-opensslmingw-w64-x86_64-zeromqmingw-w64-x86_64-libsodiumTobuildfor32-bitWindows:
pacman-Smingw-w64-i686-toolchainmakemingw-w64-i686-cmakemingw-w64-i686-boostmingw-w64-i686-opensslmingw-w64-i686-zeromqmingw-w64-i686-libsodiumOpentheMingWshellviaMinGW-w64-Win64Shellshortcuton64-bitWindowsorMinGW-w64-Win64Shellshortcuton32-bitWindows.Notethatifyouarerunning64-bitWindows,youwillhaveboth64-bitand32-bitMinGWshells.
Building
Ifyouareona64-bitsystem,run:
makerelease-static-win64Ifyouareona32-bitsystem,run:
makerelease-static-win32Theresultingexecutablescanbefoundinbuild/release/bin
OnOpenBSD:OpenBSD<6.2ThishasbeentestedonOpenBSD5.8.
Youwillneedtoaddafewpackagestoyoursystem.pkg_adddbcmakegccgcc-libsg++miniupnpcgtest.
Thedoxygenandgraphvizpackagesareoptionalandrequirethexbaseset.
TheBoostpackagehasabugthatwillpreventlibrpc.afrombuildingcorrectly.Inordertofixthis,youwillhavetoBuildboostyourselffromscratch.Followthedirectionshere(under"BuildingBoost"):https://github.com/bitcoin/bitcoin/blob/master/doc/build-openbsd.md
Youwillhavetoaddtheserialization,date_time,andregexmodulestoBoostwhenbuildingastheyareneededbyElectronero.
Tobuild:envCC=egccCXX=eg++CPP=ecppDEVELOPER_LOCAL_TOOLS=1BOOST_ROOT=/path/to/the/boost/you/builtmakerelease-static-64
OpenBSD>=6.2Youwillneedtoaddafewpackagestoyoursystem.pkg_addcmakeminiupnpczeromqlibiconv.
Thedoxygenandgraphvizpackagesareoptionalandrequirethexbaseset.
BuildtheBoostlibraryusingclang.Thisguideisderivedfrom:https://github.com/bitcoin/bitcoin/blob/master/doc/build-openbsd.md
Weassumeyouarecompilingwithanon-rootuserandyouhavedoasenabled.
Note:donotusetheboostpackageprovidedbyOpenBSD,asweareinstallingboostto/usr/local.
#Createboostbuildingdirectorymkdir~/boostcd~/boost#Fetchboostsourceftp-oboost_1_64_0.tar.bz2https://netcologne.dl.sourceforge.net/project/boost/boost/1.64.0/boost_1_64_0.tar.bz2#MUSToutput:(SHA256)boost_1_64_0.tar.bz2:OKecho"7bcc5caace97baa948931d712ea5f37038dbb1c5d89b43ad4def4ed7cb683332boost_1_64_0.tar.bz2"|sha256-ctarxfjboost_1_64_0.tar.bz2#Fetchandapplyboostpatches,requiredforOpenBSDftp-oboost_test_impl_execution_monitor_ipp.patchhttps://raw.githubusercontent.com/openbsd/ports/bee9e6df517077a7269ff0dfd57995f5c6a10379/devel/boost/patches/patch-boost_test_impl_execution_monitor_ippftp-oboost_config_platform_bsd_hpp.patchhttps://raw.githubusercontent.com/openbsd/ports/90658284fb786f5a60dd9d6e8d14500c167bdaa0/devel/boost/patches/patch-boost_config_platform_bsd_hpp#MUSToutput:(SHA256)boost_config_platform_bsd_hpp.patch:OKecho"1f5e59d1154f16ee1e0cc169395f30d5e7d22a5bd9f86358f738b0ccaea5e51dboost_config_platform_bsd_hpp.patch"|sha256-c#MUSToutput:(SHA256)boost_test_impl_execution_monitor_ipp.patch:OKecho"30cec182a1437d40c3e0bd9a866ab5ddc1400a56185b7e671bb3782634ed0206boost_test_impl_execution_monitor_ipp.patch"|sha256-ccdboost_1_64_0patch-p0<../boost_test_impl_execution_monitor_ipp.patchpatch-p0<../boost_config_platform_bsd_hpp.patch#Startbuildingboostecho'usingclang::c++:<cxxflags>"-fvisibility=hidden-fPIC"<linkflags>""<archiver>"ar"<striper>"strip"<ranlib>"ranlib"<rc>"":;'>user-config.jam./bootstrap.sh--without-icu--with-libraries=chrono,filesystem,program_options,system,thread,test,date_time,regex,serialization,locale--with-toolset=clang./b2toolset=clangcxxflags="-stdlib=libc++"linkflags="-stdlib=libc++"-sICONV_PATH=/usr/localdoas./b2-d0runtime-link=sharedthreadapi=pthreadthreading=multilink=staticvariant=release--layout=tagged--build-type=complete--user-config=user-config.jam-sNO_BZIP2=1-sICONV_PATH=/usr/local--prefix=/usr/localinstallBuildcppzmq
Buildthecppzmqbindings.
Weassumeyouarecompilingwithanon-rootuserandyouhavedoasenabled.
#Createcppzmqbuildingdirectorymkdir~/cppzmqcd~/cppzmq#Fetchcppzmqsourceftp-ocppzmq-4.2.3.tar.gzhttps://github.com/zeromq/cppzmq/archive/v4.2.3.tar.gz#MUSToutput:(SHA256)cppzmq-4.2.3.tar.gz:OKecho"3e6b57bf49115f4ae893b1ff7848ead7267013087dc7be1ab27636a97144d373cppzmq-4.2.3.tar.gz"|sha256-ctarxfzcppzmq-4.2.3.tar.gz#Startbuildingcppzmqcdcppzmq-4.2.3mkdirbuildcdbuildcmake..doasmakeinstallBuildelectronero:envDEVELOPER_LOCAL_TOOLS=1BOOST_ROOT=/usr/localmakerelease-static
OnSolaris:ThedefaultSolarislinkercan'tbeused,youhavetoinstallGNUld,thenruncmakemanuallywiththepathtoyourcopyofGNUld:
mkdir-pbuild/releasecdbuild/releasecmake-DCMAKE_LINKER=/path/to/ld-DCMAKE_BUILD_TYPE=Release../..cd../..Thenyoucanrunmakeasusual.
OnLinuxforAndroid(usingdocker):#Buildimage(selectandroid64.Dockerfileforaarch64)cdutils/build_scripts/&&dockerbuild-fandroid32.Dockerfile-telectronero-android.#Createcontainerdockercreate-it--nameelectronero-androidelectronero-androidbash#Getbinariesdockercpelectronero-android:/opt/android/electronero/build/release/bin.BuildingportablestaticallylinkedbinariesBydefault,ineitherdynamicallyorstaticallylinkedbuilds,binariestargetthespecifichostprocessoronwhichthebuildhappensandarenotportabletootherprocessors.Portablebinariescanbebuiltusingthefollowingtargets:
makerelease-static-linux-x86_64buildsbinariesonLinuxonx86_64portableacrossPOSIXsystemsonx86_64processorsmakerelease-static-linux-i686buildsbinariesonLinuxonx86_64ori686portableacrossPOSIXsystemsoni686processorsmakerelease-static-linux-armv8buildsbinariesonLinuxportableacrossPOSIXsystemsonarmv8processorsmakerelease-static-linux-armv7buildsbinariesonLinuxportableacrossPOSIXsystemsonarmv7processorsmakerelease-static-linux-armv6buildsbinariesonLinuxportableacrossPOSIXsystemsonarmv6processorsmakerelease-static-win64buildsbinarieson64-bitWindowsportableacross64-bitWindowssystemsmakerelease-static-win32buildsbinarieson64-bitor32-bitWindowsportableacross32-bitWindowssystemsRunningelectronerodThebuildplacesthebinaryinbin/sub-directorywithinthebuilddirectoryfromwhichcmakewasinvoked(repositoryrootbydefault).Toruninforeground:
./bin/electroneroTolistallavailableoptions,run./bin/electronerod--help.Optionscanbespecifiedeitheronthecommandlineorinaconfigurationfilepassedbythe--config-fileargument.Tospecifyanoptionintheconfigurationfile,addalinewiththesyntaxargumentname=value,whereargumentnameisthenameoftheargumentwithouttheleadingdashes,forexamplelog-level=1.
Toruninbackground:
./bin/electronerod--log-fileelectronerod.logTorunasasystemdservice,copyelectronerod.serviceto/etc/systemd/system/andelectronerod.confto/etc/.Theexampleserviceassumesthattheuserelectroneroexistsanditshomeisthedatadirectoryspecifiedintheexampleconfig.
Ifyou'reonMac,youmayneedtoaddthe--max-concurrency1optiontoelectronero-wallet-cli,andpossiblyelectronerod,ifyougetcrashesrefreshing.
评论