[{"data":1,"prerenderedAt":4090},["ShallowReactive",2],{"sanity-0vx860qANOB8CccsDGE2gHIvftsFnrZIEPQEzBiaaYg":3,"sanity-M3ecfVdT1haLVC6W5tbM4X39CNYacavIuqPq8YoIHrc":431,"sanity-jEL2GyG0X7fcoye0uV7H37nkkoF2bAtySnNKXeFGZtc":437},{"data":4},{"bannerText":5,"bannerUpdatedAt":34,"menuPrimaryNav":35,"menuPrimaryNavSecond":28,"menuSecondaryNav":147,"metrics":28,"newsletterErrorMessage":329,"newsletterInstructions":330,"newsletterPlaceholder":331,"newsletterSubmitButtonLabel":332,"newsletterSuccessMessage":333,"rightsText":28,"socials":334,"socialsListLabel":426,"swapButton":427},[6],{"_key":7,"_type":8,"children":9,"markDefs":24,"style":33},"dc1bc89786a7","block",[10,15,20],{"_key":11,"_type":12,"marks":13,"text":14},"c7ec248ea4c9","span",[],"Trading is temporarily paused. More info ",{"_key":16,"_type":12,"marks":17,"text":19},"49f05f0c531d",[18],"da82ed6d54a6","here",{"_key":21,"_type":12,"marks":22,"text":23},"66d707ed0430",[],". THORChain has no active refund, airdrop, or compensation program. Be cautious of fraudulent websites impersonating the protocol and report them back to us.",[25],{"_key":18,"_type":26,"link":27},"custom-link",{"anchor":28,"getParameters":28,"isInternal":29,"openInNewTab":28,"page":30,"title":28},null,true,{"slug":31,"type":32},"thorchain-exploit-report-1","article","normal","2026-06-05T04:54:15Z",[36,55,69,82,95,108,121,134],{"icon":37,"link":39,"media":45},{"isCustom":29,"raw":38},"\u003Csvg width=\"100\" height=\"149\" viewBox=\"0 0 100 149\" fill=\"none\" xmlns=\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\">\n\u003Ccircle cx=\"49.9834\" cy=\"98.2666\" r=\"49.9834\" fill=\"#FAFAFA\"\u002F>\n\u003Ccircle cx=\"49.9834\" cy=\"49.9834\" r=\"49.9834\" fill=\"#33FF99\"\u002F>\n\u003C\u002Fsvg>\n",{"anchor":28,"getParameters":28,"isInternal":29,"label":40,"openInNewTab":28,"page":41,"title":28,"url":44},"Swap",{"slug":42,"type":43},"swap","page","https:\u002F\u002Fswap.thorchain.org\u002Fswap",{"image":46,"lottie":52,"type":54},{"alt":47,"assetId":48,"caption":28,"crop":28,"height":49,"hotspot":28,"lqip":50,"width":51},"","image-2be7810d802cf6b01bae376ec68083be67c3df8b-249x217-png",217,"data:image\u002Fpng;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAARCAYAAADdRIy+AAAACXBIWXMAAAsTAAALEwEAmpwYAAAC2ElEQVR4nJ2T30tTYRjHNzMh+31TDe8iioRy58wiKq0MEyK6qv6AoCCMfhFBEJ2LAhG6iaIQt50zf0ULg0zn5nRutbZRmbXMQlqu\u002FNGF0Sws5znPc75x\u002FHG1NO0LDy+8vO\u002Fn+bwPvCbTfAIpS4KUNa+zcwYw21C1OB+3l21FzdI9kLKNvf8AmcyGkQER9OrNgmY\u002FLGquQ4Wwb7KhKdckTdrOEwyY8+HOKYCSJ8JZJrJSaWM5ILLSLkK5LkDeb0OtJR9Szj9tj8K9aDfqV2+DvVCEclZk+ZHISlJg57jA8m8RSkJkpbEQcnkhXEIB5FUmuBfNarZl9M5qq1Z90MrKXYGVuMDyD4GdJLCTBXLoAjlIYHlUZFe3leVbVjhL16NqZaYppuaxA0peEdVd3M0N8W3sSlsNENt1gR2YLDLKydu5ZryI618VU92ZItRa\u002Fvp0AOZG9Foc9OZ8BUd7jrNH3ct1usgOWCfLDhs7UUL1+klunaik6GsZb8obkFhr3M2ATa95KTV96aOaeu+jfu06h3GEG7GTa7CLXTjGD1HBEbRTUv2kjr79oarnAFgygDPQZC8snxN0fnBQ6xlOpdV4ekRvoHe4zEFc4SDuUy960t\u002F04VR6YmiIupMJKk8kkGloMk1ttD9GXjhAF7qi1N0bp\u002FGBQY37f44hro7grTqC5M8x\u002FcsA8bs4\u002FX4R4RdPO+l0qHVsdkO\u002FHyuDLVppyKvdDAeoqytGqb73RF+\u002FavrwMOl9H0h7GaXv4QA\u002FD\u002Fn4RtCr7QuHsfyvwGlolgH1NU9YOzzqqWAbPYiGKNEdo19dMfoVe8J9wTa+19FCJ\u002Fwt2BLz6CskCXP\u002FcaOb242czmas6\u002FBpJQGvdu2Jn72hNvYE2+hqyIfiZz6sqarC4lnNTJlYs9H5ZRNy\u002FS3pjYFWrazDox3wesc3RCJYYrxkZu4LimHQ2Ynspqah3IgbSyQJ2Quwmj2G7T9nNZ0\u002F2NEWuqs0czUAAAAASUVORK5CYII=",249,{"url":53},"https:\u002F\u002Fcdn.sanity.io\u002Ffiles\u002F355nlzcp\u002Fproduction\u002F2f04a6f9a8bbc129979c437905f8a4f3fcd36d85.json","lottie",{"icon":56,"link":58,"media":63},{"isCustom":29,"raw":57},"\u003Csvg width=\"141\" height=\"150\" viewBox=\"0 0 141 150\" fill=\"none\" xmlns=\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\">\n\u003Cpath d=\"M66.8085 59.1811C69.0743 57.793 71.9271 57.793 74.1929 59.1811L137.624 98.0414C142.125 100.799 142.125 107.341 137.624 110.099L74.1929 148.959C71.9271 150.347 69.0743 150.347 66.8085 148.959L3.37782 110.099C-1.12402 107.341 -1.12401 100.799 3.37783 98.0414L66.8085 59.1811Z\" fill=\"#00CCFF\"\u002F>\n\u003Cpath d=\"M66.8085 32.8102C69.0743 31.422 71.9271 31.422 74.1929 32.8102L137.624 71.6705C142.125 74.4285 142.125 80.9697 137.624 83.7277L74.1929 122.588C71.9271 123.976 69.0743 123.976 66.8085 122.588L3.37782 83.7277C-1.12402 80.9697 -1.12401 74.4285 3.37783 71.6705L66.8085 32.8102Z\" fill=\"white\"\u002F>\n\u003Cpath d=\"M66.8071 1.0411C69.0729 -0.347034 71.9257 -0.347034 74.1915 1.0411L137.622 39.9014C142.124 42.6594 142.124 49.2006 137.622 51.9586L74.1915 90.8189C71.9257 92.207 69.0729 92.207 66.8071 90.8189L3.37638 51.9586C-1.12546 49.2006 -1.12546 42.6594 3.37638 39.9014L66.8071 1.0411Z\" fill=\"#33FF99\"\u002F>\n\u003C\u002Fsvg>\n",{"anchor":28,"getParameters":28,"isInternal":29,"label":59,"openInNewTab":28,"page":60,"title":28,"url":62},"Integrate",{"slug":61,"type":43},"integrate","http:\u002F\u002Fgoogle.fr",{"image":64,"lottie":67,"type":54},{"alt":47,"assetId":65,"caption":28,"crop":28,"height":49,"hotspot":28,"lqip":66,"width":51},"image-442ea594fc28e849a79d248439f25021504e3ed4-249x217-png","data:image\u002Fpng;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAARCAYAAADdRIy+AAAACXBIWXMAAAsTAAALEwEAmpwYAAACfElEQVR4nK3UX0hTURwH8LPdOxSdrggUghSrh8gmXQcR9MeHyHwyEFT689RTD1FPPe+pnnqxB8Ey01UY96HAJCWCqIc95Oxuc3\u002FuvWzezDaxrTV1bWz3nPONmUGQf8nfy3n78P19z+EQstUAFrIrA1ja8E48zPsq2uAW3XBb\u002FwOThSMY2ecsDrVK5uA5CQ9bnOjfS+AWd54YsiBhcL+EkV6JDQ1K7NGkyxzqdxafdx9Y9B0iCVQRwErIdmDA4sJAlQue8y54Xkjsceq4OZx3FuSFpsz7t7WzX9yC37xAfPkG8lqv2AIjlnJPLgw4WrnnSisb8Ut0mDXnZdaw4GWO+HzOpuZjYoi+sgbpDaKiicgQNgUJ3NYT\u002FEntKYxePsk9imQO84OZCe7Q5mALFJgQLFEhSJfFGTohhMwO4ltdf+PVAVhkhOx3qLfnFt5MXzRf8qPpD7wmmoL4qQRRKXLRX2KC35y2ztBeEkUNca\u002FevmVdDIA1zXltAiuXpnlSeWpG+PWMCqeagV0pwqaUuF0psjql8LHR\u002F7OrfgHVGyb8AwJwALha4jSQpnnmzX7nd\u002FU02v1ZtCg53h5YojcDKe+9wNfOAV+iCtsAqwF0ABjnlP0oLC2b8dgcHwsa\u002FEFgno\u002FPfGaRcHzqW1jtRihk3xD8CxYANAC4BmAU2WyEzhrLK1GNpiMay0U0SlVtiqpqTyoardkSXENtAOpRwmm6mLrN4sYk0\u002FUk0\u002FQc1\u002FUENO0ZNO0sDKNyW+AaaoWBSiSTjTwW64Kq32eqOgZV70M02olYrE6W5U3e4fpouVcBhrGnGIkcQzh8BuFwM+JxB3aK\u002FZP2d7flKsrn7nxp24F+AWDE1D2IfDaeAAAAAElFTkSuQmCC",{"url":68},"https:\u002F\u002Fcdn.sanity.io\u002Ffiles\u002F355nlzcp\u002Fproduction\u002Fc699ba1aa0682709d7c6e535d53be7084f6929d9.json",{"icon":70,"link":72,"media":76},{"isCustom":29,"raw":71},"\u003Csvg width=\"143\" height=\"137\" viewBox=\"0 0 143 137\" fill=\"none\" xmlns=\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\">\n\u003Ccircle cx=\"12.6266\" cy=\"12.6266\" r=\"12.6266\" transform=\"matrix(-1 -8.74228e-08 -8.74228e-08 1 142.12 110.995)\" fill=\"white\"\u002F>\n\u003Ccircle cx=\"12.6266\" cy=\"12.6266\" r=\"12.6266\" transform=\"matrix(-1 -8.74228e-08 -8.74228e-08 1 25.2534 0)\" fill=\"white\"\u002F>\n\u003Ccircle cx=\"12.6266\" cy=\"12.6266\" r=\"12.6266\" transform=\"matrix(-1 -8.74228e-08 -8.74228e-08 1 25.2534 110.995)\" fill=\"white\"\u002F>\n\u003Ccircle cx=\"12.6266\" cy=\"12.6266\" r=\"12.6266\" transform=\"matrix(-1 -8.74228e-08 -8.74228e-08 1 142.12 0)\" fill=\"white\"\u002F>\n\u003Ccircle cx=\"70.7652\" cy=\"68.419\" r=\"38.4672\" transform=\"rotate(-180 70.7652 68.419)\" fill=\"#00CCFF\"\u002F>\n\u003C\u002Fsvg>\n",{"anchor":28,"getParameters":28,"isInternal":29,"label":73,"openInNewTab":28,"page":74,"title":28,"url":62},"Ecosystem",{"slug":75,"type":43},"ecosystem",{"image":77,"lottie":80,"type":54},{"alt":47,"assetId":78,"caption":28,"crop":28,"height":49,"hotspot":28,"lqip":79,"width":51},"image-2251f76bcba98a54dcec09c6e948c96105491ec5-249x217-png","data:image\u002Fpng;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAARCAYAAADdRIy+AAAACXBIWXMAAAsTAAALEwEAmpwYAAADJ0lEQVR4nJVU3U9SYRh\u002FEXAmGlAiGhiMDFTOOZyPBgytLppfa13k1uZFWxf9Id607tq66IYsjA+N0dZcaza6OZUrszCZEuYSSERRKwhxJODxaYfV1srTx297tuf9Pe9+7\u002Fs8z\u002Fs+CAkBkAgBiH7nYX\u002F+j4ChqtPASjogUI0gIObXvF2AgJjn+FiF+xcw4JTiMKq0wB2Nde+mlgFnc8f2jSYbDKt5n+couHXEAiMKJuSU\u002FuVmrITcCqiIogcji7ctFAwTZMnpsJSdPUx5uJveu2lnwInzsfbiHbNxa7ShksH+YiDq2AjUmXLjpra8H2sv+HQ4eE3m0kgnWR7uJsuubrLkchA7bqPp6129MT9GtOXuGwkIyvavKYAI\u002FzKpNORZrPXLxDFD4cFRc9FvwUteO1W6dYoG10m8NGLHivcIfeGhTp97ZDLkg5guyyrQUKWev4gCiPig9vNzTJd9QrVuj1Pmkr+T3B25THHu6zR4rjG77kvmwl1H6\u002FYE1fKRPcHvNWRCckFBdToo06zPEJrNyX59LmijyqPnGPAGaM6TojlPkuE8XurrWF\u002Frp8d2zdpkvzr9HNMmXxwQTBkl2BpVappsWpsZ0KafWinwDzLge0lz7iLNeXYozv2MLo+d16ZfW5tWXg2o09NmFIlUCzZFnQ7LVPE3FlVyofdQ\u002FK2tbWf8LLPn8zGcN8GAd4nmvK627Qc99fFFmyoR7lMnw1jzaqhW8IbybELRGFvAFfG4pTaSIlWpeQdWuH+R4rxXac53xVwYH2xcidprF1Ok\u002FMN7Wp2MYspMTLiG8uVlpTKZxuTL64aa+VSLbC5DHFqM21pWp7qaV6e6DsaSVtlCBq+JZY7Wx1Mm5VISkycSwl1GkY26+timURb9jKGZjA6FwSgJFbrE4XIvb5LZQieazhnRbFbPH1a\u002FtHkchcMC75AHy0rQu60G6WzejOaKBAoBjkIlO5opn6kY708VCT5WPb\u002FTjqK5wwhA4Kf8QAikaDarQCFoRi9Ag8LQiN6AqmJToK5wEWhCMZAjAMmfxX5OnwVJRRygqrIegioUCIi\u002Fc+L\u002FH2FIYO79ZR5+A0EntCzHjHt8AAAAAElFTkSuQmCC",{"url":81},"https:\u002F\u002Fcdn.sanity.io\u002Ffiles\u002F355nlzcp\u002Fproduction\u002Fbffe987c6ddbee89a1359b0d22c0bf2a91b0b597.json",{"icon":83,"link":85,"media":89},{"isCustom":29,"raw":84},"\u003Csvg width=\"150\" height=\"150\" viewBox=\"0 0 150 150\" fill=\"none\" xmlns=\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\">\n\u003Cpath d=\"M136.836 13.1619C128.078 4.40429 113.375 2.06162 95.5823 6.83743C77.9208 11.5782 58.144 23.1638 40.6539 40.6539C23.1638 58.144 11.5782 77.9208 6.83742 95.5823C2.0616 113.375 4.40428 128.078 13.1619 136.836C21.9195 145.594 36.6232 147.936 54.4155 143.16C72.0771 138.42 91.8538 126.834 109.344 109.344L112.463 112.464C76.5889 148.338 30.7334 160.647 10.0423 139.956C-10.6488 119.264 1.65979 73.4089 37.5343 37.5343C73.4088 1.65977 119.264 -10.6488 139.955 10.0423C160.647 30.7335 148.338 76.5889 112.463 112.464L109.344 109.344C126.834 91.8538 138.42 72.0771 143.16 54.4155C147.936 36.6232 145.594 21.9195 136.836 13.1619Z\" fill=\"url(#paint0_linear_3771_9698)\"\u002F>\n\u003Cpath d=\"M13.1722 13.1638C21.9298 4.40624 36.6335 2.06357 54.4258 6.83938C72.0873 11.5802 91.8641 23.1658 109.354 40.6558C126.844 58.1459 138.43 77.9227 143.171 95.5843C147.946 113.377 145.604 128.08 136.846 136.838C128.089 145.596 113.385 147.938 95.5926 143.162C77.931 138.422 58.1543 126.836 40.6642 109.346L37.5446 112.465C73.4192 148.34 119.275 160.649 139.966 139.957C160.657 119.266 148.348 73.4108 112.474 37.5363C76.5992 1.66172 30.7438 -10.6468 10.0526 10.0443C-10.6386 30.7354 1.67003 76.5909 37.5446 112.465L40.6642 109.346C23.1741 91.8558 11.5885 72.079 6.84771 54.4175C2.07189 36.6252 4.41454 21.9215 13.1722 13.1638Z\" fill=\"url(#paint1_linear_3771_9698)\"\u002F>\n\u003Cpath d=\"M105.739 74.8666C105.739 91.9223 91.913 105.749 74.8573 105.749C57.8015 105.749 43.9751 91.9223 43.9751 74.8666C43.9751 57.8108 57.8015 43.9844 74.8573 43.9844C91.913 43.9844 105.739 57.8108 105.739 74.8666Z\" fill=\"white\"\u002F>\n\u003Cdefs>\n\u003ClinearGradient id=\"paint0_linear_3771_9698\" x1=\"128.772\" y1=\"24.0563\" x2=\"18.396\" y2=\"120.989\" gradientUnits=\"userSpaceOnUse\">\n\u003Cstop stop-color=\"#33FF99\"\u002F>\n\u003Cstop offset=\"1\" stop-color=\"#00CCFF\"\u002F>\n\u003C\u002FlinearGradient>\n\u003ClinearGradient id=\"paint1_linear_3771_9698\" x1=\"128.782\" y1=\"24.0582\" x2=\"18.4062\" y2=\"120.991\" gradientUnits=\"userSpaceOnUse\">\n\u003Cstop stop-color=\"#33FF99\"\u002F>\n\u003Cstop offset=\"1\" stop-color=\"#00CCFF\"\u002F>\n\u003C\u002FlinearGradient>\n\u003C\u002Fdefs>\n\u003C\u002Fsvg>\n",{"anchor":28,"getParameters":28,"isInternal":29,"label":86,"openInNewTab":28,"page":87,"title":28},"Community",{"slug":88,"type":43},"community",{"image":90,"lottie":93,"type":54},{"alt":47,"assetId":91,"caption":28,"crop":28,"height":49,"hotspot":28,"lqip":92,"width":51},"image-836dbd9c989ab6f984060eaaef0abb1dd7068e0a-249x217-png","data:image\u002Fpng;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAARCAYAAADdRIy+AAAACXBIWXMAAAsTAAALEwEAmpwYAAACT0lEQVR4nK2UzUtUURjGz9zrtzELEbMZrZEyxCQbL7kJ7BtcRFIwikVkBmKtXbUZbCFK9AcIomaL4EJUNklqdglqlxohBLOpTQQy6WROeueO5xdHRw0aZwx64IHDy+H3vNz3PVeIFAJc4n8JcAWDaEKkg+IS6k6mYMsi780zKsaf2zXWKMWmia4C1jveti7eUSI+2DVi+tcBEZa5KRNVVxNP8UyG4h2vQnbPeCjeoAIATTmY9N5xCvVp56w+a\u002Fdos3ab+MjeFJ1uAydG452TIbt3KhRvmJtjD1AE+FbAF4WixrB06zPOOX3G7tVm7Rs7ADdkmuRPja0cfPnYrp1+iweoBFqBu8oJaJ2HyvqwLMuesWvFJ3zCIi\u002FTUDTLIgvwAreB11LKL8rqDHTGYniDFlnqE4hMSg5BAeuBR0BUSplQVudk7Xjyjmu3wBzgDDABrP4BXE3WTgHZ\u002FwC0VLoBjEgpFzaBUsrvwAPADxsrJTIDAzp0qPRSoF1KOQaElddYewG0LbNc2sH7bIGpp4d9vVDAj5bDRK8YxO54YcWH4zQBXQkSXQ7OxW8sVjTxpLyOYcPPyKEy7uen6Eq4IKgRCXiJttziZ0ufXGo9CfcKpZRuwBMj5onIiPtq5KHbYPB8HcN9xxJDN6sZKv1rD7eA85f2sRhoZ7G5m6XmE3y+nrde33otQc2gv8BwBk771wa7\u002FYmBa0cZKdlxsaVszGUhsJ+ly1VEA0UbMBW2+Z6FK4CpG\u002FQXGwxVHWGwvBozJ8NQFECsg9Jc2v5Z7EZpYRn0GxIhDrvY9lKtAAAAAElFTkSuQmCC",{"url":94},"https:\u002F\u002Fcdn.sanity.io\u002Ffiles\u002F355nlzcp\u002Fproduction\u002Ff49b9fa081e7bf97fdfcd6f8e85660c34fd33150.json",{"icon":96,"link":98,"media":102},{"isCustom":29,"raw":97},"\u003Csvg width=\"48\" height=\"48\" viewBox=\"0 0 48 48\" fill=\"none\" xmlns=\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\">\n\u003Ccircle cx=\"24\" cy=\"24\" r=\"24\" fill=\"url(#paint0_linear_3843_66150)\"\u002F>\n\u003Cpath d=\"M8.63989 42.3996L33.2353 31.5813L25.4492 23.3346L8.63989 42.3996ZM17.6752 15.1005L25.4613 23.3346L39.3599 5.59961L17.6752 15.1005Z\" fill=\"white\"\u002F>\n\u003Cdefs>\n\u003ClinearGradient id=\"paint0_linear_3843_66150\" x1=\"48\" y1=\"24.0368\" x2=\"-1.71443e-07\" y2=\"24.0368\" gradientUnits=\"userSpaceOnUse\">\n\u003Cstop stop-color=\"#33FF99\"\u002F>\n\u003Cstop offset=\"1\" stop-color=\"#00CCFF\"\u002F>\n\u003C\u002FlinearGradient>\n\u003C\u002Fdefs>\n\u003C\u002Fsvg>\n",{"anchor":28,"getParameters":28,"isInternal":29,"label":99,"openInNewTab":28,"page":100,"title":28,"url":62},"$RUNE",{"slug":101,"type":43},"rune",{"image":103,"lottie":106,"type":54},{"alt":47,"assetId":104,"caption":28,"crop":28,"height":49,"hotspot":28,"lqip":105,"width":51},"image-7d03dcb9e362797128e360b59ec0cc0cb5032643-249x217-png","data:image\u002Fpng;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAARCAYAAADdRIy+AAAACXBIWXMAAAsTAAALEwEAmpwYAAACcUlEQVR4nJ1UXUhUQRi9u5lE6VNIUCRFYSWy3plZW6hoswJJ7I8QggjyoXyxh4gIitqe86EezFB378ysWrFJvyCClCWYEEXPEdGjIBWUkdrONydmExHczZ8DH\u002Ffhzj3zfeec73reUgAvtKTz8wCEAIS82UqEc89lAZkV25AsFb91OZvq2iEgt0cRbKxEpsS9WxJXIzLFkcnOzT70UW7kdQHdzki2M6OvRpBqENDllcgUL4pMoGNlDXQFs+oCIzXISX9hpMc5pcd3UvfnqFEDwsjzAmqLO+sVHtELJZAIV6FrHbf6LLd6hJH8xY2k3dRNDdRHx+mx2Uf3JgSpYW7kGf9nquyfxvnMAkJxJIo4lOBWd3OrvjMKaI\u002FRtpn6bSuN2otm0B6g+8RJfeVQSX86Vd1YUE8gJNCxOgp1hJN8wyjI+pRELfXgmn2Nu\u002FY9mug5YiStb4I\u002FnOQrP5s6FIdcNd\u002F5mXF34UkpQ\u002FokJ\u002FWBmZR1hPupF1doCDftKI5RHxilrOuck3zLIE\u002FE0VaSP0ozHTIEhxnJEZ+CbIwUTtPTXHd37Ds00iMIChzhtCD5kkPX5e9wpksPiaIINGPQkpP65vRqMQP2Bg3bc9Rva02P5SSJw7muOqJIV+XCXshld5OPVBmDahKkh\u002FdS70Q9PTQH6QHFSLsxDSP1g5F+wa08VQO9dsHNcdlik11bGYIWQbpfkP7EkB5jpMc40h85qWfMBM0xyE1xDBV5i4HbArdmPoJ6ZoLLgvRtRuoWN\u002FoSzwZ11VAb\u002Fh9qL58ECFeircR9XIPOishUZwVDcn0ErWsK67YwaS5Oc2v5f5tZUmfWnFoAfwHy1auqFdA+IAAAAABJRU5ErkJggg==",{"url":107},"https:\u002F\u002Fcdn.sanity.io\u002Ffiles\u002F355nlzcp\u002Fproduction\u002Fd12cfbb5e858bd1fdf6e05856b035b3410af7a5c.json",{"icon":109,"link":111,"media":115},{"isCustom":29,"raw":110},"\u003Csvg width=\"48\" height=\"48\" viewBox=\"0 0 48 48\" fill=\"none\" xmlns=\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\">\n\u003Ccircle cx=\"24\" cy=\"24\" r=\"24\" fill=\"#00CCFF\"\u002F>\n\u003Cpath d=\"M8.63989 42.3996L33.2353 31.5813L25.4492 23.3346L8.63989 42.3996ZM17.6752 15.1005L25.4613 23.3346L39.3599 5.59961L17.6752 15.1005Z\" fill=\"white\"\u002F>\n\u003C\u002Fsvg>\n",{"anchor":28,"getParameters":28,"isInternal":29,"label":112,"openInNewTab":28,"page":113,"title":28,"url":62},"$TCY",{"slug":114,"type":43},"tcy",{"image":116,"lottie":119,"type":54},{"alt":47,"assetId":117,"caption":28,"crop":28,"height":49,"hotspot":28,"lqip":118,"width":51},"image-df576c744b36236856b41bda8a36721818c34d73-249x217-png","data:image\u002Fpng;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAARCAYAAADdRIy+AAAACXBIWXMAAAsTAAALEwEAmpwYAAACYklEQVR4nL1USWsUURCudHVPXBKFEJcEYxQJhoCKIt48eBEMBlxAL4KoiIgXRQKCh4D+BD0pgiB48O5BDy5oNMg46e73embMgokEQiAEIctkXtXrkhcH3CYx5mBBnR71VX3fV\u002FUA\u002FmuI1FTNFYIhDKTrIJFWyM13LKSWrVCQengi+G9gA2ktqNIOVHQSI7qFMd3HmO752vRgTMegr7QdtGSWB6YlA\u002FF8u6e429P8AhMeRc2TgebJNXn+vCqxz\u002F2Ir0EibZCVYCmONdAjHmSlyVN8GbXtQ8WztTFxoyLbUSC7u2jshjzPBIm89RRfgN7pjd81raare3AdtRxAZR+j4q8Ykm2IyumRQZN2j3F6etikzZqsr3gKFT0MwvLeip6LAI7LWsynJ1DZPgwNY85Ic2zk\u002FAjJ7XErhwZI6kKTYmgIY3qDIR2FL7K6ivMVusOy3ivKGVQcoSvMGWlRRs6NkFwfY9lVMBL0lx2gxdB89BI5teC6q\u002F2DtusSugnpOCp+jxFRXWjk4Cc3HUvPOMu+gpFa1ygyBhW\u002Fxlg64V3VCSuAL8X3Y9mP2j5CbaeatEm7hkx6aZTSw4Mm3RyX0yAii4onUdMDUOU9S+xkhXYsmzzNFwNtexsSnmkrMrcmZOuVsX5MjBFNo+ZXnuazUJTGynRLXI9zOidtfmSuZjQ\u002Fy+R5OEh4AhOe8BIe8hQ\u002F9SJzBbKlHX\u002FZw9+Wu7+0DRV1+crcRGXvorJ3PM03MKZOUHMtoPUyLwUq4bTRUgcf5logO98OkeyEaHaLMw7EubqScPo4XX\u002FOFf82P1Arp7XYif0a3wBb6qnvxaS6lwAAAABJRU5ErkJggg==",{"url":120},"https:\u002F\u002Fcdn.sanity.io\u002Ffiles\u002F355nlzcp\u002Fproduction\u002F5f05576aa4c091df234a605d02cc0d364dda67ae.json",{"icon":122,"link":124,"media":128},{"isCustom":29,"raw":123},"\u003Csvg width=\"171\" height=\"171\" viewBox=\"0 0 171 171\" fill=\"none\" xmlns=\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\">\n\u003Crect width=\"171\" height=\"170.045\" rx=\"2\" fill=\"white\"\u002F>\n\u003Crect x=\"14\" y=\"14\" width=\"142.341\" height=\"66.3939\" rx=\"4\" fill=\"#33FF99\"\u002F>\n\u003Crect x=\"14\" y=\"99\" width=\"66.3939\" height=\"9.55307\" rx=\"2\" fill=\"#E0E0E0\"\u002F>\n\u003Crect x=\"14\" y=\"118.106\" width=\"66.3939\" height=\"9.55307\" rx=\"2\" fill=\"#E0E0E0\"\u002F>\n\u003Crect x=\"14\" y=\"136.734\" width=\"66.3939\" height=\"9.55307\" rx=\"2\" fill=\"#E0E0E0\"\u002F>\n\u003Crect x=\"89.9473\" y=\"89.9463\" width=\"66.3939\" height=\"66.3939\" rx=\"4\" fill=\"#E0E0E0\"\u002F>\n\u003C\u002Fsvg>\n",{"anchor":28,"getParameters":28,"isInternal":29,"label":125,"openInNewTab":28,"page":126,"title":28,"url":62},"Blog",{"slug":127,"type":43},"blog",{"image":129,"lottie":132,"type":54},{"alt":47,"assetId":130,"caption":28,"crop":28,"height":49,"hotspot":28,"lqip":131,"width":51},"image-60b273ef3f61fb210391ace13ae24fd54315e903-249x217-png","data:image\u002Fpng;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAARCAYAAADdRIy+AAAACXBIWXMAAAsTAAALEwEAmpwYAAACwUlEQVR4nJWUS2gTQRjHE6nWRvAqouihEVQoqDfbXsRLhYIPEFG0B08KPhAUtAfNSWjQnmvbYMGbxbRQlGIpaStt7ANqH+kjkSbZdjeJO9ndZLPZ7Lw+2ZqAtGmqAz\u002F+zAzzY2aYbxyOLQ0AnACwpwJOx782+CPbCwA1AOAqQ01xfncpADhFANdYIXb6Iyw2dZOZK50wffkd+b6Zdt8eH+HRUyKIrsq7BXC+AtgzC8KRHjr74CkMfW6B\u002FuBt+DRxh\u002Fk3swX6gs\u002FY8JcPdO5xKLN+AiF0MBqN7i8vLQqHIV77lgXbbrC+jUboIfXgIw3cR+1shPfkJu1HnZkfffMR7eHPJeOqIOh1xatw7ih8zca9zaxXPAdd7Ax0sLPQwUtcK\u002FTiLmElEZwyF+en8WA4bNyLxX4d3n78ojBgRtxv2KT3OveLjdDDzkM3rwcf2DRwH9zK+8G3GuEjIxabGSfx0ILpWVtTjm8Tlp7Koim4B1jE284mxVY2zJ7Tr\u002FwFGwKbVjYE7fkgDKxKbDSA6dQ3GgstWJ61UAWhZmruJNO9UaqKKyTFlnCSL5MUlFjNI5gP5\u002FjEKGYzEyS+HNpFCAC1hBAvpVQkhFDLsjjGGEqYJgZx3eShhTyLLFvx9bjpkdZ2ETLG2hhjG7YQY8z+FhYKFqiKzpNJjSkoF1dV3aNIFYSGYRzFGD+ilA4SQuYsy0pYloULhQK3MU2TZzJZpmkaNQwjpuuGR5Kk7cKSNJFIHNB1vY4Q0owxvp\u002FP5\u002FsNw0jruo6z2SzOZDJEURSsqirW9Vw0l8u9VBTl2I5VU9zpPlusaZobIfREVdUBhNAYQmjURpZlO8cURfEjhO4mk8lDFcuwKHWKouiSZfmkLMsX0+l0UyqVaiqlJEmXZFm+IAiC2y6\u002F8vVcXlzFOa+2F20lHA5XBwKBKofD8d\u002Ff2Y5\u002FYznZb5MYH+0zomWxAAAAAElFTkSuQmCC",{"url":133},"https:\u002F\u002Fcdn.sanity.io\u002Ffiles\u002F355nlzcp\u002Fproduction\u002F9f4f2678daa0ced5ddeb857c80aba99cdc2327df.json",{"icon":135,"link":137,"media":141},{"isCustom":29,"raw":136},"\u003Csvg width=\"219\" height=\"150\" viewBox=\"0 0 219 150\" fill=\"none\" xmlns=\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\">\n\u003Cpath d=\"M218.878 75C195.267 116.421 154.167 150 109.439 150C64.7096 150 23.6107 116.421 0 75C23.6107 33.5786 64.7096 0 109.439 0C154.167 0 195.267 33.5786 218.878 75Z\" fill=\"white\"\u002F>\n\u003Ccircle cx=\"109.439\" cy=\"74.9988\" r=\"62.0301\" fill=\"#00CCFF\"\u002F>\n\u003Ccircle cx=\"110.03\" cy=\"74.4075\" r=\"27.1751\" fill=\"black\"\u002F>\n\u003C\u002Fsvg>\n",{"anchor":28,"getParameters":28,"isInternal":29,"label":138,"openInNewTab":28,"page":139,"title":28},"Vision",{"slug":140,"type":43},"vision",{"image":142,"lottie":145,"type":54},{"alt":47,"assetId":143,"caption":28,"crop":28,"height":49,"hotspot":28,"lqip":144,"width":51},"image-b942f780208164574bc627717b8ba767769679c8-249x217-png","data:image\u002Fpng;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAARCAYAAADdRIy+AAAACXBIWXMAAAsTAAALEwEAmpwYAAACW0lEQVR4nK2Uz0tUURTHdaKiH0RUFLUJiqJdBEG7FrUogiRq06a\u002FINpE4NYgMGjZIttEi2qhRAS1yGlGR0cdxSxGndExmxlnlPnhqM004\u002FjuPfcT7\u002FkYBrI068KXd+Cd+73fc8733oaGdRbQuFa8qQU0Ah73W4s3S7QF2A0cAY65OAzscv9tjJhVFTbRKeCaZXGvXOJhuUSrVeUucBU46eZ41iOzTz4IXFIrPFoq0J1OEJuKkP4aJTUTl9hCAb9StAIXgQP2nj+R2SXdtCw68llJjn1R1YHAivT5Sw5CgaqMh\u002FXyfE7iSvESuOEK8KzVs\u002F12gghvS0WZj44q3fOxYvp8cRMOdZtwqMv0+76ZoL8ik+NaFb9LVoQOpWgC9tZ6agfGmO3AOeCZ1mRyGa2Hgsr0eLPERt6wONPMYqqZ2OfX9HozDPcrM58TpbWZFaENOANsdUjrhtAEpktrU8nMigwENH2+GVLRNqz8LQep6BP6fUkGexXZORGtKQOdwGVgh1O6W+424CzwVCnm8llRjsLOPNHh9xTiLRQSLUQ\u002FvaOnM1enkBTwGDhdU1jXQ7sPTXZffhTJTI4pFfRVJehNm5HgkAM7DvqrEotoq1SUORFe2eqMMXt+8WV7+6pljDHXlTIvCnmZjoR1JRSwJOhfdjDYq\u002FTEqC4X8jJlWfLcHcj+3\u002FrRtY6dcEEpHiwV8KYTRKcnSE7HTGI2KZHFBfkgihbgPLBvI+b2uNfrBHDFsrizXOa+DW1x2x3AcWDn31y\u002FRletTXwIOOrCNrEzzX95JOzN9fgvT1gN6234Cega0QKe7QqpAAAAAElFTkSuQmCC",{"url":146},"https:\u002F\u002Fcdn.sanity.io\u002Ffiles\u002F355nlzcp\u002Fproduction\u002F10605a7dc834718366393857d9c7dc4b3459fd63.json",[148,167,209,236,257,278,296,311],{"children":149,"label":166},[150,152,154,156,158,160,162,164],{"anchor":28,"getParameters":28,"isInternal":29,"label":40,"openInNewTab":28,"page":151,"title":28},{"slug":42,"type":43},{"anchor":28,"getParameters":28,"isInternal":29,"label":59,"openInNewTab":28,"page":153,"title":28},{"slug":61,"type":43},{"anchor":28,"getParameters":28,"isInternal":29,"label":73,"openInNewTab":28,"page":155,"title":28},{"slug":75,"type":43},{"anchor":28,"getParameters":28,"isInternal":29,"label":86,"openInNewTab":28,"page":157,"title":28},{"slug":88,"type":43},{"anchor":28,"getParameters":28,"isInternal":29,"label":99,"openInNewTab":28,"page":159,"title":28},{"slug":101,"type":43},{"anchor":28,"getParameters":28,"isInternal":29,"label":112,"openInNewTab":28,"page":161,"title":28},{"slug":114,"type":43},{"anchor":28,"getParameters":28,"isInternal":29,"label":125,"openInNewTab":28,"page":163,"title":28},{"slug":127,"type":43},{"anchor":28,"getParameters":28,"isInternal":29,"label":138,"openInNewTab":28,"page":165,"title":28},{"slug":140,"type":43},"Menu",{"children":168,"label":208},[169,173,177,181,185,189,193,197,200,204],{"anchor":28,"getParameters":28,"isInternal":29,"label":170,"openInNewTab":28,"page":171,"title":28},"FAQ",{"slug":172,"type":43},"faq",{"anchor":28,"getParameters":28,"isInternal":29,"label":174,"openInNewTab":28,"page":175,"title":28},"Contributors",{"slug":176,"type":43},"contributors",{"anchor":28,"getParameters":28,"isInternal":29,"label":178,"openInNewTab":28,"page":179,"title":28},"Pro Trader",{"slug":180,"type":43},"pro-trader",{"anchor":28,"getParameters":28,"isInternal":29,"label":182,"openInNewTab":28,"page":183,"title":28},"Node Operator",{"slug":184,"type":43},"node-operator",{"anchor":28,"getParameters":28,"isInternal":29,"label":186,"openInNewTab":28,"page":187,"title":28},"Bond $RUNE",{"slug":188,"type":43},"bond-rune",{"anchor":28,"getParameters":28,"isInternal":190,"label":191,"openInNewTab":28,"title":28,"url":192},false,"Whitepaper","https:\u002F\u002Fdocs.thorchain.org\u002F",{"anchor":28,"getParameters":28,"isInternal":29,"label":194,"openInNewTab":28,"page":195,"title":28,"url":192},"Brand Assets",{"slug":196,"type":43},"brand-assets",{"anchor":28,"getParameters":28,"isInternal":190,"label":198,"openInNewTab":28,"title":28,"url":199},"Audits","https:\u002F\u002Fgithub.com\u002Fthorchain\u002FResources\u002Ftree\u002Fmaster\u002FAudits",{"anchor":28,"getParameters":28,"isInternal":29,"label":201,"openInNewTab":28,"page":202,"title":28},"Privacy Policy",{"slug":203,"type":43},"privacy-policy",{"anchor":28,"getParameters":28,"isInternal":29,"label":205,"openInNewTab":28,"page":206,"title":28},"Terms of Use",{"slug":207,"type":43},"terms-of-use","THORChain",{"children":210,"label":235},[211,215,219,222,225,229,232],{"anchor":28,"getParameters":28,"isInternal":190,"label":212,"openInNewTab":28,"page":213,"title":28,"url":214},"THORChain Explorer",{"slug":101,"type":43},"https:\u002F\u002Fthorchain.net\u002Fdashboard",{"anchor":28,"getParameters":28,"isInternal":190,"label":216,"openInNewTab":28,"page":217,"title":28,"url":218},"RUNEScan",{"slug":196,"type":43},"https:\u002F\u002Frunescan.io\u002Ffr",{"anchor":28,"getParameters":28,"isInternal":190,"label":220,"openInNewTab":28,"title":28,"url":221},"Viewblock","https:\u002F\u002Fviewblock.io\u002Fthorchain",{"anchor":28,"getParameters":28,"isInternal":190,"label":223,"openInNewTab":28,"title":28,"url":224},"THORNodes","https:\u002F\u002Fthornode.network\u002F",{"anchor":28,"getParameters":28,"isInternal":190,"label":226,"openInNewTab":28,"theme":227,"title":28,"url":228},"THORChain Network","default","https:\u002F\u002Fthorchain.network\u002Fnodes",{"anchor":28,"getParameters":28,"isInternal":190,"label":230,"openInNewTab":28,"title":28,"url":231},"RUNE Tools","https:\u002F\u002Frune.tools\u002F",{"anchor":28,"getParameters":28,"isInternal":190,"label":233,"openInNewTab":28,"title":28,"url":234},"XScanner","https:\u002F\u002Fxscanner.org\u002F","Explorers",{"children":237,"label":256},[238,241,244,247,250,253],{"anchor":28,"getParameters":28,"isInternal":190,"label":239,"openInNewTab":28,"title":28,"url":240},"Messari","https:\u002F\u002Fmessari.io\u002Fdashboards\u002Fthorchain",{"anchor":28,"getParameters":28,"isInternal":190,"label":242,"openInNewTab":28,"title":28,"url":243},"Dune","https:\u002F\u002Fdune.com\u002Fthorchain\u002Fthorchain-overview",{"anchor":28,"getParameters":28,"isInternal":190,"label":245,"openInNewTab":28,"title":28,"url":246},"Raynalytics","https:\u002F\u002Fraynalytics.net\u002F",{"anchor":28,"getParameters":28,"isInternal":190,"label":248,"openInNewTab":28,"title":28,"url":249},"THORCharts","https:\u002F\u002Fthorcharts.org\u002F",{"anchor":28,"getParameters":28,"isInternal":190,"label":251,"openInNewTab":28,"title":28,"url":252},"Snowflake","https:\u002F\u002Fapp.snowflake.com\u002Fmarketplace\u002Flisting\u002FGZT0ZJKG5R1\u002Fflipside-crypto-thorchain-premium-onchain-data",{"anchor":28,"getParameters":28,"isInternal":190,"label":254,"openInNewTab":28,"title":28,"url":255},"GrassRoots Crypto","https:\u002F\u002Fwww.youtube.com\u002F@GrassRootsCrypto","Research",{"children":258,"label":277},[259,262,265,268,271,274],{"anchor":28,"getParameters":28,"isInternal":190,"label":260,"openInNewTab":28,"title":28,"url":261},"Rujira","https:\u002F\u002Frujira.network\u002F",{"anchor":28,"getParameters":28,"isInternal":190,"label":263,"openInNewTab":28,"title":28,"url":264},"Maya Protocol","https:\u002F\u002Fwww.mayaprotocol.com\u002F",{"anchor":28,"getParameters":28,"isInternal":190,"label":266,"openInNewTab":28,"title":28,"url":267},"Liquify","https:\u002F\u002Fwww.liquify.com\u002F",{"anchor":28,"getParameters":28,"isInternal":190,"label":269,"openInNewTab":28,"title":28,"url":270},"Berserk Marketing","https:\u002F\u002Fberserkmarketingltd.com\u002F",{"anchor":28,"getParameters":28,"isInternal":190,"label":272,"openInNewTab":28,"title":28,"url":273},"Soda Labs","https:\u002F\u002Fsodalabs.xyz\u002F",{"anchor":28,"getParameters":28,"isInternal":190,"label":275,"openInNewTab":28,"title":28,"url":276},"Hypernative","https:\u002F\u002Fwww.hypernative.io\u002F","Partners",{"children":279,"label":295},[280,283,286,289,292],{"anchor":28,"getParameters":28,"isInternal":190,"label":281,"openInNewTab":28,"title":28,"url":282},"GitLab","https:\u002F\u002Fgitlab.com\u002Fthorchain",{"anchor":28,"getParameters":28,"isInternal":190,"label":284,"openInNewTab":28,"title":28,"url":285},"Dev Discord","https:\u002F\u002Fdiscord.com\u002Finvite\u002Fthorchaindevs",{"anchor":28,"getParameters":28,"isInternal":190,"label":287,"openInNewTab":28,"title":28,"url":288},"Dev Docs","https:\u002F\u002Fdev.thorchain.org\u002F",{"anchor":28,"getParameters":28,"isInternal":190,"label":290,"openInNewTab":28,"title":28,"url":291},"Ecosystem Guide","https:\u002F\u002Ftcecosystem.guide\u002Findex.html",{"anchor":28,"getParameters":28,"isInternal":190,"label":293,"openInNewTab":28,"title":28,"url":294},"Bug Bounty","https:\u002F\u002Fgitlab.com\u002Fthorchain\u002Fthornode\u002F-\u002Fblob\u002Fdevelop\u002Fbugbounty.md","Developers",{"children":297,"label":310},[298,301,304,307],{"anchor":28,"getParameters":28,"isInternal":190,"label":299,"openInNewTab":28,"title":28,"url":300},"THOR InfoBot","https:\u002F\u002Fx.com\u002FTHOR_InfoBot",{"anchor":28,"getParameters":28,"isInternal":190,"label":302,"openInNewTab":28,"title":28,"url":303},"THORChain Infobot","https:\u002F\u002Ft.me\u002Fthor_infobot",{"anchor":28,"getParameters":28,"isInternal":190,"label":305,"openInNewTab":28,"title":28,"url":306},"THORChain Alerts","https:\u002F\u002Ft.me\u002Fthorchain_alert",{"anchor":28,"getParameters":28,"isInternal":190,"label":308,"openInNewTab":28,"title":28,"url":309},"THORChain DEV","https:\u002F\u002Ft.me\u002Fthorchain_dev","Notifications",{"children":312,"label":328},[313,316,319,322,325],{"anchor":28,"getParameters":28,"isInternal":190,"label":314,"openInNewTab":28,"theme":227,"title":28,"url":315},"Midgard","https:\u002F\u002Fgateway.liquify.com\u002Fchain\u002Fthorchain_midgard\u002Fv2\u002Fdoc",{"anchor":28,"getParameters":28,"isInternal":190,"label":317,"openInNewTab":28,"theme":227,"title":28,"url":318},"THORNode","https:\u002F\u002Fgateway.liquify.com\u002Fchain\u002Fthorchain_api\u002Fthorchain\u002Fdoc",{"anchor":28,"getParameters":28,"isInternal":190,"label":320,"openInNewTab":28,"theme":227,"title":28,"url":321},"THORNode - Liquify","https:\u002F\u002Fapiv2.liquify.com\u002Fthor\u002Fapi\u002Fdocs",{"anchor":28,"getParameters":28,"isInternal":190,"label":323,"openInNewTab":28,"theme":227,"title":28,"url":324},"DEX Integration","https:\u002F\u002Fapi-thor.liquify.com\u002Fdocs#\u002F",{"anchor":28,"getParameters":28,"isInternal":190,"label":326,"openInNewTab":28,"theme":227,"title":28,"url":327},"RPC","https:\u002F\u002Fgateway.liquify.com\u002Fchain\u002Fthorchain_rpc","API","Error, try again later","The best way to stay up to date on THORChain","Enter your email","Sign Up","Subscribed",[335,343,351,359,367,375,383,391,398,405,412,419],{"_key":336,"icon":337,"link":340},"2eb184d055a2",{"icon":338,"isCustom":29,"raw":339},"x","\u003Csvg width=\"20\" height=\"19\" viewBox=\"0 0 20 19\" fill=\"none\" xmlns=\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\">\n\u003Cpath d=\"M15.8014 0H18.867L12.136 8.06273L20 19H13.8287L8.997 12.3535L3.46551 19H0.399867L7.53082 10.3764L0 0H6.32456L10.6898 6.07159L15.8014 0ZM14.7284 17.107H16.4279L5.43152 1.82288H3.60546L14.7284 17.107Z\" fill=\"#FAFAFA\"\u002F>\n\u003C\u002Fsvg>\n",{"isInternal":190,"label":341,"url":342},"X (Twitter)","https:\u002F\u002Fx.com\u002Fthorchain",{"_key":344,"icon":345,"link":348},"b4fd5f2c06d5",{"icon":346,"isCustom":29,"raw":347},"telegram","\u003Csvg width=\"20\" height=\"16\" viewBox=\"0 0 20 16\" fill=\"none\" xmlns=\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\">\n\u003Cpath d=\"M18.6339 0.0653823L0.520771 6.77709C0.509994 6.78106 0.499547 6.78582 0.48952 6.7913C0.34264 6.87098 -0.682396 7.47134 0.762967 8.00961L0.777811 8.01484L5.09085 9.3491C5.12376 9.35934 5.1586 9.36257 5.19295 9.35856C5.22729 9.35456 5.26031 9.34341 5.28969 9.32591L15.9873 2.93477C16.0135 2.9191 16.0428 2.90855 16.0733 2.90373C16.2221 2.88016 16.6506 2.83602 16.3795 3.16557C16.0729 3.53962 8.76598 9.80957 7.95501 10.5049C7.90825 10.5451 7.87932 10.601 7.87415 10.6609L7.52023 14.7007C7.52019 14.7419 7.53015 14.7825 7.54934 14.8193C7.56853 14.8561 7.59642 14.8881 7.63078 14.9128C7.67955 14.9422 7.73689 14.9559 7.79436 14.9517C7.85182 14.9475 7.90636 14.9258 7.94993 14.8896L10.5125 12.6965C10.553 12.6619 10.6046 12.6416 10.6589 12.6389C10.7131 12.6363 10.7666 12.6515 10.8106 12.682L15.2814 15.7904L15.2959 15.7997C15.4041 15.8637 16.5729 16.5149 16.9104 15.0606L19.9964 1.00913C20.0007 0.964615 20.0425 0.475349 19.6773 0.186203C19.2937 -0.116035 18.7507 0.0365798 18.6691 0.0530383C18.657 0.0562485 18.6453 0.0603764 18.6339 0.0653823Z\" fill=\"#FAFAFA\"\u002F>\n\u003C\u002Fsvg>\n",{"isInternal":190,"label":349,"url":350},"Telegram","https:\u002F\u002Ft.me\u002Fthorchain_org",{"_key":352,"icon":353,"link":356},"e7ab02eb4513",{"icon":354,"isCustom":29,"raw":355},"discord","\u003Csvg width=\"20\" height=\"15\" viewBox=\"0 0 20 15\" fill=\"none\" xmlns=\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\">\n\u003Cpath d=\"M12.8155 0C12.62 0.343329 12.4445 0.698502 12.285 1.06156C10.7693 0.836619 9.22574 0.836619 7.70605 1.06156C7.55055 0.698502 7.37106 0.343329 7.17559 0C5.75169 0.240729 4.36362 0.662984 3.04741 1.25888C0.438864 5.08286 -0.267107 8.80821 0.0838889 12.4822C1.61154 13.5991 3.32263 14.4515 5.14542 14.996C5.55622 14.4515 5.91921 13.8714 6.23033 13.2676C5.63999 13.0505 5.06962 12.7782 4.52319 12.4625C4.66678 12.3599 4.80637 12.2533 4.942 12.1508C8.14484 13.6424 11.8542 13.6424 15.061 12.1508C15.1966 12.2613 15.3362 12.3678 15.4798 12.4625C14.9334 12.7821 14.363 13.0505 13.7687 13.2715C14.0798 13.8753 14.4428 14.4554 14.8536 15C16.6764 14.4554 18.3875 13.6069 19.9152 12.4901C20.33 8.22809 19.2052 4.53434 16.9436 1.26284C15.6314 0.666932 14.2434 0.244672 12.8195 0.00789131L12.8155 0ZM6.67703 10.221C5.69186 10.221 4.87416 9.33702 4.87416 8.24389C4.87416 7.15077 5.65991 6.26282 6.67302 6.26282C7.68613 6.26282 8.49181 7.15468 8.47589 8.24389C8.45992 9.33305 7.68218 10.221 6.67703 10.221ZM13.322 10.221C12.3329 10.221 11.5232 9.33702 11.5232 8.24389C11.5232 7.15077 12.3089 6.26282 13.322 6.26282C14.3351 6.26282 15.1368 7.15468 15.1208 8.24389C15.1049 9.33305 14.3271 10.221 13.322 10.221Z\" fill=\"#FAFAFA\"\u002F>\n\u003C\u002Fsvg>\n",{"isInternal":190,"label":357,"url":358},"Discord","https:\u002F\u002Fdiscord.gg\u002Fthorchaincommunity",{"_key":360,"icon":361,"link":364},"a78ef65b331f",{"icon":362,"isCustom":29,"raw":363},"gitlab","\u003Csvg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\">\n\u003Cpath d=\"M18.5236 0H1.47639C1.08483 0 0.709301 0.155548 0.432425 0.432425C0.155548 0.709301 0 1.08483 0 1.47639V18.5236C0 18.9152 0.155548 19.2907 0.432425 19.5676C0.709301 19.8445 1.08483 20 1.47639 20H18.5236C18.9152 20 19.2907 19.8445 19.5676 19.5676C19.8445 19.2907 20 18.9152 20 18.5236V1.47639C20 1.08483 19.8445 0.709301 19.5676 0.432425C19.2907 0.155548 18.9152 0 18.5236 0ZM5.96111 17.0375H2.95417V7.48611H5.96111V17.0375ZM4.45556 6.1625C4.11447 6.16058 3.7816 6.05766 3.49895 5.86674C3.21629 5.67582 2.99653 5.40544 2.8674 5.08974C2.73826 4.77404 2.70554 4.42716 2.77336 4.09288C2.84118 3.7586 3.0065 3.4519 3.24846 3.21148C3.49042 2.97107 3.79818 2.80772 4.13289 2.74205C4.4676 2.67638 4.81426 2.71133 5.12913 2.84249C5.44399 2.97365 5.71295 3.19514 5.90205 3.47901C6.09116 3.76288 6.19194 4.09641 6.19167 4.4375C6.19488 4.66586 6.15209 4.89253 6.06584 5.104C5.97959 5.31547 5.85165 5.50742 5.68964 5.66839C5.52763 5.82936 5.33487 5.95607 5.12285 6.04096C4.91083 6.12585 4.68389 6.16718 4.45556 6.1625ZM17.0444 17.0458H14.0389V11.8278C14.0389 10.2889 13.3847 9.81389 12.5403 9.81389C11.6486 9.81389 10.7736 10.4861 10.7736 11.8667V17.0458H7.76667V7.49306H10.6583V8.81667H10.6972C10.9875 8.22917 12.0042 7.225 13.5556 7.225C15.2333 7.225 17.0458 8.22083 17.0458 11.1375L17.0444 17.0458Z\" fill=\"#FAFAFA\"\u002F>\n\u003C\u002Fsvg>\n",{"isInternal":190,"label":365,"url":366},"LinkedIn","https:\u002F\u002Flinkedin.com\u002Fcompany\u002Fthorchain",{"_key":368,"icon":369,"link":372},"fcd9d1276a23",{"icon":370,"isCustom":29,"raw":371},"youtube","\u003Csvg width=\"20\" height=\"14\" viewBox=\"0 0 20 14\" fill=\"none\" xmlns=\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\">\n\u003Cpath d=\"M19.8008 3.02083C19.8008 3.02083 19.6055 1.64843 19.0039 1.04582C18.2422 0.252708 17.3906 0.24882 17 0.202166C14.2031 -1.12332e-07 10.0039 0 10.0039 0H9.99609C9.99609 0 5.79687 -1.12332e-07 3 0.202166C2.60938 0.24882 1.75781 0.252708 0.996094 1.04582C0.394531 1.64843 0.203125 3.02083 0.203125 3.02083C0.203125 3.02083 0 4.63427 0 6.24382V7.75229C0 9.36184 0.199219 10.9753 0.199219 10.9753C0.199219 10.9753 0.394531 12.3477 0.992187 12.9503C1.75391 13.7434 2.75391 13.7162 3.19922 13.8017C4.80078 13.9533 10 14 10 14C10 14 14.2031 13.9922 17 13.7939C17.3906 13.7473 18.2422 13.7434 19.0039 12.9503C19.6055 12.3477 19.8008 10.9753 19.8008 10.9753C19.8008 10.9753 20 9.36573 20 7.75229V6.24382C20 4.63427 19.8008 3.02083 19.8008 3.02083ZM7.93359 9.58345V3.98889L13.3359 6.79589L7.93359 9.58345Z\" fill=\"#FAFAFA\"\u002F>\n\u003C\u002Fsvg>\n",{"isInternal":190,"label":373,"url":374},"YouTube","https:\u002F\u002Fwww.youtube.com\u002F@THORChainCommunity",{"_key":376,"icon":377,"link":380},"c6aeacc6ad97",{"icon":378,"isCustom":29,"raw":379},"reddit","\u003Csvg width=\"20\" height=\"17\" viewBox=\"0 0 20 17\" fill=\"none\" xmlns=\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\">\n\u003Cpath d=\"M12.5427 2.48901C12.7594 3.3816 13.5842 4.04654 14.5691 4.04654C15.7189 4.04654 16.6511 3.14067 16.6511 2.02327C16.6511 0.90587 15.7189 0 14.5691 0C13.5637 0 12.7252 0.692445 12.53 1.61349C10.8463 1.78897 9.53148 3.17671 9.53148 4.8585C9.53148 4.86229 9.53148 4.86514 9.53148 4.86893C7.70034 4.94387 6.02831 5.4504 4.70083 6.25003C4.20791 5.87914 3.58907 5.65813 2.91752 5.65813C1.306 5.65813 0 6.9273 0 8.49336C0 9.62973 0.687164 10.6086 1.67984 11.0611C1.77648 14.3526 5.46706 17 10.0068 17C14.5466 17 18.2421 14.3497 18.3338 11.0554C19.3187 10.6001 20 9.62404 20 8.49431C20 6.92825 18.694 5.65908 17.0825 5.65908C16.4139 5.65908 15.798 5.8782 15.306 6.24623C13.9668 5.44091 12.2762 4.93438 10.4265 4.86704C10.4265 4.86419 10.4265 4.86229 10.4265 4.85945C10.4265 3.65478 11.348 2.65501 12.5427 2.49091V2.48901ZM4.5837 10.2928C4.6325 9.26454 5.33529 8.47534 6.15227 8.47534C6.96925 8.47534 7.59395 9.30912 7.54514 10.3374C7.49634 11.3656 6.88629 11.7393 6.06833 11.7393C5.25037 11.7393 4.5349 11.321 4.5837 10.2928ZM13.8624 8.47534C14.6803 8.47534 15.3831 9.26454 15.4309 10.2928C15.4797 11.321 14.7633 11.7393 13.9463 11.7393C13.1293 11.7393 12.5183 11.3665 12.4695 10.3374C12.4207 9.30912 13.0444 8.47534 13.8624 8.47534ZM12.8902 12.6717C13.0434 12.6869 13.141 12.8415 13.0815 12.98C12.5788 14.1477 11.3919 14.9682 10.0068 14.9682C8.62177 14.9682 7.43582 14.1477 6.93216 12.98C6.87262 12.8415 6.97023 12.6869 7.12348 12.6717C8.02147 12.5835 8.99268 12.5352 10.0068 12.5352C11.021 12.5352 11.9912 12.5835 12.8902 12.6717Z\" fill=\"#FAFAFA\"\u002F>\n\u003C\u002Fsvg>\n",{"isInternal":190,"label":381,"url":382},"Reddit","https:\u002F\u002Fwww.reddit.com\u002Fr\u002FTHORChain\u002F",{"_key":384,"icon":385,"link":388},"337460c1bb1a",{"icon":386,"isCustom":29,"raw":387},"gitbook","\u003Csvg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\">\n\u003Cpath d=\"M10.0059 1.80113C12.6793 1.80113 12.9959 1.81285 14.0473 1.85974C15.0244 1.90272 15.5521 2.06681 15.9038 2.20356C16.369 2.38328 16.7051 2.60207 17.053 2.9498C17.4047 3.30143 17.6197 3.63352 17.7995 4.09846C17.9363 4.45009 18.1004 4.98144 18.1434 5.95429C18.1903 7.00918 18.2021 7.32565 18.2021 9.99414C18.2021 12.6665 18.1903 12.983 18.1434 14.034C18.1004 15.0107 17.9363 15.5382 17.7995 15.8898C17.6197 16.3548 17.4008 16.6908 17.053 17.0385C16.7012 17.3901 16.369 17.605 15.9038 17.7847C15.5521 17.9215 15.0205 18.0856 14.0473 18.1285C12.992 18.1754 12.6754 18.1871 10.0059 18.1871C7.33242 18.1871 7.01583 18.1754 5.96443 18.1285C4.9873 18.0856 4.45964 17.9215 4.10788 17.7847C3.64276 17.605 3.30662 17.3862 2.95876 17.0385C2.607 16.6869 2.39203 16.3548 2.21223 15.8898C2.07543 15.5382 1.91128 15.0068 1.86828 14.034C1.82138 12.9791 1.80965 12.6626 1.80965 9.99414C1.80965 7.32174 1.82138 7.00527 1.86828 5.95429C1.91128 4.97753 2.07543 4.45009 2.21223 4.09846C2.39203 3.63352 2.6109 3.29752 2.95876 2.9498C3.31053 2.59816 3.64276 2.38328 4.10788 2.20356C4.45964 2.06681 4.99121 1.90272 5.96443 1.85974C7.01583 1.81285 7.33242 1.80113 10.0059 1.80113ZM10.0059 0C7.28943 0 6.94938 0.011721 5.88235 0.0586052C4.81923 0.105489 4.08833 0.277398 3.45515 0.52354C2.79461 0.781403 2.23569 1.12131 1.68067 1.68002C1.12175 2.23481 0.781708 2.79351 0.523744 3.44989C0.277506 4.08674 0.105531 4.81344 0.0586281 5.87615C0.0117256 6.94667 0 7.28658 0 10.002C0 12.7173 0.0117256 13.0572 0.0586281 14.1239C0.105531 15.1866 0.277506 15.9172 0.523744 16.5501C0.781708 17.2104 1.12175 17.7691 1.68067 18.3239C2.23569 18.8787 2.79461 19.2225 3.45124 19.4765C4.08833 19.7226 4.81532 19.8945 5.87844 19.9414C6.94548 19.9883 7.28552 20 10.002 20C12.7184 20 13.0584 19.9883 14.1255 19.9414C15.1886 19.8945 15.9195 19.7226 16.5527 19.4765C17.2093 19.2225 17.7682 18.8787 18.3232 18.3239C18.8782 17.7691 19.2222 17.2104 19.4763 16.554C19.7225 15.9172 19.8945 15.1905 19.9414 14.1278C19.9883 13.0611 20 12.7212 20 10.0059C20 7.29049 19.9883 6.95058 19.9414 5.88396C19.8945 4.82125 19.7225 4.09064 19.4763 3.45771C19.23 2.79351 18.89 2.23481 18.3311 1.68002C17.776 1.12522 17.2171 0.781403 16.5605 0.527447C15.9234 0.281305 15.1964 0.109396 14.1333 0.0625122C13.0623 0.011721 12.7223 0 10.0059 0Z\" fill=\"#FAFAFA\"\u002F>\n\u003Cpath d=\"M10.0035 4.864C7.16593 4.864 4.8638 7.16523 4.8638 10.0017C4.8638 12.8382 7.16593 15.1394 10.0035 15.1394C12.8411 15.1394 15.1433 12.8382 15.1433 10.0017C15.1433 7.16523 12.8411 4.864 10.0035 4.864ZM10.0035 13.3344C8.16261 13.3344 6.66955 11.8419 6.66955 10.0017C6.66955 8.16152 8.16261 6.66904 10.0035 6.66904C11.8445 6.66904 13.3375 8.16152 13.3375 10.0017C13.3375 11.8419 11.8445 13.3344 10.0035 13.3344Z\" fill=\"#FAFAFA\"\u002F>\n\u003Cpath d=\"M16.5407 4.66338C16.5407 5.32757 16.0013 5.86283 15.3407 5.86283C14.6763 5.86283 14.1408 5.32367 14.1408 4.66338C14.1408 3.99919 14.6802 3.46392 15.3407 3.46392C16.0013 3.46392 16.5407 4.00309 16.5407 4.66338Z\" fill=\"#FAFAFA\"\u002F>\n\u003C\u002Fsvg>\n",{"isInternal":190,"label":389,"url":390},"Instagram","https:\u002F\u002Fwww.instagram.com\u002Fthorchain",{"_key":392,"icon":393,"link":395},"0471bb3eca4205722df8ca6d27567665",{"icon":386,"isCustom":29,"raw":394},"\u003Csvg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\">\n\u003Cpath d=\"M19.9996 10.0367C19.9996 4.49365 15.5225 0 9.9998 0C4.47711 0 0 4.49365 0 10.0367C0 14.7436 3.22874 18.6932 7.58425 19.778V13.104H5.52229V10.0367H7.58425V8.7151C7.58425 5.29899 9.12462 3.7156 12.4662 3.7156C13.0997 3.7156 14.1929 3.84046 14.6401 3.96491V6.74509C14.4041 6.7202 13.9941 6.70775 13.4849 6.70775C11.8454 6.70775 11.2118 7.33123 11.2118 8.95196V10.0367H14.4781L13.9169 13.104H11.2118V20C16.1633 19.3998 20 15.1683 20 10.0367H19.9996Z\" fill=\"#FAFAFA\"\u002F>\n\u003C\u002Fsvg>\n",{"isInternal":190,"label":396,"url":397},"Facebook","https:\u002F\u002Fwww.facebook.com\u002FTHORChain\u002F",{"_key":399,"icon":400,"link":402},"aa62a8f1e626",{"isCustom":29,"raw":401},"\u003Csvg width=\"20\" height=\"23\" viewBox=\"0 0 20 23\" fill=\"none\" xmlns=\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\">\n\u003Cpath d=\"M14.8236 8.25794C16.2825 9.31189 18.0697 9.93201 20 9.93201V6.17812C19.6347 6.1782 19.2703 6.1397 18.9129 6.06318V9.01802C16.9828 9.01802 15.1958 8.3979 13.7366 7.34403V15.0046C13.7366 18.8368 10.6626 21.9432 6.87093 21.9432C5.45616 21.9432 4.14119 21.511 3.04884 20.7696C4.29558 22.0579 6.03424 22.8571 7.95777 22.8571C11.7497 22.8571 14.8238 19.7507 14.8238 15.9184L14.8236 8.25794ZM16.1647 4.47073C15.4191 3.64754 14.9296 2.58372 14.8236 1.40761V0.924784H13.7935C14.0528 2.41961 14.9372 3.6967 16.1647 4.47073ZM5.44709 17.8289C5.03053 17.2769 4.80542 16.6017 4.80643 15.9074C4.80643 14.1547 6.21243 12.7336 7.94706 12.7336C8.27034 12.7335 8.59168 12.7835 8.89975 12.8823V9.04452C8.53972 8.99465 8.17636 8.97348 7.81315 8.98125V11.9684C7.50484 11.8696 7.18335 11.8194 6.85999 11.8197C5.12536 11.8197 3.71943 13.2407 3.71943 14.9936C3.71943 16.2331 4.4222 17.3062 5.44709 17.8289Z\" fill=\"#FAFAFA\"\u002F>\n\u003Cpath d=\"M13.728 7.34395C15.1873 8.39782 16.9742 9.01794 18.9043 9.01794V6.0631C17.827 5.83117 16.8732 5.26217 16.1561 4.47073C14.9286 3.69662 14.0442 2.41953 13.7849 0.924784H11.079V15.9182C11.0728 17.6661 9.66924 19.0815 7.93833 19.0815C6.91834 19.0815 6.01217 18.5901 5.43828 17.8289C4.41347 17.3062 3.7107 16.233 3.7107 14.9937C3.7107 13.2409 5.11663 11.8198 6.85126 11.8198C7.18361 11.8198 7.50394 11.8721 7.80442 11.9685V8.98132C4.07934 9.0591 1.08348 12.1352 1.08348 15.9183C1.08348 17.8068 1.82952 19.5188 3.04035 20.7697C4.13269 21.511 5.44766 21.9433 6.86243 21.9433C10.6542 21.9433 13.7281 18.8368 13.7281 15.0046L13.728 7.34395Z\" fill=\"#FAFAFA\"\u002F>\n\u003Cpath d=\"M18.9079 6.05215V5.25318C17.9363 5.25467 16.9839 4.9797 16.1596 4.4597C16.8893 5.26706 17.8501 5.82375 18.9079 6.05215ZM13.7884 0.913832C13.7637 0.770975 13.7447 0.627176 13.7315 0.482829V0H9.99534V14.9936C9.98937 16.7413 8.58584 18.1566 6.85478 18.1566C6.34656 18.1566 5.86673 18.0347 5.4418 17.818C6.01569 18.5791 6.92185 19.0704 7.94185 19.0704C9.6726 19.0704 11.0764 17.6553 11.0825 15.9073V0.913832H13.7884ZM7.80809 8.97037V8.11981C7.4959 8.07669 7.18116 8.05505 6.86602 8.05521C3.07395 8.05513 0 11.1617 0 14.9936C0 17.396 1.20812 19.5132 3.04394 20.7586C1.83311 19.5078 1.08707 17.7957 1.08707 15.9073C1.08707 12.1242 4.08286 9.04815 7.80809 8.97037Z\" fill=\"#FAFAFA\"\u002F>\n\u003C\u002Fsvg>\n",{"isInternal":190,"label":403,"url":404},"TikTok","https:\u002F\u002Fwww.tiktok.com\u002F@thorchaincontact",{"_key":406,"icon":407,"link":409},"1a3ef15ea167",{"isCustom":29,"raw":408},"\u003Csvg xmlns=\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\" viewBox=\"3.84 32.0 376.768 448.0\">\n  \u003C!-- Font Awesome Free 6.5.1 - https:\u002F\u002Ffontawesome.com\u002Flicense\u002Ffree -->\n  \u003Cpath fill=\"#ffffff\" d=\"M318.7 268.7c-.2-36.7 16.4-64.4 50-84.8-18.8-26.9-47.2-41.7-84.7-44.6-35.5-2.8-74.3 20.7-88.5 20.7-15 0-49.4-19.7-76.4-19.7C63.3 141.2 4 184.8 4 273.5q0 39.3 14.4 81.2c12.8 36.7 59 126.7 107.2 125.2 25.2-.6 43-17.9 75.8-17.9 31.8 0 48.3 17.9 76.4 17.9 48.6-.7 90.4-82.5 102.6-119.3-65.2-30.7-61.7-90-61.7-91.9zm-56.6-164.2c27.3-32.4 24.8-61.9 24-72.5-24.1 1.4-52 16.4-67.9 34.9-17.5 19.8-27.8 44.3-25.6 71.9 26.1 2 49.9-11.4 69.5-34.3z\"\u002F>\n\u003C\u002Fsvg>\n",{"isInternal":190,"label":410,"url":411},"Apple","https:\u002F\u002Fpodcasts.apple.com\u002Fus\u002Fpodcast\u002Fthorchain-weekly-live\u002Fid1719319894",{"_key":413,"icon":414,"link":416},"13eff6c10247",{"isCustom":29,"raw":415},"\u003Csvg xmlns=\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\" viewBox=\"0 0 167.5 167.5\">\n  \u003C!-- Spotify icon - circle with sound waves -->\n  \u003Cpath fill=\"#ffffff\" d=\"M83.7 0C37.5 0 0 37.5 0 83.7c0 46.3 37.5 83.7 83.7 83.7 46.3 0 83.7-37.5 83.7-83.7S130 0 83.7 0zM122 120.8c-1.4 2.5-4.6 3.2-7 1.7-19.8-12-44.5-14.7-73.7-8-2.8.5-5.6-1.2-6.2-4-.2-2.8 1.5-5.6 4-6.2 32-7.3 59.6-4.2 81.6 9.3 2.6 1.5 3.4 4.7 1.8 7.2zM132.5 98c-2 3-6 4-9 2.2-22.5-14-56.8-18-83.4-9.8-3.2 1-7-1-8-4.3s1-7 4.6-8c30.4-9 68.2-4.5 94 11 3 2 4 6 2 9zm1-23.8c-27-16-71.6-17.5-97.4-9.7-4 1.3-8.2-1-9.5-5.2-1.3-4 1-8.5 5.2-9.8 29.6-9 78.8-7.2 109.8 11.2 3.7 2.2 5 7 2.7 10.7-2 3.8-7 5-10.6 2.8z\"\u002F>\n\u003C\u002Fsvg>\n",{"isInternal":190,"label":417,"url":418},"Spotify","https:\u002F\u002Fopen.spotify.com\u002Fshow\u002F1uMxtHcV3PCvB9gf3aanjl",{"_key":420,"icon":421,"link":423},"7bc02d3469b4",{"isCustom":29,"raw":422},"\u003Csvg width=\"512\" height=\"512\" viewBox=\"27.648 27.648 456.704 456.704\" fill=\"none\" xmlns=\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\">\n\u003Cpath d=\"M332 484H237C237.091 428.549 215.073 375.348 175.82 336.181C136.61 296.99 83.4372 274.982 28 275.001V180.001C108.645 179.915 186.005 211.946 242.985 269.016C300.081 325.977 332.117 403.349 332 484Z\" fill=\"#ffffff\"\u002F>\n\u003Cpath d=\"M160.998 417.976C160.77 449.654 138.227 476.773 107.124 482.785C76.021 488.798 44.9948 472.034 32.9773 442.723C20.9598 413.412 31.2881 379.693 57.6599 362.141C84.0317 344.589 119.124 348.078 141.524 370.478C154.111 383.066 161.126 400.175 160.998 417.976Z\" fill=\"#ffffff\"\u002F>\n\u003Cpath d=\"M483.999 484H389.298C389.423 388.232 351.491 296.365 283.9 228.736C216.462 160.965 124.902 122.918 29.4476 123.001H28V28.0004H29.4476C150.03 27.8503 265.7 75.9205 350.851 161.571C436.265 246.97 484.188 363.024 483.999 484Z\" fill=\"#ffffff\"\u002F>\n\u003C\u002Fsvg>\n",{"isInternal":190,"label":424,"url":425},"RSS.com","https:\u002F\u002Frss.com\u002Fpodcasts\u002Fthorchain\u002F","Socials",{"anchor":28,"getParameters":28,"isInternal":190,"label":428,"openInNewTab":190,"theme":429,"title":28,"url":430},"Launch App","important","https:\u002F\u002Fswap.thorchain.org\u002F",{"data":432},{"favicon":433},{"alt":47,"assetId":434,"caption":28,"crop":28,"height":435,"hotspot":28,"lqip":436,"width":435},"image-b4749092773d8c5a7fb87c546187705551578dbc-300x300-svg",300,"data:image\u002Fpng;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAACXBIWXMAAAsTAAALEwEAmpwYAAAEe0lEQVR4nHXV708TdxwH8BMrg6AbMrQKYoeCQKnS6eKyzQGaLFuymP16si2L2Y8HwwdLtof+ypgmyx65+MxEGdZEFBYXnVAdblbBOaBIoaXQFq4\u002FaG2v7ZXeXe+ud70e7wUGUyp+\u002FoBXPp\u002Fvj\u002FeHIJ4sQFNEUtoix9T+Yo\u002FnRAk5YS4NOEhtcIQtCw+y5dF+cmv0jnlr7I\u002FjuuTN5srUdW0TLBpixfKhYO04rS90hQ6vcwe6ikmvo8Trim4IOIRNwRGlLDygVFD9gi5+J1pJ9zpqWXPn64z58AHpT30TLAXLMQsK1jj5lwsd8ZNFLsq6zh1k10+T6os+NzbOjGNTyIbyyCAqovdRTd\u002FD3uRd9b1UP\u002Fup2D\u002F8jnDr1B7+ym6dr30RBTTECKdfY0ueLHTEnUWTEfl5TxDrSS+WwM0hG6ooK16jrfiYHUWr4MIZyY1v0gNyo3jDWZ++8kO9ZKr7b3w7tHkj3OH8UWa40EnLRZMUlsCNPje2hybxBjWBQ7MenOZncFum8UBJ4Kw8hY9EC4ziVak+fdlqyJhaDOjQEoQt3bzaxnfl2zm20JnAEriB9KEh6MUX8SDOpmL4W+IQzEqgVAk9mQi+FAaxm++GXvwVBqmD3aVc7KxX2puJvIfScY1NdOSPseqTYJnXj4ORIC7xScwoMuS5OYhzWTxQZvGdYMderhd1\u002FLUFcKfUoTYoJkdDtv0YsWpYuqmxidF8O4fcDl8N+fATE8NkJg1+LotxJYVTwhTeZPpQw5pRuwTKHWhQTJRRbesmVg3LXs2oKOSC82e42e\u002FB\u002Fsg0TnMULBKDM0IAbzND2DF7G9VszzJwV+aCYFTOkcQqq8xpbKKyEjh\u002Fy7rgBD6MT+NHLohDzDgMiT5sm+1dCVSMynl2vkP2WWCpz42akAstiQAuCTG0pkg0Jv95VodKQ\u002FY8M9+hV2NbeeTKwDQ+ic3gusjgUVbGkMLiBO9GI9uHutwzzFzgG5Tz0\u002FMdmjWjaSoX3OL14\u002F1ICJd5BlFVgQqAm1PQm4nhK\u002F4hjNytHNBEGbNt3USeVTyusQnLns3GqRDeCoXRxrIIZTOQ5lTQagZjSgqmdBCfpazLQalD3ZkxOYzZX44SxIjYtHqU78y3swsPu8QVxb5AFD8nWThlGQFFxoCcQrsQwbecG+8yVuxJWpaNbJA62J2Zi52GjKmJIOwpbd4o15I\u002FlrSuc9KykaRxJMaghxdgFlI4zcbweYJEc3wMhvgAttN3c29ZWvh6aVOLIXVOuxgOtP65scTJ8smE82BgVv4+zuAITeODSBCvhN3Y9mgMWxbT5iXa8iQo1Qpd4\u002FXpy62Pw2EhvnwFL0zEdu9wxU81+hLWff4IW+f3q2V+z1PxtQAmetVqpputSV0bqhOuturlLuPj+FosnQ8FVR5ar\u002FOEW0rc\u002Fs7iKdJR4nNRGwLj\u002FP8BG73P6+IWaj5gq5I3Oqu537+u536r0yEHW7YC7KR27YS3qZicOlbidXWXBuykNmRjysKDTHn4HlkR\u002F6tbR\u002FcerZo1N1VST6+AfwFKhhGPaiwFVAAAAABJRU5ErkJggg==",{"data":438,"sourceMap":-1},{"author":439,"date":447,"globalSeo":448,"image":462,"readingTimeLabelTemplate":466,"related":467,"seo":587,"seoImage":593,"slices":594,"tags":4088,"title":591},{"avatar":440,"name":445,"slug":446},{"alt":441,"assetId":442,"caption":28,"crop":28,"height":443,"hotspot":28,"lqip":444,"width":443},"Nine Realms logo","image-9b2d5f33e9cf6e171a4c3613b9d863601e8c4f8d-1000x1000-jpg",1000,"data:image\u002Fjpeg;base64,\u002F9j\u002F2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj\u002F2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj\u002FwAARCAAUABQDASIAAhEBAxEB\u002F8QAGQABAQEAAwAAAAAAAAAAAAAAAAUDAQYI\u002F8QAJBAAAgIBAwQCAwAAAAAAAAAAAQIDBAAFERIhIjFBBhMUcYH\u002FxAAXAQADAQAAAAAAAAAAAAAAAAACAwQB\u002F8QAGxEAAgMBAQEAAAAAAAAAAAAAAQIAAyExQVH\u002F2gAMAwEAAhEDEQA\u002FAPQ9+3eu6w1HTJkiSJA0khXlsT6ziWlrNSrLJHfWZx3bGPzmejTQ1PkGowSng0jAx8um4y9esw1qskk7qECnyfOWOxrIRRmedgjdmelXVuafDMzLzZe4A+D7xkn4xAj6XzMbgNIxH63xirUVXIE0HJQ12jXt1CZk7lO6sOhH9yZX0at+ZX+xppQOvGR+Q3xjHUsRUd+wT2dlVQoAUAAehjGMihz\u002F2Q==","Nine Realms","nine-realms","2023-08-24",{"description":449,"noFollow":190,"noIndex":190,"ogImage":450,"ogLocale":28,"ogSiteName":208,"ogTitle":449,"ogType":456,"structuredContent":28,"title":208,"titleTemplate":457,"twitterCard":458,"twitterCreator":28,"twitterDescription":459,"twitterImage":460,"twitterSite":461,"twitterTitle":449},"The World's Leading Bitcoin DEX",{"alt":451,"height":452,"type":453,"url":454,"width":455},"THORChain - The World's Leading Bitcoin DEX",630,"image\u002Fpng","https:\u002F\u002Fcdn.sanity.io\u002Fimages\u002F355nlzcp\u002Fproduction\u002Fd7b83200f512f7d535d5ac7bc7fcb38be7a63ce9-1200x630.png",1200,"website","%s | THORChain","summary_large_image","Cross-chain liquidity protocol supporting BTC, ETH, Monero and more.",{"alt":28,"height":452,"type":453,"url":454,"width":455},"@THORChain",{"alt":47,"assetId":463,"caption":28,"crop":28,"height":464,"hotspot":28,"lqip":465,"width":455},"image-e4ccfdf6d14df263f2a9839255eead9315c6dc22-1200x629-png",629,"data:image\u002Fpng;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAKCAYAAAC0VX7mAAAACXBIWXMAAAsTAAALEwEAmpwYAAAC5UlEQVR4nCXMaU\u002FTBwDA4f8LLQgUSjkqtFmD4gHDoAhCWQHTC2m10AkuUEsPCoVWqjCgdIONDYEoalSighC1keE2WBAiBnSsRjDGDLItEY1ZMuOxvdkyk32BnyF7PsAjbNh7lI15NkQFdiJUTqLUdcSUNBCraSJe7yPR0Eyy3o9M50em9ZOsaSZxvxep2kOcqp6YfBfRuQ4icx2I1I0IG3NtiPbVElHoZFNxPTGaRuL0PqRGP0nmFjZb2ki1dCC3dKAo70BubmOzqYUkgx+pxoukqAFxQR1R+S4ii9bD\u002FFpEKsf\u002Fmc6LxHScRMunyD7pRG7rQunsId3dy\u002Fb6k2yr62WroweltRt5VScycysJpceQlDQiVjcQXdKEICqwEal2Eq31IDEfJ8XehdLXS3rrADs7B8nuuoC2b4xDgyHKBq6h+\u002FoqhcEhdnj6SK3+jGRLK9IDzUi0XsQaL0KkqoaoYjuxpR6SawKkB86SNXCJnPPD5A+PoR0dx31rjuBsmODMT7RNLuAa+4GSnitk+Pr5wLaetpBQdgyJphEhqqga8X4b8UYPKfYg2z4\u002Fz67Bq+QNh1Df\u002FJay72dwz4UJhJ\u002FQ\u002FeAJwYUlfFPz1Ix+h6F\u002FhKzmkyis7cjMfhL1XoRonZVYvY0E83oYYEv7aTIHRsi5MkHhxCyG2UWOLD7GubyKZ3kF94+PqJ25T803tzENhdgTOEWaqxN5ZSsyox8hpqyWOJODpMNNKNxB0oNnyDp3jbzQNMV3wpQurVC++pTDvz2ncnUNy\u002FIKprth9BO3+ejidbK7zrDd+yVKa4BUYxOC+KCT+Ao3Mqsfpe8Ldnx1kd0jtyicvodueYWDa7\u002Fz8cu3VL3+i8o\u002F3lDx9AXGpZ\u002FRTM+jGhlnT98QGe2nSbMHUBxwIIjNTqRVHlIcLaSd6CGz\u002FzJ7Q1MULTyk9Jc1yl\u002F9yZF\u002F3lH97j+q\u002F\u002F6XqldvMf\u002F6DMPCQ9Q3Jsk9O8qH3RfY4upAYbTxHl9yrSwd7prRAAAAAElFTkSuQmCC","{{minute}} min read",{"items":468,"title":586},[469,492,501,510,523,532,541,550,559,568],{"author":470,"date":479,"image":480,"score":485,"slug":486,"tags":487,"title":491},{"avatar":471,"name":477,"slug":478},{"alt":472,"assetId":473,"caption":28,"crop":28,"height":474,"hotspot":28,"lqip":475,"width":476},"D5 Sammy profile picture","image-86c3a64859610d85d75ede74c97432176ef1328b-444x500-svg",500,"data:image\u002Fpng;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAXCAYAAAALHW+jAAAACXBIWXMAAAsTAAALEwEAmpwYAAAGLUlEQVR4nC2VC28U1xWA9we2jdoIqagpjZqWSg4RImpRShKUuARwEhsMxgpgYoMfGLADtoOx1xiv7RgbGxu\u002FH+vZmZ33zM7O+87c995q0\u002F6A8+nok853Co1GI2g0uCIEl4XggHPMBfMhw1sJAWMmTnrKOLpeQcFlHQbfqDDsLKPksUThW5dRK+McsQbneaPRqArBdwpC8IoQXG80WMhZAimWEppP2TjqdFDUVSP5gsXwtk3hikfhik2yJZWkE1WcPjVINmtRdBRzliIheCyEsAtCCF0IFnEWAIo2fJyMGijqUmDYVkXxgEHgW4fANZOAcZ2ASY1kswoBRZ3AVZvkSzoBL0yGtkLOUiyEwAXBGeQ0yAhc9lDyxEBxj5rWLuk166ri2P1SHP6koei2ltf\u002FbcHgGx3F96oYTBuM6DYjuoPTcR3FD0yKduMGh6wgeEYo2vRx8rAJ0\u002FPgslU3WtztnbPVV2u3jl9v9yvrW19o+zt\u002Ftg3lUyOuteko7jcoXNMoXDFxMqCh6KaKklGHESMrMKxkOHlow7BTg2GHBv2vTEc7ay2vX5DHl4alB8UflVsjLfL9sT9Kk6VTytrGJ4audalpcF9DYbeB4n4NJwMGin80CVxyCjRfdFB03URhh4biHhlFN\u002FWjo8+ssVKrurpfMg+qC86brW5tbuXC0dDzPx13Dp+szry+oNTMVgNGXSpOR6skHTVxMmzgpF8qwOh+GSVDMgETCgEjMop7jPWddv3ORKe5q2xHjIYwA7uRJN9VHk61yN8Nfqy8XL4o+267jOIHFZyOVQlctSh66+LotlLIgyuHGIxJJHtZIeBnFYMpdX3vSeWH52P6tqyDDBF6bOjxyPyo2j3eKU8sXNEU+ZKWBZ0VFPdVcPpcpVgyGZF8FPWahcw7X2luSOGCStC6QfJf5H15stw3u1iZWtdqi\u002Fu1oKd4YFwbm6tML\u002FdpauXTemz\u002Fw8\u002FrX5pN5zh5ZFIs1RhRIhTftwpZ\u002FSuN5vMGJ5KDs5KFkgFV1oaUe9M\u002FS\u002F\u002FsXVb\u002F3r2qt9xervRMlyqHxzesyDyVAOcPALinAxi2OySfdzitRYwoAMX37AIKr5sUvvNovuhBv93N65\u002FbrnnFevRqUP\u002FwxkvrZPusdfbulNo1MSe\u002FXHtcfbdz3pHLH4SR85mHkkGT5L9YFFfqFO3HMLxpF2DwrUnAiIOCG27unXOz2hkPeJe9lb1XXsf4Vu3p8ra7dvTOXjmUjKm1jWrfi+vy0NQ59c1mW9W1bsp5cNdoniSF75w86FAKuf+5CcN2EwaXzNz7xAPOX2IU\u002FKe+J5e8oYU9e0+1fUqTDKIkNdw1t7TaavY8+6vWOfyh\u002FGz2dKUsdVTTeFEn+RsZRr2HBRi0GSjus6B\u002F0c3cj8Ks9nGIwu\u002FtA+mB\u002Fmj+VWVTcQyE85QRKYHRnaCunUq3N38Xj7z4rXnr8QllYuGipBvDcp48r5CspBRQ2KHibNJG4Q9+HlwLcPrUJqBYNcynUvHtzOH89rrkefMuirv9zP1bAuzf4Ng8kepKi7ux87W5vj+sO25RQ8kzg+LDqICi2wrJZjSKNmuMyDHFxx4BJSX0R6WlrSH54UybenhwJgDOBymwT6Sp9R4C9skE+l97ECwGWWaEEGwYBBQNTq28QOFKDYNJg8I3BsUHPgZTNRT1VrOoV945uKr+NNNiHOx\u002FFGS1M1Hmng5S6\u002FcQ2O9BGLTGDJdzTmsJhUs6zTfcZsIKnMeIwK2IpGMmjO4YuX\u002FVgdGARfIlIwpeGJr+SAu9JxqO75l5\u002FXw9td+HwH4\u002Fg+F3ESNlwMiRh8G0ybCSCsF4s9gNzgGhcDdG8aCJwlsGzuZqjLoRZ37MmgrSSQsGV53cOxdk9X+lMGgLCXjmU7RTJ\u002Fm8TuBrh7MQCSFEs9iJEJxynjOKlZRkJQenRZuiLY\u002FivQCD6RoKu+oo+jbAyaBP4GrM8FHCcBO2oBMwYzKipk3E\u002F4FcEoLX\u002FwclnNN6TtFugLOi07zNZidRdNciYMyncCVk+DCi+MCjcFnHYM5k+Dhu8JwJIagQIm0Cm9+uLISIhBCNXxWwjDJSTXFatPLwWjn3W49RcEmDwWULBt83yy6TbE5jREs4h+zXMSGaDg\u002F\u002FC4XRKbSqSG5fAAAAAElFTkSuQmCC",444,"D5 Sammy","d5sammy","2025-05-29",{"alt":47,"assetId":481,"caption":28,"crop":28,"height":482,"hotspot":28,"lqip":483,"width":484},"image-140ca2a10bbcbb678f9ee56d0a7b026494d9749e-1600x900-png",900,"data:image\u002Fpng;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAALCAYAAAB\u002FCa1DAAAACXBIWXMAAAsTAAALEwEAmpwYAAABnklEQVR4nI2T22sTQRSH8\u002F\u002F6XlAsvlVQRDTiW4S6Eiy2BYuotZRelGgSsGkamxjbYmPNNm2zYS\u002FZ2dm5fNLNm11IzvPMN79zzjcFcsuClRh9jpYNVFJBiS+opIZRJ2BCQOfeLOTzJFadIqN1Am8R78ohHDkk4SpK7GDSDthg8vB0oMHqC1S8jn\u002F5mKPjB+y3H9Fq3+Psz0PGvoOKP2JUD1A3oIWbrSZZAhm+ZtB\u002FSqPj8LW5zGZ1gUbrNv5VERWvodMO1sbTgdaE6KRBGq3iui\u002FZ3f\u002FAu2qFjVqJn907RN4zlNicALNZTgUG6OQ7afiKc\u002FcJn+orlLerbNSX+NGez1KLaAuTdmcHKvGNNHiON1igflhmp7lLs+uwdzBHq3Of4fA9Oj0GK2YBjtHyABUtE41KnJwucvjrBYO\u002Fd3F7t+j1ioxG22jVn2UpZIeut6yTGkn0Fu+yjNsvElzMEQ\u002Fnif0VpGhhjZ8Z8X\u002Fle4jEahct95DjLUSwROKXSKM3KFHBqLPM1Rk9nLSOTbHGw6TtTGYlPme\u002FxqjfYKLcdNfAf72YQH8xPXBDAAAAAElFTkSuQmCC",1600,1,"thorchain-bare-metal-validator-migration-to-cosmo-operator",[488],{"name":489,"slug":490},"Node Setup","node-setup","THORChain Bare-Metal Validator  —  Migration to Cosmo-Operator",{"author":493,"date":495,"image":496,"score":485,"slug":497,"tags":498,"title":500},{"avatar":494,"name":477,"slug":478},{"alt":472,"assetId":473,"caption":28,"crop":28,"height":474,"hotspot":28,"lqip":475,"width":476},"2023-11-29",{"alt":47,"assetId":481,"caption":28,"crop":28,"height":482,"hotspot":28,"lqip":483,"width":484},"thorchain-bare-metal-validator-copy-chain-data",[499],{"name":489,"slug":490},"THORChain Bare-Metal Validator  —  Copy Chain Data",{"author":502,"date":504,"image":505,"score":485,"slug":506,"tags":507,"title":509},{"avatar":503,"name":477,"slug":478},{"alt":472,"assetId":473,"caption":28,"crop":28,"height":474,"hotspot":28,"lqip":475,"width":476},"2023-09-08",{"alt":47,"assetId":481,"caption":28,"crop":28,"height":482,"hotspot":28,"lqip":483,"width":484},"thorchain-bare-metal-validator-wireguard-monitoring",[508],{"name":489,"slug":490},"THORChain Bare-Metal Validator  —  WireGuard Monitoring",{"author":511,"date":513,"image":514,"score":485,"slug":519,"tags":520,"title":522},{"avatar":512,"name":445,"slug":446},{"alt":441,"assetId":442,"caption":28,"crop":28,"height":443,"hotspot":28,"lqip":444,"width":443},"2023-06-21",{"alt":47,"assetId":515,"caption":28,"crop":28,"height":516,"hotspot":28,"lqip":517,"width":518},"image-bdc46548209223c5a530ecfe6efc598f8b58de72-800x418-png",418,"data:image\u002Fpng;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAKCAYAAAC0VX7mAAAACXBIWXMAAAsTAAALEwEAmpwYAAACCklEQVR4nGWRWVMaQRRG5ycw9sKmIBJQ2ZGdYYRhMuybg7glMTFVWcr\u002F\u002F35SDKlUGR\u002FOS\u002Ff9zr232wglcrwjmUOdFYhlSsQvypw0LaKdITLXRp7XkedXmMkCoZPcO4xQIs\u002F\u002FmKki0VyN07pFqtkjbTkk7Bnx9pRY1wvk4rJJKFl8lzXMZJE3pMqIbINI7ZqYMyfmrojaE6L2nITrczL2OR5viLZdRLb2NpssYpinZf6RqiKyLcIVl3BvhvI2qPEW6S7RzpL4aEt8dsfxfEvC8dCFFuZZ9W++FGAEB3vSV5gfGojLHpH6nHj\u002Fhqjroz0fPbtFT7dob0NksiM+2xGzRqhCFzPTwkzXDo6zKsZRuk5ApsXRhYXI9dHVMcnehtPBjrh7T2T5Gb16RI9WhIc3RJ1bdH2CyPcRF71DNt0IPIbItBDZdnAhcwNk0UVVxsSaS467PrH+A+H5V9TiC8rx0d0Vur1GVieI4kdE3gm2Osp2ArEh9lNd2si8gyx5yMoEWVugGmt0y0fb96jZC2rxHdV\u002FQLV8VGMT1MjKFFkaIQv7X7cR5xbGfsV9l0BWnSEbK2Rni+rdoa4f0R+fUetf6JvfKO8byn5CWfdBjWyskVdzZHmEyA+D5zJkwUUW95NNg6lU5xY1eEJ7z+jJC3rxE719Jbx7RS9\u002FoLyXQ5PBJ6R1h2puDtK9ozDkD\u002FMGMomHuU1HAAAAAElFTkSuQmCC",800,"bare-metal-thornode-comprehensive-guide",[521],{"name":489,"slug":490},"Bare-Metal THORNode: Comprehensive Guide",{"author":524,"date":526,"image":527,"score":485,"slug":528,"tags":529,"title":531},{"avatar":525,"name":477,"slug":478},{"alt":472,"assetId":473,"caption":28,"crop":28,"height":474,"hotspot":28,"lqip":475,"width":476},"2023-06-14",{"alt":47,"assetId":481,"caption":28,"crop":28,"height":482,"hotspot":28,"lqip":483,"width":484},"thorchain-validators-re-creating-from-backups",[530],{"name":489,"slug":490},"THORChain Validators  —  Re-creating From Backups",{"author":533,"date":535,"image":536,"score":485,"slug":537,"tags":538,"title":540},{"avatar":534,"name":477,"slug":478},{"alt":472,"assetId":473,"caption":28,"crop":28,"height":474,"hotspot":28,"lqip":475,"width":476},"2023-04-19",{"alt":47,"assetId":481,"caption":28,"crop":28,"height":482,"hotspot":28,"lqip":483,"width":484},"thorchain-bare-metal-validator-part-3-mayas-chocolate",[539],{"name":489,"slug":490},"THORChain Bare-Metal Validator  —  Part 3: Maya’s Chocolate",{"author":542,"date":544,"image":545,"score":485,"slug":546,"tags":547,"title":549},{"avatar":543,"name":477,"slug":478},{"alt":472,"assetId":473,"caption":28,"crop":28,"height":474,"hotspot":28,"lqip":475,"width":476},"2023-04-03",{"alt":47,"assetId":481,"caption":28,"crop":28,"height":482,"hotspot":28,"lqip":483,"width":484},"thorchain-bare-metal-validator-part-2-multi-node-using-microk8s",[548],{"name":489,"slug":490},"THORChain Bare-Metal Validator  —  Part 2: Multi-Node Using MicroK8s",{"author":551,"date":553,"image":554,"score":485,"slug":555,"tags":556,"title":558},{"avatar":552,"name":477,"slug":478},{"alt":472,"assetId":473,"caption":28,"crop":28,"height":474,"hotspot":28,"lqip":475,"width":476},"2023-03-07",{"alt":47,"assetId":481,"caption":28,"crop":28,"height":482,"hotspot":28,"lqip":483,"width":484},"thorchain-validator-migration-the-exhaustive-guide",[557],{"name":489,"slug":490},"THORChain Validator Migration — The Exhaustive Guide",{"author":560,"date":562,"image":563,"score":485,"slug":564,"tags":565,"title":567},{"avatar":561,"name":477,"slug":478},{"alt":472,"assetId":473,"caption":28,"crop":28,"height":474,"hotspot":28,"lqip":475,"width":476},"2023-02-08",{"alt":47,"assetId":481,"caption":28,"crop":28,"height":482,"hotspot":28,"lqip":483,"width":484},"thorchain-bare-metal-validator-part-1-hardware",[566],{"name":489,"slug":490},"THORChain Bare-Metal Validator  —  Part 1: Hardware",{"author":569,"date":577,"image":578,"score":485,"slug":582,"tags":583,"title":585},{"avatar":570,"name":575,"slug":576},{"alt":571,"assetId":572,"caption":28,"crop":28,"height":573,"hotspot":28,"lqip":574,"width":573},"Scorch profile picture","image-f6e7a9278bb46278491e33ade1d3176ea8f9d75e-400x400-jpg",400,"data:image\u002Fjpeg;base64,\u002F9j\u002F2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj\u002F2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj\u002FwAARCAAUABQDASIAAhEBAxEB\u002F8QAGQABAAMBAQAAAAAAAAAAAAAAAAUHCAQG\u002F8QAJRAAAQMDBAEFAQAAAAAAAAAAAgEDBAAFBgcREiEiJDEyYXFR\u002F8QAFwEAAwEAAAAAAAAAAAAAAAAAAgMFBP\u002FEAB4RAAICAgIDAAAAAAAAAAAAAAECAAMEERIhEzEy\u002F9oADAMBAAIRAxEAPwDm1j1WvF\u002Fy97GcYlFFhsLwcdbXyMv3+V4YpWX4QqXSPdZHIFQlQ3OQmn2lRdwizMP1YuLE+Op7ukXknyFfZans+yCO5jzzMdkHDcH5Ii+H1SbrXS0Io6g4uJTdR5bPqaW0x1RgZTh8O5TDFmUu7bob+xJtvSqR0R0\u002Fu07BGZac2geeMwFet067pWjjIVmblI5WtdgejL21Vwyy3uCU+bF9Y0OwvAvEtv2qwwrDLRe7w21cm3Hmm+kBSTZf3rulKPgrAEjuDmWOl5RToHXU0VAhx4ENqNEaBphsUEAFNkRKUpSpfUAAAT\u002F\u002F2Q==","Scorch","scorch","2022-12-06",{"alt":47,"assetId":579,"caption":28,"crop":28,"height":580,"hotspot":28,"lqip":581,"width":518},"image-8463ea383462481ff4836ddb470dac4c53ebc262-800x354-png",354,"data:image\u002Fpng;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAJCAYAAAAywQxIAAAACXBIWXMAAAsTAAALEwEAmpwYAAACJ0lEQVR4nD2OWVMaYRBFv0FgBIEZEOMyGEFAYGQTFJFdFllk0bAlJhJJoolL\u002Fv\u002FjSTmmfDjVXbdv326xcZjGp6cJRNPsRZJ8DMXZDsTwakE82wHcO0FULYSqhd\u002FwhXH7XvuQMXNv7+N5J4BQD9JshJNshRJs7cfY9MdY9+uoezrKno4zmGYtdoai51GjxyjhI1yBBK6PMVTfwf9DB6i7EZTdKGI1VceRqOCN59mOpPgQTrKu51ESFeypOvJJD1d1jHY+QMtV8OrHqP64EebeCaHuHuAKprDH8qwelhGmyhy5OsdTnaDlL9g5OWezeo2n8QVb\u002FQbL+Q1qbYJW6rCTKeCNHOHx63h8ITxayPjYkWtjLY9ZKU8RonuPqfeA3HvA2bxFqU1QWjeo3QX2yx9YWgvWsi3ckQzuUBpX9BRnsoKSKKEmijgKfWy9Jeb+A1L3F0IMnxGjF8ToL6bhC+bePbbaFLXQwdGYYekskYvXOKM5lP0k9kwTa\u002FMWuX2HvbvAMfqJ7eoP5tEz0vAFIfqPGAyeEMMXpP6jEeDST1nLNjG3vrNyscSW6+LQz1gtjJB6D0iDJyyD3zgub3E25qxeLDENnhGiscCgeYdoLY1qLlxhi5eRM22k2lekxgJz4Ro528FcGr\u002F7TfVvyIURzmwHZ3GK9XVfFGeI4hRRmiHKn5FKM1ZOB1iybVbyV296aYZUHGM6+4RkeOeG19Dz11hzI+xnE6yVGf8AdFMSgx95FAsAAAAASUVORK5CYII=","build-your-own-thorchain-validator-node-step-by-step-guide",[584],{"name":489,"slug":490},"Build Your Own THORChain Validator Node  —  Step by Step Guide","Related articles",{"description":588,"noFollow":28,"noIndex":28,"ogImage":589,"ogLocale":28,"ogSiteName":28,"ogTitle":591,"ogType":32,"structuredContent":28,"title":591,"titleTemplate":28,"twitterCard":28,"twitterCreator":28,"twitterDescription":588,"twitterImage":592,"twitterSite":28,"twitterTitle":591},"The ‘paint by numbers’ n00b guide to creating a bare-metal MAYANode. For members of the Maya Protocol community, it covers hardware through to troubleshooting.",{"alt":28,"height":464,"type":453,"url":590,"width":455},"https:\u002F\u002Fcdn.sanity.io\u002Fimages\u002F355nlzcp\u002Fproduction\u002Fe4ccfdf6d14df263f2a9839255eead9315c6dc22-1200x629.png","Bare-Metal MAYANode: Comprehensive Guide",{"alt":28,"height":464,"type":453,"url":590,"width":455},{"alt":28,"height":464,"type":453,"url":590,"width":455},[595,4067],{"_key":596,"_type":597,"backgroundColor":28,"disabled":190,"sliceId":28,"text":598,"withMargins":29},"7c53ce8c-8578-479d-8ba5-b26da0029fdb","wysiwygSlice",[599,619,623,631,648,656,664,673,681,694,706,718,730,742,754,766,778,790,796,804,812,820,829,837,845,853,861,869,877,885,893,901,909,917,929,937,945,953,961,969,977,997,1005,1013,1042,1050,1074,1083,1111,1119,1127,1135,1143,1151,1159,1167,1175,1183,1191,1197,1205,1213,1229,1237,1245,1253,1261,1269,1277,1285,1293,1301,1309,1317,1325,1333,1341,1349,1357,1365,1373,1381,1389,1397,1417,1425,1433,1453,1461,1469,1477,1485,1493,1501,1509,1517,1525,1533,1545,1589,1594,1602,1610,1618,1626,1634,1642,1650,1658,1666,1674,1682,1690,1702,1710,1718,1726,1734,1742,1750,1758,1766,1774,1782,1790,1810,1818,1826,1834,1842,1849,1857,1865,1873,1881,1889,1900,1908,1916,1924,1932,1940,1948,1956,1992,2000,2008,2016,2024,2032,2040,2048,2056,2064,2072,2080,2088,2096,2104,2120,2128,2136,2144,2152,2160,2168,2176,2184,2192,2200,2208,2216,2228,2236,2247,2267,2295,2303,2311,2330,2338,2346,2354,2362,2370,2378,2386,2394,2402,2410,2418,2426,2434,2442,2449,2457,2465,2473,2481,2489,2497,2516,2524,2532,2540,2548,2556,2563,2571,2579,2587,2594,2602,2610,2618,2625,2632,2640,2647,2655,2663,2671,2678,2685,2693,2701,2709,2717,2725,2733,2741,2749,2757,2765,2777,2785,2793,2801,2809,2817,2825,2833,2841,2852,2860,2868,2876,2884,2892,2900,2908,2916,2924,2959,2967,2975,2983,2991,3003,3011,3019,3030,3038,3046,3054,3062,3070,3078,3086,3094,3102,3110,3118,3126,3134,3142,3150,3158,3166,3174,3181,3189,3197,3205,3213,3221,3229,3249,3277,3285,3293,3301,3309,3317,3325,3333,3341,3349,3357,3365,3373,3381,3389,3397,3405,3413,3421,3429,3437,3445,3452,3459,3466,3473,3481,3504,3512,3520,3528,3536,3544,3567,3575,3582,3589,3609,3617,3632,3640,3648,3656,3664,3672,3680,3688,3696,3703,3711,3719,3727,3735,3743,3751,3769,3777,3788,3796,3804,3812,3831,3839,3847,3855,3863,3871,3879,3887,3906,3914,3922,3930,3938,3946,3954,3962,3970,3978,3986,3994,4025,4033,4041,4059],{"_key":600,"_type":8,"children":601,"markDefs":615,"style":33},"0db992391f90",[602,606,611],{"_key":603,"_type":12,"marks":604,"text":605},"cb9526b5347e",[],"This instructional guide aims to serve as a 'paint by numbers' approach for members of the Maya Protocol community who are wishing to run a Bare-Metal (BM) MAYANode (node). This guide will include every step from hardware design through to troubleshooting of an active node (and everything in between). ",{"_key":607,"_type":12,"marks":608,"text":610},"d85df895d0b1",[609],"b2b3c93b57","Maya Protocol Docs",{"_key":612,"_type":12,"marks":613,"text":614},"df1eb82e2791",[]," does a good job at explaining the basics about running a node and this guide is essentially a carbon copy of the THORNode Bare-Metal Guide:",[616],{"_key":609,"_type":26,"link":617},{"anchor":28,"getParameters":28,"isInternal":190,"openInNewTab":28,"title":28,"url":618},"https:\u002F\u002Fdocs.mayaprotocol.com\u002Fintroduction\u002Freadme?ref=blog.thorchain.org",{"_type":620,"alt":47,"assetId":621,"caption":28,"crop":28,"height":474,"hotspot":28,"lqip":622,"markDefs":28,"width":474},"image","image-ca33fd7f549b983e80bcf75b1c7fcbee01d5e4c4-500x500-png","data:image\u002Fpng;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAIAAAAC64paAAAACXBIWXMAAAsTAAALEwEAmpwYAAACjUlEQVR4nI3U3UtTYRwHcC9y0txKlzadTqdb05Yyh1oUQWghgURdWBdddBlBEEF0KfgnBLWbXihD10UGSSXkLrSYkq42Nz26l7NztnPOtnPmed\u002FOPHNnEFsFy9yxP+DD83u+z+\u002F7VOnXJbVPVK7z6k2qLohrQmgDCGnhkC4GtGJefcJtIJaN5KKZdnZzc5b0bG92xiq+OZ2fulhwVKm8Us2aWOPnlQClDuBHQ2g9CDXAQW1soxnztCRW24ilDnLBSM+f4D51pd9bsm97RYctPzlYeFlV7ZGqvUV8GKBUAfxICK0DoWNw8Hhso6mE9cRSWwl3cXPdf7A1\u002F8pWeCGHtZhHl1jtJJb7qaVhznWWd55Kzx6MNSXcEfedIXw3GWA8E3oorI+kFw\u002FGGhDqjIUvJMDbFGxPJz+L1IyYuJvxDvDzB4ytDqE6KHotiT7jqR85AZHE77vcRCZ4jv1iLgusIm6G4Os49kHgtwt5UMo+EqJDzDcT4yxPW27skwh4j4x\u002FzLLPheQovWYiF43MX09llU07cD4RnmDj99lI3\u002FZK+\u002Fbed7ZWwvUgZIiGb6WQGYGeFPAbjN9Cfi1iVh5vFXFrJDqWxN5lOFzajUo7T7PoZWbVTMveWQlQtQG8KYxdwZJTPAfnc3Ep587xTwRklHWbGadpX3zIKypKJzcGiREkZWc4147g3OEfp\u002FE7TPgS5emhZMdW+Hk1QNki5AOCsbPsOE2MpeBBfMOEu9sIVzu50CkTmMLP12\u002FSAxHyKpoawrAuBGxBgKbibq\u002FoCZfhn1ZZ94ytBihtkNCFMU2kuNuNZa2qiBVladduFTesvJI6eazySorKfd4X94iOvl+fQYtfUvp+p\u002F3feLo\u002F\u002F3q4MP0T5vfy\u002FL+n\u002FDQAAAAASUVORK5CYII=",{"_key":624,"_type":8,"children":625,"markDefs":630,"style":33},"2708ec35a0b3",[626],{"_key":627,"_type":12,"marks":628,"text":629},"992b15775001",[],"This comprehensive guide does not replace the node operator's onus to have a baseline knowledge in Linux, CLI, Kubernetes, DevOps and other concepts that are required.",[],{"_key":632,"_type":8,"children":633,"markDefs":647,"style":33},"c6d8eaf1b9ae",[634,638,643],{"_key":635,"_type":12,"marks":636,"text":637},"5ad50cb5e697",[],"It must be said, running a Maya Protocol MAYANode is no trivial endeavour. The stakes are ",{"_key":639,"_type":12,"marks":640,"text":642},"27c0fc4977c5",[641],"strong","VERY",{"_key":644,"_type":12,"marks":645,"text":646},"f4e2a9e988b2",[]," high and there is little to no recourse for catastrophic errors, mistakes, hacks, or vulnerabilities.",[],{"_key":649,"_type":8,"children":650,"markDefs":655,"style":33},"e094813daa27",[651],{"_key":652,"_type":12,"marks":653,"text":654},"30497d098118",[],"As always, running commands that you found on the internet is not ideal… you should proceed with skepticism and caution. Fact check, confirm, verify, independently validate and ultimately accept responsibility for your own node. THORChain is not liable for mistakes in the guide, or mistakes you make… it is your node and you are 100% responsible for it!",[],{"_key":657,"_type":8,"children":658,"markDefs":663,"style":33},"a069394623e1",[659],{"_key":660,"_type":12,"marks":661,"text":662},"2811cccc4493",[],"This guide is a living document that is periodically kept up to date by various node operator feedback. If you become a node operator, and have ideas on how the guide can be improved, pay it forward and let the community know.",[],{"_key":665,"_type":8,"children":666,"markDefs":671,"style":672},"06d91f69cf56",[667],{"_key":668,"_type":12,"marks":669,"text":670},"386439520dcb",[],"Hardware",[],"h2",{"_key":674,"_type":8,"children":675,"markDefs":680,"style":33},"ab4b8197f6d3",[676],{"_key":677,"_type":12,"marks":678,"text":679},"4414d6878acf",[],"This is a list of the components that we elected to use for our BM node:",[],{"_key":682,"_type":8,"children":683,"level":485,"listItem":692,"markDefs":693,"style":33},"d6d7c6708e06",[684,688],{"_key":685,"_type":12,"marks":686,"text":687},"938f737fda4e",[641],"CPU",{"_key":689,"_type":12,"marks":690,"text":691},"37b4ea0a8f34",[],": AMD Ryzen 9 7950X (16core\u002F32thread)","bullet",[],{"_key":695,"_type":8,"children":696,"level":485,"listItem":692,"markDefs":705,"style":33},"e997ba0245ab",[697,701],{"_key":698,"_type":12,"marks":699,"text":700},"cdd81f514ab7",[641],"CPU Cooler:",{"_key":702,"_type":12,"marks":703,"text":704},"78e732873554",[]," Deepcool AG620 Multi Socket CPU Cooler",[],{"_key":707,"_type":8,"children":708,"level":485,"listItem":692,"markDefs":717,"style":33},"ed7738797fb4",[709,713],{"_key":710,"_type":12,"marks":711,"text":712},"9dc6a7f01ac6",[641],"Motherboard:",{"_key":714,"_type":12,"marks":715,"text":716},"ab450660f8ec",[]," Gigabyte B650 Gaming X AX AM5 ATX",[],{"_key":719,"_type":8,"children":720,"level":485,"listItem":692,"markDefs":729,"style":33},"70ff99584b51",[721,725],{"_key":722,"_type":12,"marks":723,"text":724},"cd7989303f6c",[641],"Memory:",{"_key":726,"_type":12,"marks":727,"text":728},"d07679e354e7",[]," 2 x Corsair 64GB (2x32GB) CMK64GX5M2B5600Z40 Vengeance CL40 x2 (128GB Memory)",[],{"_key":731,"_type":8,"children":732,"level":485,"listItem":692,"markDefs":741,"style":33},"c65aa9b75346",[733,737],{"_key":734,"_type":12,"marks":735,"text":736},"30141fceacaa",[641],"Storage:",{"_key":738,"_type":12,"marks":739,"text":740},"c4c29b98d616",[]," 2 x Silicon Power 4TB XS70 PCIe Gen4 M.2 NVMe SSD (8TB NVMe SSD Storage). You can future-proof it with 4 x 4TB but adding more storage later is easy (assuming your Motherboard has slots for it)\n+\n1 x Silicon Power 500GB SATA\u002FM.2 SSD (Boot\u002FOS Drive)",[],{"_key":743,"_type":8,"children":744,"level":485,"listItem":692,"markDefs":753,"style":33},"0ff047c94371",[745,749],{"_key":746,"_type":12,"marks":747,"text":748},"cf1cb3d17831",[641],"Power Supply: ",{"_key":750,"_type":12,"marks":751,"text":752},"d2eaf5e0e26e",[],"Corsair RM850e 850W 80+ Gold Fully Modular Power Supply",[],{"_key":755,"_type":8,"children":756,"level":485,"listItem":692,"markDefs":765,"style":33},"8f6742ca7b49",[757,761],{"_key":758,"_type":12,"marks":759,"text":760},"b87fafe9800b",[641],"Case",{"_key":762,"_type":12,"marks":763,"text":764},"dc90c0a51079",[],": SilverStone Fara R1 V2 Tempered Glass ATX Case — Black\n140mm Fans x2. Admittedly, the setup is somewhat loud so perhaps a quieter case could be explored. It is fine for the office (not a living space) but noticeable for sure.",[],{"_key":767,"_type":8,"children":768,"level":485,"listItem":692,"markDefs":777,"style":33},"5cc23eb00987",[769,773],{"_key":770,"_type":12,"marks":771,"text":772},"1b5ce7f2df40",[641],"Internet",{"_key":774,"_type":12,"marks":775,"text":776},"0e699c29b2d4",[],": 1 GBPS connection (1000MBPS up\u002F 50MBPS down) with a prosumer ASUS router. More n00b advice, connect it via a LAN cable or you will rob yourself of speed via a Wi-Fi connection.",[],{"_key":779,"_type":8,"children":780,"level":485,"listItem":692,"markDefs":789,"style":33},"0bee78c7df28",[781,785],{"_key":782,"_type":12,"marks":783,"text":784},"73c0462a3a8a",[641],"UPS:",{"_key":786,"_type":12,"marks":787,"text":788},"2e4e2e367424",[]," Unless your router\u002Fmodem are on the same router it is not so relevant. We went a small 1100VA\u002F660W UPS to protect the hardware against surges and small power outages (\u003C20 mins); more for equipment protection than up-time. Our power grid is ultra-stable, we have solar and can stomach small periods of downtime. UPS will only keep your node alive if your internet device is connected too.",[],{"_type":620,"alt":47,"assetId":791,"caption":792,"crop":28,"height":793,"hotspot":28,"lqip":794,"markDefs":28,"width":795},"image-f347bdeec72110afbac4ea4f82c4de8a0da73996-648x666-png","Bare-metal MAYANode",666,"data:image\u002Fpng;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAVCAYAAABG1c6oAAAACXBIWXMAAAsTAAALEwEAmpwYAAAFNElEQVR4nEWUa1MT6RaF+5\u002FMmakh3JEknXtI0rl2ku4knRu5kAgYoqDg6ICgyAG5KGBIkJuCCsLgiMqoZc34955T9PkwH1bter88tddbey3h0cIyz1s7HB4fc3T8hq1WkwczM4yPj1O\u002FeZNSqUQoFMJhtyGaRcwmkWBI5v7DJzT2TnnafM3Kxi6raw0WHy8iLK48ZW5+gekHs0xOTTEyMkI2k0GORPB5vTjsdixmM2ZjP2aTCVG0EY4mmH78lK2Dc9a33\u002FKscUCzucN2o4FQKldRE0kkyY\u002FdZsdkNGHs7+daXy893d26+np7sVksSFKAsJwgVxplbnmLxhXwxTHPt484Ojrm7OQUQTSaudbbQ3dnBx3tHTrAZrXoFs0mM9f6+jGbLUQiMSrXa4yM3aY2fo9Hy1s6bKVxyGbriJPTD3z89AXBYzMRdpmI+l3I4RBKLMZQsUCpUCAcimCx2HSbcTVD7dZdxu\u002Fc59bEFHMLqyyt7\u002FNoucXa5h7vzj\u002Fx17d\u002FEHKyl6rqY3RQZWx0mFv1MX6bvM3dyTsUB4t4PX5sdjdyPE15+CaVkTo3amPMzD3m4VKD6flnPHm2zbvzz3z5\u002FgMhFwmgSi6SsSD1G6M66Ao4fe83qkMVfF4\u002FTpdXB6ayZeR4klQ6w\u002Fide\u002Fw+t8r92RUWV5u8Ob3g4vI7QiIg4bWLeFwOhopFbo2NMVGvMTUxTj6TxSpaMRlFJL9MPK7h8wXx+0OUh0a5ffchU\u002FcXmF\u002Fa4OD1GWd\u002FXiJEgz5cViMOq0hWS1EtFRkul6hdr6JGoxj7rtHT2Y3kHCAXTaJGYgR9Epmkxlh9ionJWebmV9h7+Yaz8w8IAcmHaOzB1N+LHAygqXFyWpJKYZBULIrbasUliig+P9eTGmUtQyISJptMUa9PMnl3jrlHy+zsvuLk5AxBkYN4bEasxh6cFhMepw05FKKQTlNIqqTCQdSgn0wsSiWfo1oYJJdMMVQYYmpqhunZJeYX1mi29jk8PEbIphQklxWbqQ9TTxemvl78Xi8ZRaGgxslGw6TkMIW0Rm2kSjmfQ5GjlPMlHswssPRkk8Unmzxv7LK\u002Fd4SQy6Rw2qz068fdSW9XNwMul24rGZRQ\u002FT7SSoyx4Sq\u002FT01QzmeRBjxkEhoL88s0tvZ5ur5NY2vv\u002F8B8Lo3DZqOrqwuDwUBbmwHRZERyO3CJJtxWC4ocYbRSYvLmDco5DZ\u002FbTTqpsbq6yavDdzRbL2m19jnYf4VQLBb1Amg3tPPLz7\u002Fw00\u002F\u002Fod3QRn9ftx7HK9lEkXDAhxaPoEQCDDgdaFqGjc0Wp3985ODlW1rbe+y82EUYLlfwuAfo7Oyk3WDA0NZGe3s7nR0d+rvt11\u002F1eZV3h8WM227FLoqkE2kaz19w8ekbb0\u002Fe6xtubDYRbperKOEIA243kuTF5\u002FXgdjmx267676oc+ui6+tueHlx2Kz63E7dZpBBN0lrf5vLL35y9\u002F8xW6yWLa02EWjaHFo+jqgrFQo5yMc9gRiOTUEnGosihAL6BATxuFyG\u002FRFDy4bXaGIwm2FxrcPn1B+8\u002FfqW5c8TCWguhMphFjUeRZZlsJk1pMEcpn6Gcy1DKahS0JNmkoh98SomhxmTiskylVGF9s8Xnbz+4+Otvtndfs7C0gVCrjaLEFQY8PgKBANFIhLgcIRGTdUBa\u002FVeaEkVTYmTTGjdqdVbXt\u002Fjz8jsXX3\u002FQfHHI9Mx\u002FEYaHR1FiGm63D7vDicPhwOl06havYnllOR4Jocph1GhYn0klRiFfYGZ2nuPzT3z4+g8bzQPGx+\u002FxP\u002FO1Y2Kv4v\u002F4AAAAAElFTkSuQmCC",648,{"_key":797,"_type":8,"children":798,"markDefs":803,"style":33},"d7c739c9e3e0",[799],{"_key":800,"_type":12,"marks":801,"text":802},"31c268d494e6",[],"The main focus is to get an AMD CPU with enough core\u002Fthreads to cover the resources you require (see below) and to get the best storage that you can find (definitely M.2 NVMe SSD or even U.3 Enterprise Drives).",[],{"_key":805,"_type":8,"children":806,"markDefs":811,"style":33},"a49fe2bd991a",[807],{"_key":808,"_type":12,"marks":809,"text":810},"2d4cd88e75d0",[],"You can source the parts to build it yourself but your local supplier or computer builder will likely be able to do a better job than you (with none of the frustrations or headaches) for ~$150USD. We just paid the money to have the hardware built for us; highly recommended.",[],{"_key":813,"_type":8,"children":814,"markDefs":819,"style":672},"7972cc7299bb",[815],{"_key":816,"_type":12,"marks":817,"text":818},"3417a330650f",[],"Required CPU Resources",[],{"_key":821,"_type":8,"children":822,"markDefs":827,"style":828},"ea2bb2e23680",[823],{"_key":824,"_type":12,"marks":825,"text":826},"ef7dca181135",[],"“Can you run 2 MAYANodes on this setup?”",[],"blockquote",{"_key":830,"_type":8,"children":831,"markDefs":836,"style":33},"ada94c1d574f",[832],{"_key":833,"_type":12,"marks":834,"text":835},"697bc54ae845",[],"The answer is no. The limiting factor is the CPU resource requirements that are required by the MAYANode and services. Here is the summary (measuring in CPU threads; correct as of 23 August 2024) that can be found in the values.yaml for each service:",[],{"_key":838,"_type":8,"children":839,"level":485,"listItem":692,"markDefs":844,"style":33},"9a08ec50fbf3",[840],{"_key":841,"_type":12,"marks":842,"text":843},"6f05679c6ce2",[],"Ethereum Daemon — 2*",[],{"_key":846,"_type":8,"children":847,"level":485,"listItem":692,"markDefs":852,"style":33},"ce6a8eb88b17",[848],{"_key":849,"_type":12,"marks":850,"text":851},"50d248818de2",[],"Bitcoin Daemon — 1*",[],{"_key":854,"_type":8,"children":855,"level":485,"listItem":692,"markDefs":860,"style":33},"6e7e35c0cf8a",[856],{"_key":857,"_type":12,"marks":858,"text":859},"c2284f8b04eb",[],"THORNode Daemon — 4",[],{"_key":862,"_type":8,"children":863,"level":485,"listItem":692,"markDefs":868,"style":33},"3ce73b505b85",[864],{"_key":865,"_type":12,"marks":866,"text":867},"02a9febdbfff",[],"Bifrost Daemon — 7",[],{"_key":870,"_type":8,"children":871,"level":485,"listItem":692,"markDefs":876,"style":33},"dfbd3e8a2180",[872],{"_key":873,"_type":12,"marks":874,"text":875},"51b28e1c379e",[],"Dash Daemon — 1*",[],{"_key":878,"_type":8,"children":879,"level":485,"listItem":692,"markDefs":884,"style":33},"a268a2be2fcd",[880],{"_key":881,"_type":12,"marks":882,"text":883},"8a41fad12d87",[],"MAYANode Daemon — 4",[],{"_key":886,"_type":8,"children":887,"level":485,"listItem":692,"markDefs":892,"style":33},"2064ee93b11c",[888],{"_key":889,"_type":12,"marks":890,"text":891},"7e968878fadc",[],"Kuji Daemon — 4*",[],{"_key":894,"_type":8,"children":895,"level":485,"listItem":692,"markDefs":900,"style":33},"fdb67146c8f7",[896],{"_key":897,"_type":12,"marks":898,"text":899},"886636add9f3",[],"Arbitrum Daemon — 1.5*",[],{"_key":902,"_type":8,"children":903,"level":485,"listItem":692,"markDefs":908,"style":33},"b881311941f7",[904],{"_key":905,"_type":12,"marks":906,"text":907},"b015e6d49892",[],"Radix Daemon — 4*",[],{"_key":910,"_type":8,"children":911,"level":485,"listItem":692,"markDefs":916,"style":33},"f6589e890ed1",[912],{"_key":913,"_type":12,"marks":914,"text":915},"006823a2e88d",[],"Gateway — 0.2",[],{"_key":918,"_type":8,"children":919,"markDefs":928,"style":33},"0d2401df724d",[920,924],{"_key":921,"_type":12,"marks":922,"text":923},"378fb635d73b",[641],"TOTAL",{"_key":925,"_type":12,"marks":926,"text":927},"9815f767c86d",[],": 30 CPU threads\n* ~ Can be shared across multiple BM nodes.",[],{"_key":930,"_type":8,"children":931,"markDefs":936,"style":33},"94d4934fc687",[932],{"_key":933,"_type":12,"marks":934,"text":935},"656bf73359c7",[],"D5 Sammy successfully runs 7 BM nodes (THORNodes and MAYANodes) on his setup but he does have 128 CPU threads. He was clever enough to share the services that are capable of being shared (see the asterisked daemons in the list above). At minimum, each full BM node needs to run 30 threads and each next node needs 16 threads (the un-asterisked daemons above).",[],{"_key":938,"_type":8,"children":939,"markDefs":944,"style":33},"6cdadd2144e8",[940],{"_key":941,"_type":12,"marks":942,"text":943},"d9e326d2e684",[],"With the knowledge of how to calculate the minimum CPU requirements (and avoiding the temptation to simply lower the resource requirements), you will be able to work out the minimum resources that you need to run multiple nodes.",[],{"_key":946,"_type":8,"children":947,"markDefs":952,"style":672},"a2ed4972bcc9",[948],{"_key":949,"_type":12,"marks":950,"text":951},"32aff87941fd",[],"General Advice before software setup",[],{"_key":954,"_type":8,"children":955,"markDefs":960,"style":33},"a720c5ec8eb9",[956],{"_key":957,"_type":12,"marks":958,"text":959},"32cf515babf3",[],"Here is an unordered list of advice before starting to setup the software side of your MAYANode:",[],{"_key":962,"_type":8,"children":963,"markDefs":968},"d811b6618cab",[964],{"_key":965,"_type":12,"marks":966,"text":967},"36e160b7227a",[],"Read and re-read all of the guide. Seriously, just print it out, highlight all the sections that are relevant\u002Factionable and write notes for all of the questions that you have. You will resolve each question eventually so you might as well have them written down.",[],{"_key":970,"_type":8,"children":971,"markDefs":976},"1e25444e2c57",[972],{"_key":973,"_type":12,"marks":974,"text":975},"ad4bf06093bb",[],"ChatGPT is amazing to help understand what specific commands are trying to achieve. This is a good starting place if you honestly do not know where to start. Once you grasp the concepts of what is being asked, you can look at other online learning resources to understand it more deeply.",[],{"_key":978,"_type":8,"children":979,"markDefs":993},"836fca7c2ff4",[980,984,989],{"_key":981,"_type":12,"marks":982,"text":983},"b68ab958ae12",[],"Join the Maya Protocol Discord and ask advice in the ",{"_key":985,"_type":12,"marks":986,"text":988},"b62ecce5a206",[987],"8f14f188c2","#Liquidity-nodes",{"_key":990,"_type":12,"marks":991,"text":992},"159eaffbd4b7",[]," channel. The members in this group are exceptionally generous with their time and knowledge but they will not hold your hand through it all or spoon-feed you basic concepts you can easily learn by reading above in the chat or elsewhere online.",[994],{"_key":987,"_type":26,"link":995},{"anchor":28,"getParameters":28,"isInternal":190,"openInNewTab":28,"title":28,"url":996},"https:\u002F\u002Fdiscord.com\u002Fchannels\u002F915368890475880468\u002F1068969703218888715?ref=blog.thorchain.org",{"_key":998,"_type":8,"children":999,"markDefs":1004},"a3d3e483bf32",[1000],{"_key":1001,"_type":12,"marks":1002,"text":1003},"f148f6ca42df",[],"SSH into your BM node vice using an attached Keyboard and Mouse. It might be obvious to some but it became blatantly obvious when setting up the WireGuard proxy (lots of copy and paste)!",[],{"_key":1006,"_type":8,"children":1007,"markDefs":1012},"53de67f47f09",[1008],{"_key":1009,"_type":12,"marks":1010,"text":1011},"bd5b043ffcfd",[],"Physical security is key. Do not tell anyone IRL about your node and certainly hide behind an anonymous online account. Take all other sensible precautions as if you had a multi-million dollar pile of gold sitting in your living room.",[],{"_key":1014,"_type":8,"children":1015,"markDefs":1038},"344df01585ba",[1016,1020,1025,1029,1034],{"_key":1017,"_type":12,"marks":1018,"text":1019},"3e0103db165b",[],"Make sure that you are comfortable with all of the aspects of running a node ",{"_key":1021,"_type":12,"marks":1022,"text":1024},"45f90f834156",[1023],"em","before ",{"_key":1026,"_type":12,"marks":1027,"text":1028},"c4becfab3c16",[],"you actually bond to the network. Except for the cost of the hardware (and maybe the opportunity cost of not being churn into the network), you are not losing any money by taking your time. Build the BM node up, add a small amount of $CACAO and run all commands up to sending the full bond (eg: make set-version make set-node-keys etc). After you are comfortable with the building of the BM node, practice maintaining it (make update) and even practice pulling it all back down. You can do this via ",{"_key":1030,"_type":12,"marks":1031,"text":1033},"81aabaffdd9a",[1032],"91b7eefec0","Leaving\u002FDestroying",{"_key":1035,"_type":12,"marks":1036,"text":1037},"6f9005d28d72",[]," or you can just use make recycle (more on this later).",[1039],{"_key":1032,"_type":26,"link":1040},{"anchor":28,"getParameters":28,"isInternal":190,"openInNewTab":28,"title":28,"url":1041},"https:\u002F\u002Fdocs.thorchain.org\u002Fthornodes\u002Fleaving?ref=blog.thorchain.org",{"_key":1043,"_type":8,"children":1044,"markDefs":1049,"style":672},"6af27c6f3f11",[1045],{"_key":1046,"_type":12,"marks":1047,"text":1048},"a38298192318",[],"Operating System Setup",[],{"_key":1051,"_type":8,"children":1052,"markDefs":1070,"style":33},"33e438b7821f",[1053,1057,1061,1066],{"_key":1054,"_type":12,"marks":1055,"text":1056},"37b62e9bea84",[641],"Concept:",{"_key":1058,"_type":12,"marks":1059,"text":1060},"5a0be6a72dc5",[]," You have a brand new BM rig with the base hardware specifications that were suggested above. Now is the stage to install the Linux Ubuntu Server Operating System (OS) which has no graphic interface (it is all CLI). You will setup and configure from the official ",{"_key":1062,"_type":12,"marks":1063,"text":1065},"871047a8391d",[1064],"d30eddeea6","Ubuntu Server Guide",{"_key":1067,"_type":12,"marks":1068,"text":1069},"a209a42ff195",[],", then use SSH to remotely access the BM rig and finalise laying the foundation for your BM node.",[1071],{"_key":1064,"_type":26,"link":1072},{"anchor":28,"getParameters":28,"isInternal":190,"openInNewTab":28,"title":28,"url":1073},"https:\u002F\u002Fubuntu.com\u002Ftutorials\u002Finstall-ubuntu-server?ref=blog.thorchain.org#1-overview",{"_key":1075,"_type":8,"children":1076,"markDefs":1081,"style":1082},"95dddf7e912d",[1077],{"_key":1078,"_type":12,"marks":1079,"text":1080},"1fcb57e1b06a",[],"OS Installation:",[],"h3",{"_key":1084,"_type":8,"children":1085,"markDefs":1104},"1657e9301235",[1086,1091,1095,1100],{"_key":1087,"_type":12,"marks":1088,"text":1090},"89c961b471c8",[1089],"fcc826936b","Download",{"_key":1092,"_type":12,"marks":1093,"text":1094},"82c48743e596",[]," and install the latest Ubuntu Server LTS (eg: 22.04.02 LTS) on a bootable USB drive (using ",{"_key":1096,"_type":12,"marks":1097,"text":1099},"62fca5f08ab3",[1098],"f14cf4be12","etcher",{"_key":1101,"_type":12,"marks":1102,"text":1103},"404040bb3083",[],").",[1105,1108],{"_key":1089,"_type":26,"link":1106},{"anchor":28,"getParameters":28,"isInternal":190,"openInNewTab":28,"title":28,"url":1107},"https:\u002F\u002Fubuntu.com\u002Fdownload\u002Fserver?ref=blog.thorchain.org",{"_key":1098,"_type":26,"link":1109},{"anchor":28,"getParameters":28,"isInternal":190,"openInNewTab":28,"title":28,"url":1110},"https:\u002F\u002Fetcher.balena.io\u002F?ref=blog.thorchain.org",{"_key":1112,"_type":8,"children":1113,"markDefs":1118},"e1aa3634b8e1",[1114],{"_key":1115,"_type":12,"marks":1116,"text":1117},"2b1596ef5e09",[],"Plug-in the bootable USB and restart your BM computer.",[],{"_key":1120,"_type":8,"children":1121,"markDefs":1126},"ce3a8f9dd477",[1122],{"_key":1123,"_type":12,"marks":1124,"text":1125},"b526aff1f0b3",[],"Select 'Install', update Installer (if you desire), select Base (Ubuntu Server), choose language, select keyboard layout (google what yours is called).",[],{"_key":1128,"_type":8,"children":1129,"markDefs":1134},"a99c44411d1a",[1130],{"_key":1131,"_type":12,"marks":1132,"text":1133},"bf8493aced37",[],"Proxy=blank (by default; Enter through it), Mirror=default (Enter through it), Choose the correct drive (500GB OS\u002Fboot drive; not 4TB options), deselect LVM (we will do it later), 'Install Ubuntu' and accept default networking.",[],{"_key":1136,"_type":8,"children":1137,"markDefs":1142},"c913ebfa66b2",[1138],{"_key":1139,"_type":12,"marks":1140,"text":1141},"8c774a97df36",[],"Select 'Use an Entire Disk' for storage and ensure you select the 500GB drive. Accept default partitions and confirm changes (it is a new blank drive so no risk of losing important data).",[],{"_key":1144,"_type":8,"children":1145,"markDefs":1150},"613542dc8bcc",[1146],{"_key":1147,"_type":12,"marks":1148,"text":1149},"e4118a134edc",[],"Choose preferred naming conventions (plus a long, unique and secure password). This creates a new profile for you (non-root).",[],{"_key":1152,"_type":8,"children":1153,"markDefs":1158},"10d5e93273e6",[1154],{"_key":1155,"_type":12,"marks":1156,"text":1157},"37c55d8eae59",[],"Skip Ubuntu Pro option, Install OpenSSH (so that you enable enable the SSH service) and choose extra packages to install (we did not select any extra beyond the OpenSSH earlier).",[],{"_key":1160,"_type":8,"children":1161,"markDefs":1166},"b8fe97e8358e",[1162],{"_key":1163,"_type":12,"marks":1164,"text":1165},"c343e37370c5",[],"Finalise installation and reboot (it will prompt you to remove the USB drive and reboot again).",[],{"_key":1168,"_type":8,"children":1169,"markDefs":1174},"5aaa492a8b61",[1170],{"_key":1171,"_type":12,"marks":1172,"text":1173},"190e230752a7",[],"Install and upgrade the latest versions of everything on the new OS:",[],{"_key":1176,"_type":8,"children":1177,"markDefs":1182,"style":33},"93c72aa6e569",[1178],{"_key":1179,"_type":12,"marks":1180,"text":1181},"05ac0f3d16aa",[],"sudo apt update\nsudo apt upgrade\n\n('y' to accept the extra storage required)",[],{"_key":1184,"_type":8,"children":1185,"markDefs":1190,"style":828},"9c933a09db68",[1186],{"_key":1187,"_type":12,"marks":1188,"text":1189},"7e3a4d5b6d38",[],"Note: If prompted for merging, select the first option, “install the package maintainer’s version”. Accept default restart requests.",[],{"_type":620,"alt":47,"assetId":1192,"caption":1193,"crop":28,"height":1194,"hotspot":28,"lqip":1195,"markDefs":28,"width":1196},"image-816ff65c4fe349ccd4c11b6276f3cd22ca3bec1f-700x279-png","Ubuntu Server: Profile Setup",279,"data:image\u002Fpng;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAICAYAAAD5nd\u002FtAAAACXBIWXMAAAsTAAALEwEAmpwYAAABZ0lEQVR4nG3Ry26CQBQGYF9BUUEEFBDTduEtTQwEiLaIGiUxdgNijUKx9aW6MPX2lH\u002FDWDVqF1\u002FOXDJ\u002Fzskkvg0W6xaPjSVha5ew60jYdyQcLBkHSzrbW+LR61+1JOwsEdt2AZu2gJ8Wj7XJIWEWKLTFLDoKi\u002F5TAW\u002FPDwhemlj1TKz6F18940p8\u002F9nVEVkqPiwVvlZF\u002F1FAIplMIp1Og2Fo8DyPWq0Gx3Ew9aeYzWZ3pu9T+L5PTCYTTDwPnuei27VRKpWOgZlMBrlcjgQ2Gg2Mx2MEYYgoii6WSyIMQywWiztDx0G5XEYilUohm82CZVkIgoB6vY7RaIT5fH71IAiC8zq+uzUcDo+BFEWBYRhwHEcCK5UKBoMBXNeFR8a5uD2L9ye2bUOW5WMgTdOkw3w+D0VR0Gw2YRjGv0zTJFXXdWiaBlVViWq1St6fPyUe+xQsiiIkSSL11um8WCySqeKQWPwHcXO\u002F1KcarETWrooAAAAASUVORK5CYII=",700,{"_key":1198,"_type":8,"children":1199,"markDefs":1204,"style":1082},"2b6932e4d466",[1200],{"_key":1201,"_type":12,"marks":1202,"text":1203},"252f8009fc5d",[],"CPU Optimisation:",[],{"_key":1206,"_type":8,"children":1207,"markDefs":1212,"style":33},"1e11e517e82e",[1208],{"_key":1209,"_type":12,"marks":1210,"text":1211},"04c0a967e355",[],"As you are running a single tenant hardware node, with a known code base, you are able to optimise the CPU for better raw performance.",[],{"_key":1214,"_type":8,"children":1215,"markDefs":1225,"style":33},"5faff20443a9",[1216,1220],{"_key":1217,"_type":12,"marks":1218,"text":1219},"459531f57dc0",[],"Reference: ",{"_key":1221,"_type":12,"marks":1222,"text":1224},"8f82a47ec4fd",[1223],"9d6ec30b43","https:\u002F\u002Fsleeplessbeastie.eu\u002F2020\u002F03\u002F27\u002Fhow-to-disable-mitigations-for-cpu-vulnerabilities\u002F",[1226],{"_key":1223,"_type":26,"link":1227},{"anchor":28,"getParameters":28,"isInternal":190,"openInNewTab":28,"title":28,"url":1228},"https:\u002F\u002Fsleeplessbeastie.eu\u002F2020\u002F03\u002F27\u002Fhow-to-disable-mitigations-for-cpu-vulnerabilities\u002F?ref=blog.thorchain.org",{"_key":1230,"_type":8,"children":1231,"markDefs":1236,"style":33},"b10baddd1a57",[1232],{"_key":1233,"_type":12,"marks":1234,"text":1235},"801769b12287",[],"lscpu\nsudo nano \u002Fetc\u002Fdefault\u002Fgrub",[],{"_key":1238,"_type":8,"children":1239,"markDefs":1244,"style":33},"e8d153f602a4",[1240],{"_key":1241,"_type":12,"marks":1242,"text":1243},"d8630759b48f",[],"Add mitigations=off to GRUB_CMDLINE_LINUX_DEFAULT",[],{"_key":1246,"_type":8,"children":1247,"markDefs":1252,"style":33},"0cd681935132",[1248],{"_key":1249,"_type":12,"marks":1250,"text":1251},"926eb3204b9d",[],"GRUB_CMDLINE_LINUX_DEFAULT=\"quiet splash mitigations=off\"",[],{"_key":1254,"_type":8,"children":1255,"markDefs":1260,"style":33},"4f2bc076d0db",[1256],{"_key":1257,"_type":12,"marks":1258,"text":1259},"49763b2fc07b",[],"CTRL+X (to exit), Y (to save the changes), Enter (keep the same name)",[],{"_key":1262,"_type":8,"children":1263,"markDefs":1268,"style":33},"36a5917fe2f6",[1264],{"_key":1265,"_type":12,"marks":1266,"text":1267},"5bb142530a6e",[],"Reload the file:",[],{"_key":1270,"_type":8,"children":1271,"markDefs":1276,"style":33},"8e9df41ef07e",[1272],{"_key":1273,"_type":12,"marks":1274,"text":1275},"16137e3190be",[],"sudo update-grub",[],{"_key":1278,"_type":8,"children":1279,"markDefs":1284,"style":33},"82fd588a361d",[1280],{"_key":1281,"_type":12,"marks":1282,"text":1283},"94fe96e6de76",[],"Now reboot and confirm mitigations are off before continuing.",[],{"_key":1286,"_type":8,"children":1287,"markDefs":1292,"style":33},"1a0c1cd41923",[1288],{"_key":1289,"_type":12,"marks":1290,"text":1291},"ce6244c6b6d4",[],"sudo reboot\nlscpu",[],{"_key":1294,"_type":8,"children":1295,"markDefs":1300,"style":33},"51bd6c9f4417",[1296],{"_key":1297,"_type":12,"marks":1298,"text":1299},"eb517d8e7e5a",[],"Now you can turn your attentions to the 'swappiness'. It is likely set high (60) but can be reduced with a high RAM server:",[],{"_key":1302,"_type":8,"children":1303,"markDefs":1308,"style":33},"b254810f357f",[1304],{"_key":1305,"_type":12,"marks":1306,"text":1307},"33bf584799b8",[],"Edit \u002Fetc\u002Fsysctl.conf as root",[],{"_key":1310,"_type":8,"children":1311,"markDefs":1316,"style":33},"76bb4ad739b9",[1312],{"_key":1313,"_type":12,"marks":1314,"text":1315},"d15ca9e2c609",[],"sudo nano \u002Fetc\u002Fsysctl.conf",[],{"_key":1318,"_type":8,"children":1319,"markDefs":1324,"style":33},"c83aa8a7b54b",[1320],{"_key":1321,"_type":12,"marks":1322,"text":1323},"490529c2e023",[],"Add the following line to the bottom of the file (choose 10 or 20; user preference):",[],{"_key":1326,"_type":8,"children":1327,"markDefs":1332,"style":33},"75acc3ecd0c4",[1328],{"_key":1329,"_type":12,"marks":1330,"text":1331},"3d540bf63f17",[],"vm.swappiness = 20\n\nCTRL+X (to exit), Y (to save the changes), Enter (keep the same name)",[],{"_key":1334,"_type":8,"children":1335,"markDefs":1340,"style":33},"00020ef41dcd",[1336],{"_key":1337,"_type":12,"marks":1338,"text":1339},"a4944134cbd2",[],"Reload sysctl.conf:",[],{"_key":1342,"_type":8,"children":1343,"markDefs":1348,"style":33},"9bf29a59db08",[1344],{"_key":1345,"_type":12,"marks":1346,"text":1347},"9b3d62227299",[],"sudo sysctl -p",[],{"_key":1350,"_type":8,"children":1351,"markDefs":1356,"style":1082},"fdca619e16f2",[1352],{"_key":1353,"_type":12,"marks":1354,"text":1355},"784cede4893e",[],"BIOS Settings",[],{"_key":1358,"_type":8,"children":1359,"markDefs":1364,"style":33},"93ebc9a6d488",[1360],{"_key":1361,"_type":12,"marks":1362,"text":1363},"5f851fceda7f",[],"Edit the BM server BIOS settings (google how to do it on your specific motherboard) to ensure it reboots after any power loss. This ensures your machine spends minimal time offline after transient power outages (your UPS should help with this too).",[],{"_key":1366,"_type":8,"children":1367,"markDefs":1372,"style":1082},"671fc3aaf5da",[1368],{"_key":1369,"_type":12,"marks":1370,"text":1371},"808ef8e18aa2",[],"Remote Access (SSH)",[],{"_key":1374,"_type":8,"children":1375,"markDefs":1380,"style":33},"090e4c466518",[1376],{"_key":1377,"_type":12,"marks":1378,"text":1379},"b336d3c0dfad",[],"Setup remote access (SSH) to your new BM server; you will definitely need this during the WireGuard setup (so that you can copy and paste). SSH is installed as standard as part of the Ubuntu Server package.",[],{"_key":1382,"_type":8,"children":1383,"markDefs":1388,"style":33},"b76358eb9fac",[1384],{"_key":1385,"_type":12,"marks":1386,"text":1387},"d506de5b6b7c",[],"To confirm it is running:",[],{"_key":1390,"_type":8,"children":1391,"markDefs":1396,"style":33},"71c43bffc0d9",[1392],{"_key":1393,"_type":12,"marks":1394,"text":1395},"7c60925ac78c",[],"sudo systemctl status sshd",[],{"_key":1398,"_type":8,"children":1399,"markDefs":1413,"style":33},"9c3e7f1af09b",[1400,1404,1409],{"_key":1401,"_type":12,"marks":1402,"text":1403},"cf49b709b8d1",[],"On your laptop, ",{"_key":1405,"_type":12,"marks":1406,"text":1408},"15307c3753e3",[1407],"6fe676463d","generate a new SSH key pair",{"_key":1410,"_type":12,"marks":1411,"text":1412},"543798625f0f",[]," for exclusive use with your BM server; choose ED25519 as it is the newer and superior encryption.",[1414],{"_key":1407,"_type":26,"link":1415},{"anchor":28,"getParameters":28,"isInternal":190,"openInNewTab":28,"title":28,"url":1416},"https:\u002F\u002Fwww.ssh.com\u002Facademy\u002Fssh\u002Fkeygen?ref=blog.thorchain.org",{"_key":1418,"_type":8,"children":1419,"markDefs":1424,"style":33},"df64b05ef88d",[1420],{"_key":1421,"_type":12,"marks":1422,"text":1423},"152ded839630",[],"[your laptop] \nssh-keygen -t ed25519\n(give it a strong password for another layer of security)\n\nls ~\u002F.ssh\u002F\n(you will now see id_ed25519 (Private Key) and id_ed25519.pub (Public key))",[],{"_key":1426,"_type":8,"children":1427,"markDefs":1432,"style":1082},"0f9d5eaa677e",[1428],{"_key":1429,"_type":12,"marks":1430,"text":1431},"7eb3951ccedc",[],"Server Setup",[],{"_key":1434,"_type":8,"children":1435,"markDefs":1449,"style":33},"bff9ae4c0ec5",[1436,1440,1445],{"_key":1437,"_type":12,"marks":1438,"text":1439},"0d1a584150e4",[],"Initial server setup is pretty standard across all Linux platform, follow this ",{"_key":1441,"_type":12,"marks":1442,"text":1444},"40da42e0d3ac",[1443],"66f44e89d3","DigitalOcean guide",{"_key":1446,"_type":12,"marks":1447,"text":1448},"73c01a2f4dae",[]," as a baseline. It is recommended that the BM server get a reserved IP from the LAN DHCP server (google how to do this on your specific router). Also, you may need to allow Port Forwarding for Port 22 (required for SSH) on your router if you want to use your Public IP address to get SSH access (connecting from outside your network).",[1450],{"_key":1443,"_type":26,"link":1451},{"anchor":28,"getParameters":28,"isInternal":190,"openInNewTab":28,"title":28,"url":1452},"https:\u002F\u002Fwww.digitalocean.com\u002Fcommunity\u002Ftutorials\u002Finitial-server-setup-with-ubuntu-22-04?ref=blog.thorchain.org",{"_key":1454,"_type":8,"children":1455,"markDefs":1460,"style":33},"90e9a43ee831",[1456],{"_key":1457,"_type":12,"marks":1458,"text":1459},"e27027116126",[],"\u003Cyour IP address> might be your ISP provided IP address or the reserved IP from your local network. If you are only going to connect from your local network you can use your local internal facing IP address (192.168.X.Y), however if you are going to connect externally you need to set this to your ISP provided public IP address (google 'What is my IP' if you don't know it).",[],{"_key":1462,"_type":8,"children":1463,"markDefs":1468,"style":33},"75daa77033c8",[1464],{"_key":1465,"_type":12,"marks":1466,"text":1467},"23bd948e6914",[],"Confirm SSH access to your BM server:",[],{"_key":1470,"_type":8,"children":1471,"markDefs":1476,"style":33},"cf980ed9f099",[1472],{"_key":1473,"_type":12,"marks":1474,"text":1475},"be09ebddd084",[],"[From laptop] \nssh \u003Cusername>@\u003Cyour IP address>\nSay 'yes' to ECDSA fingerprint.\n\n(it will ask for your username password to access)\nexit",[],{"_key":1478,"_type":8,"children":1479,"markDefs":1484,"style":33},"c522f9f4f18e",[1480],{"_key":1481,"_type":12,"marks":1482,"text":1483},"294976bb1237",[],"Give \u003Cusername> your SSH public key:",[],{"_key":1486,"_type":8,"children":1487,"markDefs":1492,"style":33},"de81c1378abe",[1488],{"_key":1489,"_type":12,"marks":1490,"text":1491},"cb133333be94",[],"[From laptop]\nssh-copy-id -i ~\u002F.ssh\u002Fid_ed25519.pub \u003Cusername>@\u003Cyour IP address>\n\n(will need the password again to copy it across)",[],{"_key":1494,"_type":8,"children":1495,"markDefs":1500,"style":33},"1aa9d7c94856",[1496],{"_key":1497,"_type":12,"marks":1498,"text":1499},"d0a34fecc5e1",[],"Disable Root login and Password logins.",[],{"_key":1502,"_type":8,"children":1503,"markDefs":1508,"style":33},"60e4d7e0c0a2",[1504],{"_key":1505,"_type":12,"marks":1506,"text":1507},"6a18cf7d68e4",[],"sudo nano \u002Fetc\u002Fssh\u002Fsshd_config\nPasswordAuthentication no\n(Change 'yes' to 'no'; remove the #)\nPermitRootLogin no \n(Will need to remove the #)\n\nCTRL+X (to exit), Y (to save), Enter (keep the same name)\nservice sshd restart\nexit",[],{"_key":1510,"_type":8,"children":1511,"markDefs":1516,"style":33},"b6d7b5cfa7e1",[1512],{"_key":1513,"_type":12,"marks":1514,"text":1515},"285039f210b7",[],"Configure your local machine (laptop) to auto-login using \u003Cshortcut alias>(eg replace with mayanode-demo or whatever shortcut alias you want):",[],{"_key":1518,"_type":8,"children":1519,"markDefs":1524,"style":33},"93a54db02c3e",[1520],{"_key":1521,"_type":12,"marks":1522,"text":1523},"28118162ee8f",[],"[your laptop]\nnano ~\u002F.ssh\u002Fconfig\n\n\u002F\u002F Add the following lines to the config file:\nhost \u003Cshortcut alias>\n  user \u003Cusername>\n  hostname \u003Cyour IP address>\n\n[your laptop]\nssh \u003Cshortcut alias>\n(You will need your 'id_ed25519' password to complete the login)",[],{"_key":1526,"_type":8,"children":1527,"markDefs":1532,"style":672},"94fe560a12e1",[1528],{"_key":1529,"_type":12,"marks":1530,"text":1531},"e1f27a1da2fa",[],"Storage Configuration (LVM)",[],{"_key":1534,"_type":8,"children":1535,"markDefs":1544,"style":33},"4cfdab260b4e",[1536,1540],{"_key":1537,"_type":12,"marks":1538,"text":1539},"d4703479ed94",[641],"Concept",{"_key":1541,"_type":12,"marks":1542,"text":1543},"1bdf94e6e1ec",[],": Fundamentally what you are doing is starting at the bottom of the picture below (with your independent hard-drives; 2 x XS70 4TB M.2 NVMe SSDs in our case) and working your way up towards the top of the picture (where you will have a large Volume Group that pools all the storage together).",[],{"_key":1546,"_type":8,"children":1547,"markDefs":1579,"style":33},"b0c732fafe3b",[1548,1552,1557,1561,1566,1570,1575],{"_key":1549,"_type":12,"marks":1550,"text":1551},"6bc3a6d80ddd",[],"Read all instructions available at ",{"_key":1553,"_type":12,"marks":1554,"text":1556},"ddc3c9e75634",[1555],"a7745f3992","https:\u002F\u002Fchristitus.com\u002Flvm-guide\u002F",{"_key":1558,"_type":12,"marks":1559,"text":1560},"b33f9182e28a",[]," and watch his video (a few times if required). Other useful videos are ",{"_key":1562,"_type":12,"marks":1563,"text":1565},"4f6d7a117a51",[1564],"445390992e","Learn Linux TV",{"_key":1567,"_type":12,"marks":1568,"text":1569},"de963fd4cc20",[]," and ",{"_key":1571,"_type":12,"marks":1572,"text":1574},"3107836331c9",[1573],"64ab368023","David Dalton",{"_key":1576,"_type":12,"marks":1577,"text":1578},"041adacbd764",[],".",[1580,1583,1586],{"_key":1555,"_type":26,"link":1581},{"anchor":28,"getParameters":28,"isInternal":190,"openInNewTab":28,"title":28,"url":1582},"https:\u002F\u002Fchristitus.com\u002Flvm-guide\u002F?ref=blog.thorchain.org",{"_key":1564,"_type":26,"link":1584},{"anchor":28,"getParameters":28,"isInternal":190,"openInNewTab":28,"title":28,"url":1585},"https:\u002F\u002Fwww.youtube.com\u002F@LearnLinuxTV?ref=blog.thorchain.org",{"_key":1573,"_type":26,"link":1587},{"anchor":28,"getParameters":28,"isInternal":190,"openInNewTab":28,"title":28,"url":1588},"https:\u002F\u002Fwww.youtube.com\u002F@ddaltonyvcc?ref=blog.thorchain.org",{"_type":620,"alt":47,"assetId":1590,"caption":1591,"crop":28,"height":1592,"hotspot":28,"lqip":1593,"markDefs":28,"width":1196},"image-bd8272f363dc61fed749a64cceaac85b60a25184-700x419-png","Logical Volume Management (LVM)",419,"data:image\u002Fpng;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAMCAYAAABiDJ37AAAACXBIWXMAAAsTAAALEwEAmpwYAAACzklEQVR4nE2TW08iWRSF+dkTk\u002FYyas8k8zB2pk1mRlToVoPDpVEpHCguVQVVFKAtijQU9+LazUUJxgc08ZtU+eA8rOx99lpZ55ydvR0ALy8vPD8\u002F8\u002FDwwP3dHff392+YvcbRaES312U4HHL3f83sTWPB8fT0xGKx4PHxkdF4TKc3wOwObVh5b\u002FCdbv8H1Xqbq5sSpUqNdqdP16oPfmAORpj9kZ33B0Mc1m3j8dh+QaPVJntZRM4UkPUC6dw1+UKJfKGCkikgylkS6QvUXJHsVRn9yiB1YSDnDbLXdUqVBo5er0en03k1bJrI2iVCXEOIaYhSlpR+haJfE5VyhGMa4XgGUc4jawWUXIm4douYLqJdGhS\u002F1V4N+\u002F2+3Zdqp8GZHuNTIoA77udICeLTBbwZgYNkEFfUhzvm51AO4tUEvuSjfLmIEcjHiF6n+Vq5wdHtdhkMBnZDb8wCO\u002Fo268o7NlIrbKZXeK8u815dZSO5zFpkiZ8T79i0uWV+0Vb5VV+341+5P0iWYjhM08QynU4nVFpf8aW2cMaXcCsbuOQ19hJWvo4ruYYz8hOu5KrN7caX2JdWcKc2bf2x8huZm+jrly1M76Z0GyX0sAvJu4V+vo8W+hvF\u002FwH9fA9N2EX2\u002Fk4mtIMe3kfxbaGe\u002Fkk28gnF9wE95MQoqDgmkwnjyYT5fM6wWSPrPUTa+Ujmn8+oR3vIu9vox5\u002FRPG4k50e0o337LDm3SR\u002FskvUdITu30T1uWoULHNYwW2bWHPbMDuLZOf4DD+HACadeP74DD0LghJA\u002FaNdDvoDN+Q89nHoDRE5CBA6P+Td4hlEq4bDMZrOZvSX9wXdkNU9IlInJKpFkGkGUicsZREklJEpEpTQxWbM1Fp9M6QiiQiKVpd5sv23KYvHEbD6n1mhRLFcw6g2qzRbVRpN6q02lVue2XKZcq2HU6rbmW7VGtd7ktmzY+vFkyn8FziUccw3hrQAAAABJRU5ErkJggg==",{"_key":1595,"_type":8,"children":1596,"markDefs":1601,"style":33},"9b3a3200d2b4",[1597],{"_key":1598,"_type":12,"marks":1599,"text":1600},"987a8474b8ab",[],"Install lvm:",[],{"_key":1603,"_type":8,"children":1604,"markDefs":1609,"style":33},"411e8808f5af",[1605],{"_key":1606,"_type":12,"marks":1607,"text":1608},"dbd9a6109e22",[],"sudo apt install lvm2\nsudo apt install btrfs-progs",[],{"_key":1611,"_type":8,"children":1612,"markDefs":1617,"style":33},"3e29c47df0d9",[1613],{"_key":1614,"_type":12,"marks":1615,"text":1616},"dda26da69453",[],"Check your current disk space usage:",[],{"_key":1619,"_type":8,"children":1620,"markDefs":1625,"style":33},"4b0c2879e8d3",[1621],{"_key":1622,"_type":12,"marks":1623,"text":1624},"3f2b92018d13",[],"df -h",[],{"_key":1627,"_type":8,"children":1628,"markDefs":1633,"style":33},"d59ea634aa67",[1629],{"_key":1630,"_type":12,"marks":1631,"text":1632},"f8cb0078f0d4",[],"Check partitions and volumes. The physical hard drives (M.2 NVMe SSDs) will be listed something like nvme0n1 and the partition of this physical drive will be something like nvme0n1p1 (if present). Currently only the boot drive is partitioned.",[],{"_key":1635,"_type":8,"children":1636,"markDefs":1641,"style":33},"da3dd56b823f",[1637],{"_key":1638,"_type":12,"marks":1639,"text":1640},"537f95569898",[],"sudo lsblk",[],{"_key":1643,"_type":8,"children":1644,"markDefs":1649,"style":33},"8119698bd89a",[1645],{"_key":1646,"_type":12,"marks":1647,"text":1648},"7707185a9c4a",[],"As your new M.2 SSDs are likely not yet partitioned so you will need to make a 100% partition on each before continuing (btrfs). The previously run sudo lsblk will have confirmed whether there is an existing partition available and if not it would at least inform you of the \u003Cidentifier> for the physical hard drive you are partitioning.",[],{"_key":1651,"_type":8,"children":1652,"markDefs":1657,"style":33},"9471097e6def",[1653],{"_key":1654,"_type":12,"marks":1655,"text":1656},"7d39a93b7d87",[],"sudo fdisk \u002Fdev\u002F\u003Cidentifier>\nm (to see the full guide)\ng (new GPT partition table)\nn (add new partition)\nEnter, Enter, Enter (all default values)\nw (write and save)\n\nsudo lsblk\n(you will now see nmve0n1p1; the new partition)\nsudo mkfs.btrfs \u002Fdev\u002F\u003Cidentifier of new partition>\ndf -h (to check all physical hard drives have partitions)",[],{"_key":1659,"_type":8,"children":1660,"markDefs":1665,"style":33},"0712b74bbc67",[1661],{"_key":1662,"_type":12,"marks":1663,"text":1664},"415530323fa0",[],"Repeat the step above for each of your M.2 NVMe SSDs; each needs their own partition.",[],{"_key":1667,"_type":8,"children":1668,"markDefs":1673,"style":33},"9e4881a5247b",[1669],{"_key":1670,"_type":12,"marks":1671,"text":1672},"d1a89a8c8c09",[],"Looking back at the LVM graphic (above), you will see we have our actual hard drives, each with a partition, and now we are ensuring that each partition has a Physical Volume. Check for existing Physical Volumes:",[],{"_key":1675,"_type":8,"children":1676,"markDefs":1681,"style":33},"12971ef90e2d",[1677],{"_key":1678,"_type":12,"marks":1679,"text":1680},"064fb581d678",[],"sudo pvscan",[],{"_key":1683,"_type":8,"children":1684,"markDefs":1689,"style":33},"b2a7c21ea42f",[1685],{"_key":1686,"_type":12,"marks":1687,"text":1688},"4e9523d107a7",[],"Type df -h to note the file system of the second hard drive (if has already been mounted) If your hard drives have not been mounted, use sudo lsblk. It should be something like \u002Fdev\u002Fnvme0n1p1.",[],{"_key":1691,"_type":8,"children":1692,"markDefs":1701,"style":828},"1e55c21ec41f",[1693,1697],{"_key":1694,"_type":12,"marks":1695,"text":1696},"b2df8b3a38fd",[1023,641],"Warning: ",{"_key":1698,"_type":12,"marks":1699,"text":1700},"f31fbdb9cc67",[1023],"Creating a Physical Volume (PV) will wipe all data on it. Make sure you select the correct partition!",[],{"_key":1703,"_type":8,"children":1704,"markDefs":1709,"style":33},"e7152d6c9790",[1705],{"_key":1706,"_type":12,"marks":1707,"text":1708},"e69db25a4526",[],"\u002F\u002F Repeat the following step for each partition\nsudo pvcreate \u002Fdev\u002Fnvme0n1p1\n\n('y' to wipe it; nothing is there since it is new)",[],{"_key":1711,"_type":8,"children":1712,"markDefs":1717,"style":33},"3d27e9db4124",[1713],{"_key":1714,"_type":12,"marks":1715,"text":1716},"9f6724939721",[],"Working up the LVM graphic, we can now add all of the Physical Volumes into a single Volume Group. Check for existing Volumes Groups (VG):",[],{"_key":1719,"_type":8,"children":1720,"markDefs":1725,"style":33},"2bdc4aebcc02",[1721],{"_key":1722,"_type":12,"marks":1723,"text":1724},"76e3c984afa2",[],"sudo vgscan",[],{"_key":1727,"_type":8,"children":1728,"markDefs":1733,"style":33},"6f9efa6078ed",[1729],{"_key":1730,"_type":12,"marks":1731,"text":1732},"55029e6ebb17",[],"As we are setting up LVM for the first time, we will need to create a new VG. nvmevg0 is the name being create and it is using \u002Fdev\u002Fnvme0n1p1, \u002Fdev\u002Fnvme1n1p1 and \u002Fdev\u002Fnvme2n1p1.",[],{"_key":1735,"_type":8,"children":1736,"markDefs":1741,"style":33},"fa6fcb7d6923",[1737],{"_key":1738,"_type":12,"marks":1739,"text":1740},"ecd2cbeb60ba",[],"sudo vgcreate nvmevg0 \u002Fdev\u002Fnvme0n1p1 \u002Fdev\u002Fnvme1n1p1 \u002Fdev\u002Fnvme2n1p1",[],{"_key":1743,"_type":8,"children":1744,"markDefs":1749,"style":33},"1d9e76e3febe",[1745],{"_key":1746,"_type":12,"marks":1747,"text":1748},"e995548ec238",[],"To make it easier to understand, we will check what we created and how much data it has to allocate:",[],{"_key":1751,"_type":8,"children":1752,"markDefs":1757,"style":33},"f15d0b5a6c2b",[1753],{"_key":1754,"_type":12,"marks":1755,"text":1756},"602989d3453d",[],"sudo vgdisplay",[],{"_key":1759,"_type":8,"children":1760,"markDefs":1765,"style":33},"77d2da2b9a42",[1761],{"_key":1762,"_type":12,"marks":1763,"text":1764},"c09b04878848",[],"Finally we want to add the VG to a Logical Volume (LV). We can check for any existing LVs but it will likely return as empty (there are no LVs):",[],{"_key":1767,"_type":8,"children":1768,"markDefs":1773,"style":33},"1b9f6cc28204",[1769],{"_key":1770,"_type":12,"marks":1771,"text":1772},"addcc914d3e9",[],"sudo lvscan",[],{"_key":1775,"_type":8,"children":1776,"markDefs":1781,"style":33},"005759d36ca3",[1777],{"_key":1778,"_type":12,"marks":1779,"text":1780},"47cb3956e78e",[],"Again, since it is a new setup, there is no LV. Time to create a LV:",[],{"_key":1783,"_type":8,"children":1784,"markDefs":1789,"style":33},"88fa303a568d",[1785],{"_key":1786,"_type":12,"marks":1787,"text":1788},"3783867cb6d1",[],"sudo lvcreate -l 100%FREE nvmevg0 -n nvmelv0",[],{"_key":1791,"_type":8,"children":1792,"markDefs":1806,"style":33},"0f0803c7f12f",[1793,1797,1802],{"_key":1794,"_type":12,"marks":1795,"text":1796},"91b3f0ede968",[],"There is an option to ",{"_key":1798,"_type":12,"marks":1799,"text":1801},"474793eff410",[1800],"f6fa29b926","create a striped logical volume",{"_key":1803,"_type":12,"marks":1804,"text":1805},"b76c5f24c599",[]," with sudo lvcreate -l {value} -i 2 -I 128k nvmevg0 -n nvmelv0 but striping makes storage expansion (adding more M.2 storage) impossible. Only run this command if you have maxed out your storage and do not ever plan to use an expansion card.",[1807],{"_key":1800,"_type":26,"link":1808},{"anchor":28,"getParameters":28,"isInternal":190,"openInNewTab":28,"title":28,"url":1809},"https:\u002F\u002Fwww.linuxsysadmins.com\u002Fcreate-striped-logical-volume-on-linux\u002F?ref=blog.thorchain.org",{"_key":1811,"_type":8,"children":1812,"level":485,"listItem":692,"markDefs":1817,"style":33},"6c1bf6a62e0d",[1813],{"_key":1814,"_type":12,"marks":1815,"text":1816},"8223d7de8764",[],"{value}— The value of data that you want to use (100%FREE will use all available space)",[],{"_key":1819,"_type":8,"children":1820,"level":485,"listItem":692,"markDefs":1825,"style":33},"4e9e90302a36",[1821],{"_key":1822,"_type":12,"marks":1823,"text":1824},"a5bcb3852b38",[],"-i 4— Number of stripes (the numbers of disks needed to be used for stripes; ie: 4 x 4TB)",[],{"_key":1827,"_type":8,"children":1828,"level":485,"listItem":692,"markDefs":1833,"style":33},"17e87ae47240",[1829],{"_key":1830,"_type":12,"marks":1831,"text":1832},"81330ad7534a",[],"-I 128k— Size of a single stripe",[],{"_key":1835,"_type":8,"children":1836,"markDefs":1841,"style":33},"c44f230f7a23",[1837],{"_key":1838,"_type":12,"marks":1839,"text":1840},"477d3b3c7228",[],"Final scan to see the newly created and format LVM setup:",[],{"_key":1843,"_type":8,"children":1844,"markDefs":1848,"style":33},"f4cbcaa6b73c",[1845],{"_key":1846,"_type":12,"marks":1847,"text":1772},"131ef4076697",[],[],{"_key":1850,"_type":8,"children":1851,"markDefs":1856,"style":33},"5b6c70f130f6",[1852],{"_key":1853,"_type":12,"marks":1854,"text":1855},"f6a574db0a2d",[],"Now that we have an “ACTIVE” LV (\u002Fdev\u002Fnvmevg0\u002Fnvmelv0) to use as a combined storage, we will need to mount it and ensure it remains mounted automatically:",[],{"_key":1858,"_type":8,"children":1859,"markDefs":1864,"style":33},"2dcd35f95849",[1860],{"_key":1861,"_type":12,"marks":1862,"text":1863},"75d1414a3956",[],"\u002F\u002F Format the LV into btrfs\nsudo mkfs.btrfs \u002Fdev\u002Fnvmevg0\u002Fnvmelv0\n\n\u002F\u002F Find the UUID (copy the UUID for use shortly)\nsudo blkid \u002Fdev\u002Fnvmevg0\u002Fnvmelv0\n\n\u002F\u002F Create where you want to mount the LV (\u003Cname> is up to you eg: \u002Fdata)\nsudo mkdir \u002F\u003Cname>\n\n\u002F\u002F Open \u002Ffstab to add the LV (to remain mounted automatically)\nsudo nano \u002Fetc\u002Ffstab\n\n\u002F\u002FAdd the following line (\u003Cvalue> is the UUID from the blkid command):\nUUID=\u003Cvalue> btrfs \u002Fdata defaults 0 0\n\n(exit nano; CTRL+X, 'y', enter)\n\n\u002F\u002F Mount the LV\nsudo mount -a",[],{"_key":1866,"_type":8,"children":1867,"markDefs":1872,"style":33},"8ab7711dff1b",[1868],{"_key":1869,"_type":12,"marks":1870,"text":1871},"b8c8a1106c1f",[],"Now you can do a final confirmation that the storage is setup correctly:",[],{"_key":1874,"_type":8,"children":1875,"markDefs":1880,"style":33},"e739fdaf333a",[1876],{"_key":1877,"_type":12,"marks":1878,"text":1879},"037e63efb444",[],"df - h",[],{"_key":1882,"_type":8,"children":1883,"markDefs":1888,"style":672},"d655a1b1bd32",[1884],{"_key":1885,"_type":12,"marks":1886,"text":1887},"4000f02d1151",[],"Kubernetes Setup",[],{"_key":1890,"_type":8,"children":1891,"markDefs":1899,"style":33},"523c12babc62",[1892,1895],{"_key":1893,"_type":12,"marks":1894,"text":1539},"fc52cb6a52b9",[641],{"_key":1896,"_type":12,"marks":1897,"text":1898},"0bfaeeea7247",[],": Your BM server has now been configured to a point that it has a solid foundation to run applications and services. The next step is to configure the server so that it is capable of running a MAYANode. To do this, Kubernetes needs to be install, configured and optimised for MAYNode operations. This guide will use k8s (MicroK8s) as the Kubernetes client.",[],{"_key":1901,"_type":8,"children":1902,"markDefs":1907,"style":1082},"377dc1c463c1",[1903],{"_key":1904,"_type":12,"marks":1905,"text":1906},"131108744b9b",[],"Microk8s",[],{"_key":1909,"_type":8,"children":1910,"markDefs":1915,"style":33},"f43e6c28f689",[1911],{"_key":1912,"_type":12,"marks":1913,"text":1914},"43337b7ccc40",[],"Install microk8s:",[],{"_key":1917,"_type":8,"children":1918,"markDefs":1923,"style":33},"0b996092684d",[1919],{"_key":1920,"_type":12,"marks":1921,"text":1922},"cc7882347d4c",[],"# Check for the latest version of microk8s (1.28 in this example)\nsudo snap install microk8s --classic --channel=1.28\u002Fstable",[],{"_key":1925,"_type":8,"children":1926,"markDefs":1931,"style":33},"6ef42e29dfb3",[1927],{"_key":1928,"_type":12,"marks":1929,"text":1930},"b48c4906526e",[],"Confirm installation:",[],{"_key":1933,"_type":8,"children":1934,"markDefs":1939,"style":33},"78f44b43605c",[1935],{"_key":1936,"_type":12,"marks":1937,"text":1938},"36cf8cc94971",[],"sudo microk8s status\nsudo microk8s kubectl get nodes",[],{"_key":1941,"_type":8,"children":1942,"markDefs":1947,"style":33},"62c3059044cd",[1943],{"_key":1944,"_type":12,"marks":1945,"text":1946},"bd2550175854",[],"Enable add-ons (dns, hostpath-storage, metrics-server):",[],{"_key":1949,"_type":8,"children":1950,"markDefs":1955,"style":33},"7aa8a4dd02b2",[1951],{"_key":1952,"_type":12,"marks":1953,"text":1954},"644fba7c8673",[],"sudo microk8s enable dns hostpath-storage metrics-server metallb",[],{"_key":1957,"_type":8,"children":1958,"markDefs":1991,"style":33},"fd5bc1a2c347",[1959,1963,1967,1971,1975,1979,1983,1987],{"_key":1960,"_type":12,"marks":1961,"text":1962},"4772f99d2ed8",[641],"dns",{"_key":1964,"_type":12,"marks":1965,"text":1966},"cdc499bdf932",[]," — is required for hostnames between pods, it is important that this is installed before the first namespace\u002Fpod is created on the server.\n",{"_key":1968,"_type":12,"marks":1969,"text":1970},"66e3a9712d90",[641],"hostpath-storage",{"_key":1972,"_type":12,"marks":1973,"text":1974},"14d3c110cdce",[]," — is required to put pod storage on host NVMe.\n",{"_key":1976,"_type":12,"marks":1977,"text":1978},"5b076fd8f4b7",[641],"metrics-server",{"_key":1980,"_type":12,"marks":1981,"text":1982},"387f09b7542c",[]," — is required to run kubectl top node.\n",{"_key":1984,"_type":12,"marks":1985,"text":1986},"acc5458e5d86",[641],"metallb",{"_key":1988,"_type":12,"marks":1989,"text":1990},"3e0488c619a2",[]," — is required to assign IP to specific nodes.",[],{"_key":1993,"_type":8,"children":1994,"markDefs":1999,"style":33},"9fcda9867f35",[1995],{"_key":1996,"_type":12,"marks":1997,"text":1998},"b0a2e6289b92",[],"metallb will prompt to enter an IP range for MetalLB, enter any place-holder IP to be replaced later (1.2.3.4\u002F32).",[],{"_key":2001,"_type":8,"children":2002,"markDefs":2007,"style":1082},"cab6c539dabc",[2003],{"_key":2004,"_type":12,"marks":2005,"text":2006},"dcd238b56677",[],"Kube Environment Configuration",[],{"_key":2009,"_type":8,"children":2010,"markDefs":2015,"style":33},"ff0009d26bbc",[2011],{"_key":2012,"_type":12,"marks":2013,"text":2014},"45fd56a6900f",[],"This configuration allows the kube client and tools (such as k9s) to interact with our kube node\u002Fcluster.",[],{"_key":2017,"_type":8,"children":2018,"markDefs":2023,"style":33},"e4c03c634caa",[2019],{"_key":2020,"_type":12,"marks":2021,"text":2022},"ac91ce9cc252",[],"mkdir ~\u002F.kube\n\n\u002F\u002F Export Kube Config\nsudo microk8s config > .\u002F.kube\u002Fconfig\n\n\u002F\u002F Edit bashrc\nnano .bashrc",[],{"_key":2025,"_type":8,"children":2026,"markDefs":2031,"style":33},"6dce1d1ee6de",[2027],{"_key":2028,"_type":12,"marks":2029,"text":2030},"81c4370ce15f",[],"Add the following content in .bashrc and save file:",[],{"_key":2033,"_type":8,"children":2034,"markDefs":2039,"style":33},"cc99a78d1a89",[2035],{"_key":2036,"_type":12,"marks":2037,"text":2038},"e2c758c668db",[],"# Config for K9s\nexport KUBECONFIG=~\u002F.kube\u002Fconfig\n# Use nano instead of vi as default editor\nexport KUBE_EDITOR=\"nano\"\n# Autocomplete kubectl\nsource \u003C(kubectl completion bash)",[],{"_key":2041,"_type":8,"children":2042,"markDefs":2047,"style":33},"f0357d110cd8",[2043],{"_key":2044,"_type":12,"marks":2045,"text":2046},"fe83868cdfa7",[],"\u002F\u002F Reload bashrc to apply the changes to the current session\nsource .bashrc",[],{"_key":2049,"_type":8,"children":2050,"markDefs":2055,"style":33},"57209eadc171",[2051],{"_key":2052,"_type":12,"marks":2053,"text":2054},"e0cf33a2b983",[],"Install kubetcl:",[],{"_key":2057,"_type":8,"children":2058,"markDefs":2063,"style":33},"b540aee8a632",[2059],{"_key":2060,"_type":12,"marks":2061,"text":2062},"aad72db07f27",[],"sudo snap install kubectl --classic",[],{"_key":2065,"_type":8,"children":2066,"markDefs":2071,"style":1082},"d3497eacb09d",[2067],{"_key":2068,"_type":12,"marks":2069,"text":2070},"e7e4aea340b4",[],"Install k9s Console",[],{"_key":2073,"_type":8,"children":2074,"markDefs":2079,"style":33},"cb4562a92953",[2075],{"_key":2076,"_type":12,"marks":2077,"text":2078},"9d2a4982257f",[],"k9s is a simple and easy to use console to monitor\u002Finteract with the pods of our THORNode cluster (sudo snap install k9s does not work).",[],{"_key":2081,"_type":8,"children":2082,"markDefs":2087,"style":33},"07418ffe2289",[2083],{"_key":2084,"_type":12,"marks":2085,"text":2086},"0178e94aef2d",[],"\u002F\u002F Go to Home Directory\ncd\n\n\u002F\u002F Download k9s from their GitHub (check for latest version)\nwget https:\u002F\u002Fgithub.com\u002Fderailed\u002Fk9s\u002Freleases\u002Fdownload\u002Fv0.27.4\u002Fk9s_Linux_amd64.tar.gz\n\n\u002F\u002F Extract the downloaded k9s file\ntar -xvzf k9s_Linux_amd64.tar.gz\n\n\u002F\u002F Move k9s to Binary folder\nsudo mv k9s \u002Fbin\n\n\u002F\u002F Clean Up the unneccessary extra files\nrm LICENSE README.md k9s_Linux_amd64.tar.gz\n\n\u002F\u002F Open k9s to explore\nk9s\n\n\u002F\u002F To close k9s\nCtrl+C",[],{"_key":2089,"_type":8,"children":2090,"markDefs":2095,"style":33},"8c9ad6269a67",[2091],{"_key":2092,"_type":12,"marks":2093,"text":2094},"fdb80facee08",[],"For troubleshooting:",[],{"_key":2097,"_type":8,"children":2098,"markDefs":2103,"style":33},"e321297e1abe",[2099],{"_key":2100,"_type":12,"marks":2101,"text":2102},"80e35356fda7",[],"\u002F\u002F Get Environment Info (Config and Log files location)\nk9s info",[],{"_key":2105,"_type":8,"children":2106,"markDefs":2119,"style":33},"b423d0167696",[2107,2111,2115],{"_key":2108,"_type":12,"marks":2109,"text":2110},"752354d26bf0",[],"Note: “",{"_key":2112,"_type":12,"marks":2113,"text":2114},"b2955806a5eb",[1023],"ERR refine failed error=”Invalid kubeconfig context detected",{"_key":2116,"_type":12,"marks":2117,"text":2118},"1fe72f06f89f",[],"” indicates that the KUBECONFIG variable was not found.",[],{"_key":2121,"_type":8,"children":2122,"markDefs":2127,"style":1082},"5d39fd40ce70",[2123],{"_key":2124,"_type":12,"marks":2125,"text":2126},"914eac3ad911",[],"Setup StorageClass:",[],{"_key":2129,"_type":8,"children":2130,"markDefs":2135,"style":33},"52b92a6a5c9f",[2131],{"_key":2132,"_type":12,"marks":2133,"text":2134},"d5a31e2dd39f",[],"StorageClass indicate where Microk8s will store pods storage on our BM server; this is our newly created LVM storage.",[],{"_key":2137,"_type":8,"children":2138,"markDefs":2143,"style":33},"a9ab63f85edf",[2139],{"_key":2140,"_type":12,"marks":2141,"text":2142},"362fa93fa261",[],"This is not required when adding anew kube node to a cluster.",[],{"_key":2145,"_type":8,"children":2146,"markDefs":2151,"style":33},"da2030c30d14",[2147],{"_key":2148,"_type":12,"marks":2149,"text":2150},"e838bd0f1027",[],"Prepare StorageClass object for NVMe Raid:",[],{"_key":2153,"_type":8,"children":2154,"markDefs":2159,"style":33},"68a5adc61c04",[2155],{"_key":2156,"_type":12,"marks":2157,"text":2158},"383354fcf087",[],"cd ~\nmkdir mk8sconfig\nnano mk8sconfig\u002Fnvme-hostpath-sc.yaml",[],{"_key":2161,"_type":8,"children":2162,"markDefs":2167,"style":33},"d6463bf80ad4",[2163],{"_key":2164,"_type":12,"marks":2165,"text":2166},"d3cd5e206d79",[],"Copy the following content into the nvme-hostpath-sc.yaml:",[],{"_key":2169,"_type":8,"children":2170,"markDefs":2175,"style":33},"f17431c69cea",[2171],{"_key":2172,"_type":12,"marks":2173,"text":2174},"3afdf77498c3",[],"# nvme-hostpath-sc.yaml\nkind: StorageClass\napiVersion: storage.k8s.io\u002Fv1\nmetadata:\n  name: nvme-hostpath\nprovisioner: microk8s.io\u002Fhostpath\nreclaimPolicy: Delete\nparameters:\n  pvDir: \u002Fdata\nvolumeBindingMode: WaitForFirstConsumer",[],{"_key":2177,"_type":8,"children":2178,"markDefs":2183,"style":828},"c4055eb8fe40",[2179],{"_key":2180,"_type":12,"marks":2181,"text":2182},"b763e1c1627a",[],"pvDir:\u002Fdata",[],{"_key":2185,"_type":8,"children":2186,"markDefs":2191,"style":33},"33b95559f8e8",[2187],{"_key":2188,"_type":12,"marks":2189,"text":2190},"d42f0a61a201",[],"Create StorageClass:",[],{"_key":2193,"_type":8,"children":2194,"markDefs":2199,"style":33},"e220a96469c2",[2195],{"_key":2196,"_type":12,"marks":2197,"text":2198},"18dbfdd411da",[],"kubectl apply -f mk8sconfig\u002Fnvme-hostpath-sc.yaml\n\n\u002F\u002F Confirm creation of new StorageClass\nkubectl get storageclass",[],{"_key":2201,"_type":8,"children":2202,"markDefs":2207,"style":33},"91014bd05005",[2203],{"_key":2204,"_type":12,"marks":2205,"text":2206},"938d1d17bdfb",[],"Set Default StorageClass:",[],{"_key":2209,"_type":8,"children":2210,"markDefs":2215,"style":33},"d9a60b856c1e",[2211],{"_key":2212,"_type":12,"marks":2213,"text":2214},"6b447ee25bce",[],"\u002F\u002F Display StorageClass\nkubectl get storageclass\n\n\u002F\u002F Set Default\nkubectl patch storageclass microk8s-hostpath -p '{\"metadata\": {\"annotations\":{\"storageclass.kubernetes.io\u002Fis-default-class\":\"false\"}}}'\nkubectl patch storageclass nvme-hostpath -p '{\"metadata\": {\"annotations\":{\"storageclass.kubernetes.io\u002Fis-default-class\":\"true\"}}}'\n\n\u002F\u002F Confirm the new Default\nkubectl get storageclass",[],{"_key":2217,"_type":8,"children":2218,"markDefs":2227,"style":33},"7421a3cfffc5",[2219,2223],{"_key":2220,"_type":12,"marks":2221,"text":2222},"b0d260cb0abf",[641],"Note",{"_key":2224,"_type":12,"marks":2225,"text":2226},"a5c9950bd3ba",[],": If using a multi-node kube cluster, the same storageClass will be used for each node in the cluster. They will all refer to the same path (ie: \u002Fdata4) which will be interpreted locally (each to their own \u002Fdata4 folder) on the server a new pod is created. It is important that each server of the cluster uses the same path for their data folder.",[],{"_key":2229,"_type":8,"children":2230,"markDefs":2235,"style":672},"dd1d71c3a615",[2231],{"_key":2232,"_type":12,"marks":2233,"text":2234},"80297cce8e05",[],"WireGuard Proxy",[],{"_key":2237,"_type":8,"children":2238,"markDefs":2246,"style":33},"f3c2e08d2888",[2239,2242],{"_key":2240,"_type":12,"marks":2241,"text":1539},"90ac1ca7c726",[641],{"_key":2243,"_type":12,"marks":2244,"text":2245},"ce156884e6ca",[],": Holistically what you are trying to achieve is to setup a new Virtual Machine (VM), via a cloud provider (like DO or AWS etc), to act as the proxy for your BM node which will be connected together via a WireGuard (VPN) tunnel. This will use the randomly assigned VM static IP in order to hide your actual IP and hence hide your physical location behind the proxy. Incoming traffic will be routed from the VM proxy to the BM node but the node will use your local internet connection to download\u002Fsync the chain-daemons etc; this is why it is important to have 1GPBS internet for the BM server.",[],{"_key":2248,"_type":8,"children":2249,"markDefs":2263,"style":33},"fdaa04c87d2e",[2250,2254,2259],{"_key":2251,"_type":12,"marks":2252,"text":2253},"aa0d558eaf4a",[],"D5 Sammy's guide is great if you know what you are doing but we found the linked ",{"_key":2255,"_type":12,"marks":2256,"text":2258},"20c06318db7a",[2257],"183f2cce21","DO WireGuard guide",{"_key":2260,"_type":12,"marks":2261,"text":2262},"af71b2f3826f",[]," to be (unsurprisingly) more comprehensive. To remove as much potential for user error, we stuck with the variables provided by the guide (eg: wg0 and 10.8.0.1\u002F24 etc). Once we confirmed the service was working, we changed the variables to something less obvious and more unique to our connection (always keep 'em guessing!).",[2264],{"_key":2257,"_type":26,"link":2265},{"anchor":28,"getParameters":28,"isInternal":190,"openInNewTab":28,"title":28,"url":2266},"https:\u002F\u002Fwww.digitalocean.com\u002Fcommunity\u002Ftutorials\u002Fhow-to-set-up-wireguard-on-ubuntu-20-04?ref=blog.thorchain.org",{"_key":2268,"_type":8,"children":2269,"markDefs":2291,"style":33},"cbb77f3e50fe",[2270,2274,2278,2282,2287],{"_key":2271,"_type":12,"marks":2272,"text":2273},"0771e8f1fbde",[],"As a very general rule, pay very close attention to the ",{"_key":2275,"_type":12,"marks":2276,"text":2277},"9334cb2fb37e",[641],"exact IP",{"_key":2279,"_type":12,"marks":2280,"text":2281},"4da1a59242db",[]," being asked of you by the guide (eg: 1.8.0.0 or 1.8.0.1 or 1.8.0.2 etc in the wg0.conf). This might feel obvious but we misplaced a single, final digit (putting .1 instead of .0) and it took a lot of focus and frustration to find and fix it. Further more, the subnet (ie: 1.8.0.1\u002F24 or 1.8.0.1\u002F32) is important, ensure you ",{"_key":2283,"_type":12,"marks":2284,"text":2286},"29d3cb3e055d",[2285],"1c9b94353b","allocate the correct subnet",{"_key":2288,"_type":12,"marks":2289,"text":2290},"9de221d61efc",[]," while setting up WireGuard.",[2292],{"_key":2285,"_type":26,"link":2293},{"anchor":28,"getParameters":28,"isInternal":190,"openInNewTab":28,"title":28,"url":2294},"https:\u002F\u002Fwww.freecodecamp.org\u002Fnews\u002Fsubnet-cheat-sheet-24-subnet-mask-30-26-27-29-and-other-ip-address-cidr-network-references\u002F?ref=blog.thorchain.org",{"_key":2296,"_type":8,"children":2297,"markDefs":2302,"style":33},"c23e1c778b04",[2298],{"_key":2299,"_type":12,"marks":2300,"text":2301},"60a0f02f1151",[],"Don't run sudo systemctl \u003Ccommand> wg_quick@wg0.service (commands being enable, start, status, restart, reload etc) until the very end of the WireGuard setup. Until you have everything finished and working, just use sudo wg-quick up wg0 (to bring up the service) or sudo wg-quick down wg0 (to bring down the service). This will allow you to keep editing and changing the wg0.conf file (while the network connection is down) without having to reload\u002Frestart the service. Once you have a good connection (which you can see by running sudo wg and witnessing the “Latest handshake” and matching the “transfer” between the Proxy and the BM) you can bring the service down, update all of the variables slowly\u002Fdeliberately and then bring up and test the connection again. If it is working as advertised then you can run the 3 sudo systemctl \u003Ccommand> wg_quick@wg0.service commands and have it automated.",[],{"_key":2304,"_type":8,"children":2305,"markDefs":2310,"style":1082},"26b6fadf3c27",[2306],{"_key":2307,"_type":12,"marks":2308,"text":2309},"3a170953cee7",[],"VM Proxy Setup",[],{"_key":2312,"_type":8,"children":2313,"markDefs":2327,"style":33},"29cebda7add7",[2314,2318,2323],{"_key":2315,"_type":12,"marks":2316,"text":2317},"346283953cee",[],"Once you have ",{"_key":2319,"_type":12,"marks":2320,"text":2322},"9e3f85b6df36",[2321],"3fd7e6a2e6","created and setup a basic VM",{"_key":2324,"_type":12,"marks":2325,"text":2326},"8d1707397fc6",[]," (the cheapest is fine; 512MB memory, 10GB SSD storage and 1 vCPU = $4USD\u002Fmonth), update the OS:",[2328],{"_key":2321,"_type":26,"link":2329},{"anchor":28,"getParameters":28,"isInternal":190,"openInNewTab":28,"title":28,"url":1452},{"_key":2331,"_type":8,"children":2332,"markDefs":2337,"style":33},"4d39398d7c44",[2333],{"_key":2334,"_type":12,"marks":2335,"text":2336},"3e7cfddab045",[],"sudo apt update\nsudo apt upgrade",[],{"_key":2339,"_type":8,"children":2340,"markDefs":2345,"style":828},"1ccbaf588e19",[2341],{"_key":2342,"_type":12,"marks":2343,"text":2344},"b0df2675655b",[],"Note: If prompted for merging, select the first option, “install the package maintainer’s version”.",[],{"_key":2347,"_type":8,"children":2348,"markDefs":2353,"style":33},"a3a901b933bd",[2349],{"_key":2350,"_type":12,"marks":2351,"text":2352},"0ffa6c6fa952",[],"Install Networking and Monitoring Tools:",[],{"_key":2355,"_type":8,"children":2356,"markDefs":2361,"style":33},"edc496217433",[2357],{"_key":2358,"_type":12,"marks":2359,"text":2360},"e492adefcb25",[],"sudo apt install nmap net-tools iperf3 speedtest-cli",[],{"_key":2363,"_type":8,"children":2364,"level":485,"listItem":692,"markDefs":2369,"style":33},"683be1e1189a",[2365],{"_key":2366,"_type":12,"marks":2367,"text":2368},"2c00ee40ddf5",[],"nmap — Network Mapper",[],{"_key":2371,"_type":8,"children":2372,"level":485,"listItem":692,"markDefs":2377,"style":33},"85e01f8758e4",[2373],{"_key":2374,"_type":12,"marks":2375,"text":2376},"13eaf6fe8e6b",[],"net-tools — Controlling network subsystem",[],{"_key":2379,"_type":8,"children":2380,"level":485,"listItem":692,"markDefs":2385,"style":33},"5ee5f7a44cc3",[2381],{"_key":2382,"_type":12,"marks":2383,"text":2384},"327b5b8ee8eb",[],"iperf3 — Used to test latency between Proxy and BM",[],{"_key":2387,"_type":8,"children":2388,"level":485,"listItem":692,"markDefs":2393,"style":33},"f396c2c49abd",[2389],{"_key":2390,"_type":12,"marks":2391,"text":2392},"2eb2223fd906",[],"speedtest-cli — Test the Up\u002FDown speed of the Proxy and\u002For BM",[],{"_key":2395,"_type":8,"children":2396,"markDefs":2401,"style":33},"7607aa757220",[2397],{"_key":2398,"_type":12,"marks":2399,"text":2400},"231c88448fd1",[],"Install WireGuard:",[],{"_key":2403,"_type":8,"children":2404,"markDefs":2409,"style":33},"1e4bd9b0a7d9",[2405],{"_key":2406,"_type":12,"marks":2407,"text":2408},"12b8ec2d5925",[],"sudo apt install wireguard",[],{"_key":2411,"_type":8,"children":2412,"markDefs":2417,"style":33},"5c7d346a6f5a",[2413],{"_key":2414,"_type":12,"marks":2415,"text":2416},"5061a8fc3de3",[],"Restart to reload services and new kernel if required:",[],{"_key":2419,"_type":8,"children":2420,"markDefs":2425,"style":33},"ba8fb3445ea4",[2421],{"_key":2422,"_type":12,"marks":2423,"text":2424},"4ad622a4b09d",[],"sudo reboot",[],{"_key":2427,"_type":8,"children":2428,"markDefs":2433,"style":33},"3de53d8a26f5",[2429],{"_key":2430,"_type":12,"marks":2431,"text":2432},"2d785fe9add4",[],"Generate WireGuard Private and Public KeyPairs:",[],{"_key":2435,"_type":8,"children":2436,"markDefs":2441,"style":33},"1c70a326b83c",[2437],{"_key":2438,"_type":12,"marks":2439,"text":2440},"c63ba1705828",[],"\u002F\u002F Generate KeyPair for WireGuard Server (The VM Proxy acting as the WireGuard Server)\nwg genkey | sudo tee \u002Fetc\u002Fwireguard\u002Fwg0server.key\nsudo chmod go= \u002Fetc\u002Fwireguard\u002Fwg0server.key\nsudo cat \u002Fetc\u002Fwireguard\u002Fwg0server.key | wg pubkey | sudo tee \u002Fetc\u002Fwireguard\u002Fwg0server.pub\n\n\u002F\u002F Generate KeyPair for THORChain Node (The BM server acting as the WireGuard Client)\nwg genkey | sudo tee \u002Fetc\u002Fwireguard\u002Fwg0node.key\nsudo chmod go= \u002Fetc\u002Fwireguard\u002Fwg0node.key\nsudo cat \u002Fetc\u002Fwireguard\u002Fwg0node.key | wg pubkey | sudo tee \u002Fetc\u002Fwireguard\u002Fwg0node.pub",[],{"_key":2443,"_type":8,"children":2444,"markDefs":2448,"style":828},"59592a1d9e89",[2445],{"_key":2446,"_type":12,"marks":2447,"text":2222},"595146f71468",[641],[],{"_key":2450,"_type":8,"children":2451,"markDefs":2456,"style":33},"e7824572e9d2",[2452],{"_key":2453,"_type":12,"marks":2454,"text":2455},"c5bb9ddabd9d",[],"Create Config File for Server",[],{"_key":2458,"_type":8,"children":2459,"markDefs":2464,"style":33},"01eef97ebaaa",[2460],{"_key":2461,"_type":12,"marks":2462,"text":2463},"4c9f51047e81",[],"sudo nano \u002Fetc\u002Fwireguard\u002Fwg0.conf",[],{"_key":2466,"_type":8,"children":2467,"markDefs":2472,"style":33},"ffd228fb6037",[2468],{"_key":2469,"_type":12,"marks":2470,"text":2471},"e9b6c3fbe52a",[],"Copy the following contents into wg0.conf:",[],{"_key":2474,"_type":8,"children":2475,"markDefs":2480,"style":33},"0fad46c7b533",[2476],{"_key":2477,"_type":12,"marks":2478,"text":2479},"1f37ebf7c798",[],"[Interface]\nAddress = 10.8.0.1\u002F24\nPrivateKey = \u003Cwg0server.key>\nListenPort = 51820\nSaveConfig = false\n\nPostUp = ufw route allow in on wg0 out on eth0\nPostUp = iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE\n\nPreUp = iptables -A FORWARD -i eth0 -o wg0 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT\nPreUp = iptables -A FORWARD -i wg0 -o eth0 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT\nPreUp = iptables -A FORWARD -i eth0 -o wg0 -p tcp --syn --match multiport --dports 6040,5040,27146,27147 -m conntrack --ctstate NEW -j ACCEPT\nPreUp = iptables -t nat -A PREROUTING -i eth0 -p tcp --match multiport --dports 6040,5040,27146,27147 -j DNAT --to-destination 10.8.0.2\nPreUp = iptables -t nat -A POSTROUTING -o wg0 -p tcp --match multiport --dports 6040,5040,27146,27147 -d 10.8.0.2 -j SNAT --to-source 10.8.0.1\n\nPreDown = ufw route delete allow in on wg0 out on eth0\nPreDown = iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE\n\nPostDown = iptables -D FORWARD -i eth0 -o wg0 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT\nPostDown = iptables -D FORWARD -i wg0 -o eth0 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT\nPostDown = iptables -D FORWARD -i eth0 -o wg0 -p tcp --syn --match multiport --dports 6040,5040,27146,27147 -m conntrack --ctstate NEW -j ACCEPT\nPostDown = iptables -t nat -D PREROUTING -i eth0 -p tcp --match multiport --dports 6040,5040,27146,27147 -j DNAT --to-destination 10.8.0.2\nPostDown = iptables -t nat -D POSTROUTING -o wg0 -p tcp --match multiport --dports 6040,5040,27146,27147 -d 10.8.0.2 -j SNAT --to-source 10.8.0.1\n\n# Node\n[Peer]\nPublicKey = \u003Cwg0node.pub>\nAllowedIPs = 10.8.0.2\u002F32",[],{"_key":2482,"_type":8,"children":2483,"markDefs":2488,"style":33},"701bda35470a",[2484],{"_key":2485,"_type":12,"marks":2486,"text":2487},"304ca9122c52",[],"Variables:",[],{"_key":2490,"_type":8,"children":2491,"level":485,"listItem":692,"markDefs":2496,"style":33},"2ba0d56bcc7d",[2492],{"_key":2493,"_type":12,"marks":2494,"text":2495},"ac4bf20f5fef",[],"Replace \u003Cwg0server.key> and \u003Cwg0node.pub> with the long Alpha-Numeric keys provided before.",[],{"_key":2498,"_type":8,"children":2499,"level":485,"listItem":692,"markDefs":2512,"style":33},"d622967a7e08",[2500,2504,2509],{"_key":2501,"_type":12,"marks":2502,"text":2503},"5fdadf6b4b52",[],"IPv4 Range should be randomly selected by yourself. Replace 10.8.0.x with something of your choosing; ",{"_key":2505,"_type":12,"marks":2506,"text":2508},"57c25bacc1ea",[2507],"36c03e5db7","refer to DigitalOcean Guide for the available ranges",{"_key":2510,"_type":12,"marks":2511,"text":1578},"126b11477dd1",[],[2513],{"_key":2507,"_type":26,"link":2514},{"anchor":28,"getParameters":28,"isInternal":190,"openInNewTab":28,"title":28,"url":2515},"https:\u002F\u002Fwww.digitalocean.com\u002Fcommunity\u002Ftutorials\u002Fhow-to-set-up-wireguard-on-ubuntu-20-04?ref=blog.thorchain.org#step-2-a-choosing-an-ipv4-range",{"_key":2517,"_type":8,"children":2518,"level":485,"listItem":692,"markDefs":2523,"style":33},"f3b1ea588894",[2519],{"_key":2520,"_type":12,"marks":2521,"text":2522},"49852b2880f1",[],"eth0 is the most common Ethernet Interface but yours may be labelled differently.",[],{"_key":2525,"_type":8,"children":2526,"markDefs":2531,"style":33},"9a26ad079cf7",[2527],{"_key":2528,"_type":12,"marks":2529,"text":2530},"17e5370dee12",[],"Enable IP Forwarding to ensure you BM server can use the VM proxy's public IP:",[],{"_key":2533,"_type":8,"children":2534,"markDefs":2539,"style":33},"f00e960adf75",[2535],{"_key":2536,"_type":12,"marks":2537,"text":2538},"a26710198253",[],"sudo nano \u002Fetc\u002Fsysctl.conf\n\n\u002F\u002F Unhash the following (to allow IPv4 forwarding)\nnet.ipv4.ip_forward=1\n\n\u002F\u002F Apply Changes\nsudo sysctl -p",[],{"_key":2541,"_type":8,"children":2542,"markDefs":2547,"style":33},"7fd7bc4249ef",[2543],{"_key":2544,"_type":12,"marks":2545,"text":2546},"a55d9692aa9f",[],"Bring up WireGuard manually:",[],{"_key":2549,"_type":8,"children":2550,"markDefs":2555,"style":33},"caa032734f73",[2551],{"_key":2552,"_type":12,"marks":2553,"text":2554},"5d9969864e13",[],"sudo wg-quick up wg0",[],{"_key":2557,"_type":8,"children":2558,"markDefs":2562,"style":828},"f633d3c8df2a",[2559],{"_key":2560,"_type":12,"marks":2561,"text":2222},"da0ee6e2caf3",[641],[],{"_key":2564,"_type":8,"children":2565,"markDefs":2570,"style":1082},"5674b1455f3b",[2566],{"_key":2567,"_type":12,"marks":2568,"text":2569},"54c221308414",[],"BM Server Setup",[],{"_key":2572,"_type":8,"children":2573,"markDefs":2578,"style":33},"76c5b7330859",[2574],{"_key":2575,"_type":12,"marks":2576,"text":2577},"552ea53decbc",[],"Back on the BM Server, configure WireGuard to connect to the VM Proxy that we just created.",[],{"_key":2580,"_type":8,"children":2581,"markDefs":2586,"style":33},"ba72e6d5902f",[2582],{"_key":2583,"_type":12,"marks":2584,"text":2585},"d6a77919c730",[],"Install WireGuard on the BM server:",[],{"_key":2588,"_type":8,"children":2589,"markDefs":2593,"style":33},"32b7e4dfb7cb",[2590],{"_key":2591,"_type":12,"marks":2592,"text":2408},"6b9209caa0a7",[],[],{"_key":2595,"_type":8,"children":2596,"markDefs":2601,"style":33},"ea9c741f2b62",[2597],{"_key":2598,"_type":12,"marks":2599,"text":2600},"8339b5d89af2",[],"Install the WireGuard dependency:",[],{"_key":2603,"_type":8,"children":2604,"markDefs":2609,"style":33},"0fcb837f568f",[2605],{"_key":2606,"_type":12,"marks":2607,"text":2608},"8fd8037c6146",[],"sudo apt install openresolv",[],{"_key":2611,"_type":8,"children":2612,"markDefs":2617,"style":33},"652dac936bac",[2613],{"_key":2614,"_type":12,"marks":2615,"text":2616},"a7f8fc1e7d4d",[],"Create the wg0.conf file for the BM server:",[],{"_key":2619,"_type":8,"children":2620,"markDefs":2624,"style":33},"95ed4f2cd545",[2621],{"_key":2622,"_type":12,"marks":2623,"text":2463},"f01eba12cbcb",[],[],{"_key":2626,"_type":8,"children":2627,"markDefs":2631,"style":33},"6a85817036c9",[2628],{"_key":2629,"_type":12,"marks":2630,"text":2471},"33ac517cd96f",[],[],{"_key":2633,"_type":8,"children":2634,"markDefs":2639,"style":33},"672d00e2199c",[2635],{"_key":2636,"_type":12,"marks":2637,"text":2638},"251aaae88533",[],"[Interface]\nAddress = 10.8.0.2\u002F24\nPrivateKey = \u003Cwg0node.key>\nDNS = 9.9.9.9\nSaveConfig = false\n\n[Peer]\nPublicKey = \u003Cwg0server.pub>\nEndPoint = \u003CProxy Server Public IP>:51820\nAllowedIPs = 10.8.0.0\u002F24\nPersistentKeepalive = 25",[],{"_key":2641,"_type":8,"children":2642,"markDefs":2646,"style":33},"b3cdbdccfe4a",[2643],{"_key":2644,"_type":12,"marks":2645,"text":2487},"d7af99f450b5",[],[],{"_key":2648,"_type":8,"children":2649,"level":485,"listItem":692,"markDefs":2654,"style":33},"f36be18e5972",[2650],{"_key":2651,"_type":12,"marks":2652,"text":2653},"f5541b89a0bf",[],"Replace \u003Cwg0node.key> and \u003Cwg0server.pub> with the long Alpha-Numeric keys provided before.",[],{"_key":2656,"_type":8,"children":2657,"level":485,"listItem":692,"markDefs":2662,"style":33},"7645d0ef9064",[2658],{"_key":2659,"_type":12,"marks":2660,"text":2661},"c0a324bbfd1b",[],"IPv4 Range must match those originally configured in the VM proxy.",[],{"_key":2664,"_type":8,"children":2665,"level":485,"listItem":692,"markDefs":2670,"style":33},"1594b9dcd970",[2666],{"_key":2667,"_type":12,"marks":2668,"text":2669},"c02cc5adfef8",[],"\u003CProxy Service Public IP> is the Public IP for the VM proxy. The Proxy Service Public IP is the IP you use to access the VM (eg: ssh root@Public IP).",[],{"_key":2672,"_type":8,"children":2673,"markDefs":2677,"style":33},"284a8e0bfba5",[2674],{"_key":2675,"_type":12,"marks":2676,"text":2546},"46bf408753d3",[],[],{"_key":2679,"_type":8,"children":2680,"markDefs":2684,"style":33},"ba2dc81f2954",[2681],{"_key":2682,"_type":12,"marks":2683,"text":2554},"48fd638e6eb3",[],[],{"_key":2686,"_type":8,"children":2687,"markDefs":2692,"style":33},"9392cb9a410b",[2688],{"_key":2689,"_type":12,"marks":2690,"text":2691},"fe79465eb0c5",[],"Check for a successful connection. You will run this command both on the BM server and the VM proxy. Both should list a 'Latest Handshake' and the data transfer should match.",[],{"_key":2694,"_type":8,"children":2695,"markDefs":2700,"style":33},"05ab87210e1c",[2696],{"_key":2697,"_type":12,"marks":2698,"text":2699},"ef2e8f87ca70",[],"sudo wg show",[],{"_key":2702,"_type":8,"children":2703,"markDefs":2708,"style":33},"faa35cd3f896",[2704],{"_key":2705,"_type":12,"marks":2706,"text":2707},"5e95a46d701b",[],"From your BM server, conduct a Ping Test to your VM proxy:",[],{"_key":2710,"_type":8,"children":2711,"markDefs":2716,"style":33},"824dc4b663f6",[2712],{"_key":2713,"_type":12,"marks":2714,"text":2715},"b543784228e0",[],"ping 10.8.0.1",[],{"_key":2718,"_type":8,"children":2719,"markDefs":2724,"style":33},"4bbac2423a0f",[2720],{"_key":2721,"_type":12,"marks":2722,"text":2723},"249ca51867a4",[],"Now that you have established a connection, you can bring down the service and slowly change all the variables:",[],{"_key":2726,"_type":8,"children":2727,"markDefs":2732,"style":33},"9ac8fdfb20a9",[2728],{"_key":2729,"_type":12,"marks":2730,"text":2731},"6bc46b4848f6",[],"sudo wg-quick down wg0",[],{"_key":2734,"_type":8,"children":2735,"markDefs":2740,"style":33},"76cf79bdd33f",[2736],{"_key":2737,"_type":12,"marks":2738,"text":2739},"0968a1dadfaf",[],"After you have changed and tested all of the components that you want, you can bring WireGuard back up and set as an automatic service. Start by running all of these command on the VM proxy and then do the BM server:",[],{"_key":2742,"_type":8,"children":2743,"markDefs":2748,"style":33},"2a81fd3d5ff0",[2744],{"_key":2745,"_type":12,"marks":2746,"text":2747},"dd25d1c6d91c",[],"sudo systemctl enable wg-quick@wg0.service\nsudo systemctl start wg-quick@wg0.service\nsudo systemctl status wg-quick@wg0.service",[],{"_key":2750,"_type":8,"children":2751,"markDefs":2756,"style":33},"901e1a946589",[2752],{"_key":2753,"_type":12,"marks":2754,"text":2755},"b9fa786676b1",[],"On both the VM proxy and the BM server, setup the firewall configuration (these must be done in this order):",[],{"_key":2758,"_type":8,"children":2759,"markDefs":2764,"style":33},"2de8bea884bc",[2760],{"_key":2761,"_type":12,"marks":2762,"text":2763},"86040226208b",[],"sudo ufw reset\nsudo ufw default allow incoming\nsudo ufw default allow outgoing\nsudo ufw allow in on eth0 to any port 22\nsudo ufw allow in on eth0 to any port 5040\nsudo ufw allow in on eth0 to any port 6040\nsudo ufw allow in on eth0 to any port 27146\nsudo ufw allow in on eth0 to any port 27147\nsudo ufw allow in on eth0 to any port 51820\nsudo ufw deny in on eth0\nsudo ufw enable\nsudo ufw status numbered",[],{"_key":2766,"_type":8,"children":2767,"markDefs":2776,"style":33},"3d827e770b12",[2768,2772],{"_key":2769,"_type":12,"marks":2770,"text":2771},"66cfbf25603b",[641],"Note:",{"_key":2773,"_type":12,"marks":2774,"text":2775},"535f3002327a",[]," ufw being enabled is mandatory. PostUp = ufw route allow... will silently do nothing if ufw is disabled and this will break the forwarding rules. Your node will not pass the health checks (http:\u002F\u002F\u003CPublicIP>:27147\u002Fhealth?).",[],{"_key":2778,"_type":8,"children":2779,"markDefs":2784,"style":33},"a0b05b828546",[2780],{"_key":2781,"_type":12,"marks":2782,"text":2783},"aee33a6ca87f",[],"Try connecting another SSH Session before closing the current one to confirm that you can still access the VM proxy and BM server after the firewall changes.",[],{"_key":2786,"_type":8,"children":2787,"markDefs":2792,"style":33},"2cf1516a7a3e",[2788],{"_key":2789,"_type":12,"marks":2790,"text":2791},"1629c100c056",[],"From a seperate computer, test that the Ports:",[],{"_key":2794,"_type":8,"children":2795,"markDefs":2800,"style":33},"9a1a59a5971d",[2796],{"_key":2797,"_type":12,"marks":2798,"text":2799},"1934dd47d131",[],"nmap -Pn -p 22,80,5040,6040,8080,26656,26657,27146,27147,51820 \u003CProxyPublicIP>",[],{"_key":2802,"_type":8,"children":2803,"markDefs":2808,"style":33},"c3f5c9361337",[2804],{"_key":2805,"_type":12,"marks":2806,"text":2807},"ad56f0f379bd",[],"After everything is configured the following ports should be Open: 22, 5040, 6040, 27146, 27147, 51820, everything else would be Filtered. If it does not report like this (the Ports may need an active service to report 'Open', you can check the individual Ports:",[],{"_key":2810,"_type":8,"children":2811,"markDefs":2816,"style":33},"baefdc848105",[2812],{"_key":2813,"_type":12,"marks":2814,"text":2815},"8715caa9d6ce",[],"\u002F\u002F On BM Server (replacing \u003CPort> with 22, 5040, 6040. 27146, 27147 or 51820)\nnc -l \u003CPort>\n\n\u002F\u002F On the independent computer (\u003CProxy Public IP> being the forwarded proxy IP)\nnc \u003CProxy Public IP> \u003CPort>",[],{"_key":2818,"_type":8,"children":2819,"markDefs":2824,"style":1082},"d282ce79d496",[2820],{"_key":2821,"_type":12,"marks":2822,"text":2823},"bcad6db01f25",[],"Multiple Nodes",[],{"_key":2826,"_type":8,"children":2827,"markDefs":2832,"style":33},"5a380f8200c4",[2828],{"_key":2829,"_type":12,"marks":2830,"text":2831},"5381e8364929",[],"Each BM node will require its own Static Public IP and hence its own VM proxy. All of the instructions are the same but the connections are managed with wg1.conf and wg2.conf that have their own unique variables (IPv4 range, Private\u002FPublic Key pairs and wg1 labelling).",[],{"_key":2834,"_type":8,"children":2835,"markDefs":2840,"style":33},"e71150a2e491",[2836],{"_key":2837,"_type":12,"marks":2838,"text":2839},"964c59101eff",[],"Repeat the full guide to create a WireGuard Proxy for each Validator Node.",[],{"_key":2842,"_type":8,"children":2843,"markDefs":2851,"style":828},"67c3c98f9d83",[2844,2847],{"_key":2845,"_type":12,"marks":2846,"text":2222},"6aabcfe5c8c6",[641],{"_key":2848,"_type":12,"marks":2849,"text":2850},"c2a4b78f445d",[],"sudo wg-quick up wg1",[],{"_key":2853,"_type":8,"children":2854,"markDefs":2859,"style":1082},"bc631af2a9f8",[2855],{"_key":2856,"_type":12,"marks":2857,"text":2858},"b31c309eab2f",[],"Configure MetalLb on BM server",[],{"_key":2861,"_type":8,"children":2862,"markDefs":2867,"style":33},"1d68b99610e6",[2863],{"_key":2864,"_type":12,"marks":2865,"text":2866},"325d84e8603b",[],"Configure the WireGuard IP in metallb:",[],{"_key":2869,"_type":8,"children":2870,"markDefs":2875,"style":33},"85be5ea9945f",[2871],{"_key":2872,"_type":12,"marks":2873,"text":2874},"221a64f1c9b6",[],"kubectl edit ipaddresspool default-addresspool --namespace=metallb-system",[],{"_key":2877,"_type":8,"children":2878,"markDefs":2883,"style":33},"f3bd5d0f5243",[2879],{"_key":2880,"_type":12,"marks":2881,"text":2882},"2caae7236b57",[],"Add the IP to the IP list:",[],{"_key":2885,"_type":8,"children":2886,"markDefs":2891,"style":33},"915edabe9a10",[2887],{"_key":2888,"_type":12,"marks":2889,"text":2890},"fad92c70ccf1",[],"spec:\n  addresses:\n  - 10.8.0.2\u002F32",[],{"_key":2893,"_type":8,"children":2894,"markDefs":2899,"style":33},"25d4007ee00a",[2895],{"_key":2896,"_type":12,"marks":2897,"text":2898},"a1e2cabe7839",[],"Confirm Change",[],{"_key":2901,"_type":8,"children":2902,"markDefs":2907,"style":33},"93da935dfd5e",[2903],{"_key":2904,"_type":12,"marks":2905,"text":2906},"fa915256c6f1",[],"kubectl describe ipaddresspool default-addresspool --namespace=metallb-system",[],{"_key":2909,"_type":8,"children":2910,"markDefs":2915,"style":33},"6fc39e8e1528",[2911],{"_key":2912,"_type":12,"marks":2913,"text":2914},"d0f63b4ca95d",[],"Multiple IPs can be added to the IP list; repeat for each VPN Tunnel.",[],{"_key":2917,"_type":8,"children":2918,"markDefs":2923,"style":672},"f907b04389e2",[2919],{"_key":2920,"_type":12,"marks":2921,"text":2922},"e1094302476c",[],"Create and configure a MAYANode",[],{"_key":2925,"_type":8,"children":2926,"markDefs":2952,"style":33},"a7df1cfca7cb",[2927,2930,2934,2939,2943,2948],{"_key":2928,"_type":12,"marks":2929,"text":1539},"fefe24d1a4ba",[641],{"_key":2931,"_type":12,"marks":2932,"text":2933},"4658b153b813",[],": All the previous steps were required to get to the current step of being able to clone the ",{"_key":2935,"_type":12,"marks":2936,"text":2938},"109e65e8446c",[2937],"9d24e774ba","Maya Protocol Gitlab Repository",{"_key":2940,"_type":12,"marks":2941,"text":2942},"001ab2cea38f",[]," and start to create your MAYANode. ",{"_key":2944,"_type":12,"marks":2945,"text":2947},"508104fb17e4",[2946],"a0485c829d","https:\u002F\u002Fdocs.mayaprotocol.com\u002Fdev-docs\u002Fmayanodes\u002Foverview",{"_key":2949,"_type":12,"marks":2950,"text":2951},"509686dea8dd",[]," still remains the reference document for this and all commands from here will be followed (with some small adjustments like not using make set-ip-address).",[2953,2956],{"_key":2937,"_type":26,"link":2954},{"anchor":28,"getParameters":28,"isInternal":190,"openInNewTab":28,"title":28,"url":2955},"https:\u002F\u002Fgitlab.com\u002Fmayachain\u002Fdevops\u002Fnode-launcher?ref=blog.thorchain.org",{"_key":2946,"_type":26,"link":2957},{"anchor":28,"getParameters":28,"isInternal":190,"openInNewTab":28,"title":28,"url":2958},"https:\u002F\u002Fdocs.mayaprotocol.com\u002Fdev-docs\u002Fmayanodes\u002Foverview?ref=blog.thorchain.org",{"_key":2960,"_type":8,"children":2961,"markDefs":2966,"style":1082},"800c538cac04",[2962],{"_key":2963,"_type":12,"marks":2964,"text":2965},"9bb3f3488e36",[],"Install the MAYANode",[],{"_key":2968,"_type":8,"children":2969,"markDefs":2974,"style":33},"0dbfea12ac77",[2970],{"_key":2971,"_type":12,"marks":2972,"text":2973},"14107e87f622",[],"For this setup we will create a distinct git working directory for each validator node ( n1=Node 1). Each validator will need it's own directory (n2, n3 etc).",[],{"_key":2976,"_type":8,"children":2977,"markDefs":2982,"style":33},"46617f346aef",[2978],{"_key":2979,"_type":12,"marks":2980,"text":2981},"bbd55feee260",[],"Prepare git folder:",[],{"_key":2984,"_type":8,"children":2985,"markDefs":2990,"style":33},"5378e04f5a94",[2986],{"_key":2987,"_type":12,"marks":2988,"text":2989},"df355a72686b",[],"cd ~\ngit clone https:\u002F\u002Fgitlab.com\u002Fmayachain\u002Fdevops\u002Fnode-launcher\ncd node-launcher\ngit checkout master\ngit config pull.rebase true\ngit config rebase.autoStash true",[],{"_key":2992,"_type":8,"children":2993,"markDefs":3002,"style":828},"49b78b6b64a5",[2994,2998],{"_key":2995,"_type":12,"marks":2996,"text":2997},"aa872ccf9fad",[641],"Note: ",{"_key":2999,"_type":12,"marks":3000,"text":3001},"e145776df820",[],"git config",[],{"_key":3004,"_type":8,"children":3005,"markDefs":3010,"style":33},"46508b8985c8",[3006],{"_key":3007,"_type":12,"marks":3008,"text":3009},"88af3cc86d28",[],"Install tools:",[],{"_key":3012,"_type":8,"children":3013,"markDefs":3018,"style":33},"ac9371ef4bc9",[3014],{"_key":3015,"_type":12,"marks":3016,"text":3017},"6f3cb055c54b",[],"make helm\nmake helm-plugins\nmake tools",[],{"_key":3020,"_type":8,"children":3021,"markDefs":3029,"style":33},"215008d6612b",[3022,3025],{"_key":3023,"_type":12,"marks":3024,"text":2771},"facaaba146e9",[641],{"_key":3026,"_type":12,"marks":3027,"text":3028},"ea82682f0c13",[]," You will likely get a warning like this:",[],{"_key":3031,"_type":8,"children":3032,"markDefs":3037,"style":33},"661981773b53",[3033],{"_key":3034,"_type":12,"marks":3035,"text":3036},"bd68bbccb223",[],"WARNING: Kubernetes configuration file is group-readable. This is insecure. Location: \u002Fhome\u002F\u003CUsername>\u002F.kube\u002Fconfig",[],{"_key":3039,"_type":8,"children":3040,"markDefs":3045,"style":33},"2653968ed0df",[3041],{"_key":3042,"_type":12,"marks":3043,"text":3044},"7505a46a711f",[],"# Update the permissions\nchmod 600 \u002Fhome\u002F\u003CUsername>\u002F.kube\u002Fconfig\n\n# Verify the permissions\nls -l \u002Fhome\u002F\u003CUsername>\u002F.kube\u002Fconfig\n\n(Google\u002FChatGPT the response to ensure the permissions are correct)",[],{"_key":3047,"_type":8,"children":3048,"markDefs":3053,"style":33},"8fe1679796f8",[3049],{"_key":3050,"_type":12,"marks":3051,"text":3052},"264715b2e2a1",[],"Verify all pods are healthy:",[],{"_key":3055,"_type":8,"children":3056,"markDefs":3061,"style":33},"853334160848",[3057],{"_key":3058,"_type":12,"marks":3059,"text":3060},"0942dc97d71d",[],"k9s",[],{"_key":3063,"_type":8,"children":3064,"markDefs":3069,"style":33},"f61f06d39d97",[3065],{"_key":3066,"_type":12,"marks":3067,"text":3068},"e69c9e3dff18",[],"\u002F\u002F If you are not running k9s, this will also work:\nkubectl get pods -A",[],{"_key":3071,"_type":8,"children":3072,"markDefs":3077,"style":1082},"09459a6aa627",[3073],{"_key":3074,"_type":12,"marks":3075,"text":3076},"ec37f5fe4137",[],"Set loadBalancerIP parameter for Gateway",[],{"_key":3079,"_type":8,"children":3080,"markDefs":3085,"style":33},"84b8c533ba4b",[3081],{"_key":3082,"_type":12,"marks":3083,"text":3084},"0da164145a2c",[],"These steps will force MetalLB to assign a specific IP to this validator. This is required for the node to receive from the proxy public IP (from the WireGuard setup).",[],{"_key":3087,"_type":8,"children":3088,"markDefs":3093,"style":33},"dbde52f24d21",[3089],{"_key":3090,"_type":12,"marks":3091,"text":3092},"80453991b992",[],"nano gateway\u002Ftemplates\u002Fservice.yaml",[],{"_key":3095,"_type":8,"children":3096,"markDefs":3101,"style":33},"d6b045374afd",[3097],{"_key":3098,"_type":12,"marks":3099,"text":3100},"7a8c17e811ae",[],"Add the following values in the section metadata (under annotations):",[],{"_key":3103,"_type":8,"children":3104,"markDefs":3109,"style":33},"fd0068b50579",[3105],{"_key":3106,"_type":12,"marks":3107,"text":3108},"d800f34bf359",[],"metadata:\n  annotations:\n    # MetalLb - WireGuard Setup\n    metallb.universe.tf\u002FloadBalancerIPs: 10.8.0.2",[],{"_key":3111,"_type":8,"children":3112,"markDefs":3117,"style":1082},"642276a7b8ac",[3113],{"_key":3114,"_type":12,"marks":3115,"text":3116},"88e444597491",[],"Set External Environment IP for bifrost",[],{"_key":3119,"_type":8,"children":3120,"markDefs":3125,"style":33},"827cecbc0767",[3121],{"_key":3122,"_type":12,"marks":3123,"text":3124},"6e8027e2650b",[],"This will allow bifrost to broadcast the proxy public IP as the IP to be reached from the other Validators.",[],{"_key":3127,"_type":8,"children":3128,"markDefs":3133,"style":33},"e93bbe7e1be6",[3129],{"_key":3130,"_type":12,"marks":3131,"text":3132},"aab75a29a5ba",[],"nano bifrost\u002Ftemplates\u002Fdeployment.yaml",[],{"_key":3135,"_type":8,"children":3136,"markDefs":3141,"style":33},"d4983427f19d",[3137],{"_key":3138,"_type":12,"marks":3139,"text":3140},"0cda562ffc8d",[],"Hardcode the EXTERNAL_IP value in the section env section with the Public Proxy IP (\u003CProxy Public IP>) that was enabled with the WireGuard setup (# out the rest):",[],{"_key":3143,"_type":8,"children":3144,"markDefs":3149,"style":33},"2d19bb99ca9f",[3145],{"_key":3146,"_type":12,"marks":3147,"text":3148},"31ba0cb62814",[],"env:\n  - name: EXTERNAL_IP\n    value: \"\u003CProxy Public IP>\"\n  #  valueFrom:\n  #    configMapKeyRef:\n  #      name: {{ include \"bifrost.fullname\" . }}-external-ip\n  #      key: externalIP",[],{"_key":3151,"_type":8,"children":3152,"markDefs":3157,"style":1082},"9687c4e2715f",[3153],{"_key":3154,"_type":12,"marks":3155,"text":3156},"e84acc9c104f",[],"Set External Environment IP for THORNode",[],{"_key":3159,"_type":8,"children":3160,"markDefs":3165,"style":33},"19588d1b239c",[3161],{"_key":3162,"_type":12,"marks":3163,"text":3164},"df4c91b812c6",[],"This will allow mayanode to broadcast the proxy public IP as the IP to be reached from other Validators.",[],{"_key":3167,"_type":8,"children":3168,"markDefs":3173,"style":33},"347cba0f99cd",[3169],{"_key":3170,"_type":12,"marks":3171,"text":3172},"aaad1561228e",[],"nano mayanode\u002Ftemplates\u002Fdeployment.yaml",[],{"_key":3175,"_type":8,"children":3176,"markDefs":3180,"style":33},"965173dace23",[3177],{"_key":3178,"_type":12,"marks":3179,"text":3140},"a48d49802021",[],[],{"_key":3182,"_type":8,"children":3183,"markDefs":3188,"style":33},"d3e5e82b7f84",[3184],{"_key":3185,"_type":12,"marks":3186,"text":3187},"3a3dd4468e38",[],"env:\n  - name: EXTERNAL_IP\n    value: \"\u003CProxy Public IP>\"\n  #  valueFrom:\n  #    configMapKeyRef:\n  #      name: {{ include \"thornode.fullname\" . }}-external-ip\n  #      key: externalIP",[],{"_key":3190,"_type":8,"children":3191,"markDefs":3196,"style":33},"c05864943d01",[3192],{"_key":3193,"_type":12,"marks":3194,"text":3195},"e2365f6d5fa5",[],"Run Make Install to create your MAYANode",[],{"_key":3198,"_type":8,"children":3199,"markDefs":3204,"style":33},"a77888dc0ca2",[3200],{"_key":3201,"_type":12,"marks":3202,"text":3203},"fb956b8d55e0",[],"NAME=mayanode TYPE=validator NET=mainnet make install",[],{"_key":3206,"_type":8,"children":3207,"markDefs":3212,"style":33},"1bf9db0f5d66",[3208],{"_key":3209,"_type":12,"marks":3210,"text":3211},"38de31c93bf0",[],"Confirm Pods are starting correctly",[],{"_key":3214,"_type":8,"children":3215,"markDefs":3220,"style":33},"2c80132ba7af",[3216],{"_key":3217,"_type":12,"marks":3218,"text":3219},"3f46e493b692",[],"k9s\n\n\u002F\u002F If you are not running k9s, this will also work:\nkubectl get pods -A",[],{"_key":3222,"_type":8,"children":3223,"markDefs":3228,"style":1082},"5c8ac8c2c097",[3224],{"_key":3225,"_type":12,"marks":3226,"text":3227},"4570a22dc7e6",[],"Sync ETH Beacon Chain from Snapshot",[],{"_key":3230,"_type":8,"children":3231,"markDefs":3245,"style":33},"1a0afc2fbb02",[3232,3236,3241],{"_key":3233,"_type":12,"marks":3234,"text":3235},"35964bc6a6e0",[],"The Ethereum blockchain is by far the slowest to spin up; taking 1–2 weeks. D5 Sammy has a spare ETH daemon running for redundancy but we elected to conserve the CPU thread resources and use the ",{"_key":3237,"_type":12,"marks":3238,"text":3240},"174a22bdf0ff",[3239],"dae6bb71ca","ETH Beacon Chain from snapshot",{"_key":3242,"_type":12,"marks":3243,"text":3244},"a8e86e315c6f",[],":",[3246],{"_key":3239,"_type":26,"link":3247},{"anchor":28,"getParameters":28,"isInternal":190,"openInNewTab":28,"title":28,"url":3248},"https:\u002F\u002Fgitlab.com\u002Fthorchain\u002Fdevops\u002Fnode-launcher\u002F-\u002Fmerge_requests\u002F817\u002Fdiffs?commit_id=6d695128eef76ca72b4531992f4b08361b3465d4&ref=blog.thorchain.org#e271ffbc912e77631009f28693f7fa22410a561c",{"_key":3250,"_type":8,"children":3251,"markDefs":3270,"style":33},"b1a5012798e2",[3252,3256,3261,3265],{"_key":3253,"_type":12,"marks":3254,"text":3255},"44ae72640df4",[],"When setting up fresh, after make install ETH beacon will start to sync. Find a trusted ",{"_key":3257,"_type":12,"marks":3258,"text":3260},"9dda49644c91",[3259],"1de94689f2","Ethereum Beacon Chain checkpoint sync endpoint",{"_key":3262,"_type":12,"marks":3263,"text":3264},"c16e7ffae92c",[],". Ensure you select from “Mainnet” (eg: we chose ",{"_key":3266,"_type":12,"marks":3267,"text":3269},"3de811126293",[3268],"d7fed31191","https:\u002F\u002Fmainnet-checkpoint-sync.attestant.io\u002F).",[3271,3274],{"_key":3259,"_type":26,"link":3272},{"anchor":28,"getParameters":28,"isInternal":190,"openInNewTab":28,"title":28,"url":3273},"https:\u002F\u002Feth-clients.github.io\u002Fcheckpoint-sync-endpoints\u002F?ref=blog.thorchain.org",{"_key":3268,"_type":26,"link":3275},{"anchor":28,"getParameters":28,"isInternal":190,"openInNewTab":28,"title":28,"url":3276},"https:\u002F\u002Fmainnet-checkpoint-sync.attestant.io\u002F?ref=blog.thorchain.org",{"_key":3278,"_type":8,"children":3279,"markDefs":3284,"style":33},"2954b6b01392",[3280],{"_key":3281,"_type":12,"marks":3282,"text":3283},"a8bd56fb1d02",[],"cd node-launcher\u002Fethereum-daemon\nsudo nano ethereum-daemon\u002Fvalues.yaml",[],{"_key":3286,"_type":8,"children":3287,"markDefs":3292,"style":33},"27dd6973b95d",[3288],{"_key":3289,"_type":12,"marks":3290,"text":3291},"3765459d48ba",[],"Insert your chosen ETH Beacon Chain checkpoint into checkpoint_Url:",[],{"_key":3294,"_type":8,"children":3295,"markDefs":3300,"style":33},"ce25023e4264",[3296],{"_key":3297,"_type":12,"marks":3298,"text":3299},"4d495a38d334",[],"checkpoint_Url: \"https:\u002F\u002Fmainnet-checkpoint-sync.attestant.io\u002F\"\n\nCTRL+X (to exit), Y (to save), Enter (keep the same name)",[],{"_key":3302,"_type":8,"children":3303,"markDefs":3308,"style":33},"527ace751e47",[3304],{"_key":3305,"_type":12,"marks":3306,"text":3307},"9d0d2cdb1afd",[],"Push the changes to the active ETH daemon:",[],{"_key":3310,"_type":8,"children":3311,"markDefs":3316,"style":33},"d014211900ff",[3312],{"_key":3313,"_type":12,"marks":3314,"text":3315},"a6f788ee966a",[],"NAME=mayanode TYPE=daemons NET=mainnet make install\n\nmake reset > Ethereum",[],{"_key":3318,"_type":8,"children":3319,"markDefs":3324,"style":33},"d8f4d8ea3f86",[3320],{"_key":3321,"_type":12,"marks":3322,"text":3323},"b511ab623014",[],"Verify that the ETH Beacon chain is syncing from the snapshot:",[],{"_key":3326,"_type":8,"children":3327,"markDefs":3332,"style":33},"2ad2806c16da",[3328],{"_key":3329,"_type":12,"marks":3330,"text":3331},"405c17d77364",[],"make logs --> ETH Daemon --> Beacon Chain",[],{"_key":3334,"_type":8,"children":3335,"markDefs":3340,"style":33},"ac7886760dd9",[3336],{"_key":3337,"_type":12,"marks":3338,"text":3339},"3866ee701e32",[],"Once it is fully sync'd you want to confirm that the Slot and State Root are correct. Compare the figures against an Ethereum Explorer of your choosing.",[],{"_key":3342,"_type":8,"children":3343,"markDefs":3348,"style":33},"3a1a069a3c32",[3344],{"_key":3345,"_type":12,"marks":3346,"text":3347},"f6c06e888ae3",[],"make verify-ethereum",[],{"_key":3350,"_type":8,"children":3351,"markDefs":3356,"style":1082},"52fc71e526dd",[3352],{"_key":3353,"_type":12,"marks":3354,"text":3355},"75654f2ca58a",[],"Sync THORNode from Snapshot",[],{"_key":3358,"_type":8,"children":3359,"markDefs":3364,"style":33},"c8ae6ebbe161",[3360],{"_key":3361,"_type":12,"marks":3362,"text":3363},"698f3bcc88be",[],"The THORChain blockchain can take a fair amount of time to download. To save time, you can sync thornode from a nine-realms snapshot.",[],{"_key":3366,"_type":8,"children":3367,"markDefs":3372,"style":33},"406489bfdbfa",[3368],{"_key":3369,"_type":12,"marks":3370,"text":3371},"160484afe442",[],"# This command requires jq:\nsudo apt update\nsudo apt install libxml2 libxml2-utils\n\nNAME=mayanode TYPE=validator NET=mainnet make recover-ninerealms\n\n\u002F\u002F Select the Pruned\n\n\u002F\u002F Select the latest (Highest) Block available, there are multiple snapshots",[],{"_key":3374,"_type":8,"children":3375,"markDefs":3380,"style":1082},"93090643a621",[3376],{"_key":3377,"_type":12,"marks":3378,"text":3379},"9da97ed653cd",[],"Confirmation",[],{"_key":3382,"_type":8,"children":3383,"markDefs":3388,"style":33},"660a7eb41271",[3384],{"_key":3385,"_type":12,"marks":3386,"text":3387},"7c5f47c71684",[],"Before you proceed, you must ensure that all of the chains are completely up-to-date and 100% sync'd.",[],{"_key":3390,"_type":8,"children":3391,"markDefs":3396,"style":33},"52f0c5f0ea6e",[3392],{"_key":3393,"_type":12,"marks":3394,"text":3395},"bf541bf8901b",[],"NAME=mayanode TYPE=validator NET=mainnet make status",[],{"_key":3398,"_type":8,"children":3399,"markDefs":3404,"style":33},"da5d4b96bce7",[3400],{"_key":3401,"_type":12,"marks":3402,"text":3403},"c209ddd9a798",[],"It is also a good habit to check the latest block for each chain against the published latest block on an independent blockchain explorer.",[],{"_key":3406,"_type":8,"children":3407,"markDefs":3412,"style":1082},"7a209332e784",[3408],{"_key":3409,"_type":12,"marks":3410,"text":3411},"b74b104171ad",[],"Sync MAYANode from Snapshot",[],{"_key":3414,"_type":8,"children":3415,"markDefs":3420,"style":33},"afd8e819d119",[3416],{"_key":3417,"_type":12,"marks":3418,"text":3419},"aa1a2e81377e",[],"The MAYAChain blockchain can take a fair amount of time to download. To save time, you can sync mayanode from a Maya snapshot.",[],{"_key":3422,"_type":8,"children":3423,"markDefs":3428,"style":33},"863d14d7b94c",[3424],{"_key":3425,"_type":12,"marks":3426,"text":3427},"8d6134f6b5c1",[],"NAME=mayanode TYPE=validator NET=mainnet make recover-maya",[],{"_key":3430,"_type":8,"children":3431,"markDefs":3436,"style":33},"6849cf09a5ea",[3432],{"_key":3433,"_type":12,"marks":3434,"text":3435},"282efbb7ad43",[],"\u002F\u002F Select the Pruned",[],{"_key":3438,"_type":8,"children":3439,"markDefs":3444,"style":33},"e1a074f90eac",[3440],{"_key":3441,"_type":12,"marks":3442,"text":3443},"0e3fb0cc17c2",[],"\u002F\u002F Select the latest (Highest) Block available, there are multiple snapshots",[],{"_key":3446,"_type":8,"children":3447,"markDefs":3451,"style":1082},"27959eec2622",[3448],{"_key":3449,"_type":12,"marks":3450,"text":3379},"f78e01169311",[],[],{"_key":3453,"_type":8,"children":3454,"markDefs":3458,"style":33},"32a607332187",[3455],{"_key":3456,"_type":12,"marks":3457,"text":3387},"02b77781148f",[],[],{"_key":3460,"_type":8,"children":3461,"markDefs":3465,"style":33},"744775570d3b",[3462],{"_key":3463,"_type":12,"marks":3464,"text":3395},"3445976c9e0c",[],[],{"_key":3467,"_type":8,"children":3468,"markDefs":3472,"style":33},"495d00f12e0e",[3469],{"_key":3470,"_type":12,"marks":3471,"text":3403},"2135257085a7",[],[],{"_key":3474,"_type":8,"children":3475,"markDefs":3480,"style":1082},"db3380795bf6",[3476],{"_key":3477,"_type":12,"marks":3478,"text":3479},"1356850716dd",[],"(OPTIONAL) Pointing Bifrost to Shared Daemons",[],{"_key":3482,"_type":8,"children":3483,"markDefs":3500,"style":33},"866d8c050799",[3484,3487,3491,3496],{"_key":3485,"_type":12,"marks":3486,"text":1539},"67e745e558da",[641],{"_key":3488,"_type":12,"marks":3489,"text":3490},"7b6031617d94",[],": If you are running multiple MAYANodes and using shared daemons (not what this guide is setting up to do, more like the ",{"_key":3492,"_type":12,"marks":3493,"text":3495},"3fd757f519f3",[3494],"5682f2e9eb","THORNode Guide",{"_key":3497,"_type":12,"marks":3498,"text":3499},"cd31e096e5a9",[],") then you will need to point Bifrost at the correct location.",[3501],{"_key":3494,"_type":26,"link":3502},{"anchor":28,"getParameters":28,"isInternal":190,"openInNewTab":28,"title":28,"url":3503},"https:\u002F\u002Fmedium.com\u002F@Runetard\u002Fbare-metal-node-n00b-guide-a29c5c067b4a?ref=blog.thorchain.org",{"_key":3505,"_type":8,"children":3506,"markDefs":3511,"style":33},"6a8a67b50118",[3507],{"_key":3508,"_type":12,"marks":3509,"text":3510},"d04eee8e0551",[],"Before install of MAYANode:",[],{"_key":3513,"_type":8,"children":3514,"markDefs":3519,"style":33},"bfc74a40614b",[3515],{"_key":3516,"_type":12,"marks":3517,"text":3518},"80e61cf9f455",[],"# Assuming `m1` is your node\ncd ~\u002Fm1\u002Fnode-launcher\n\n# Edit Daemons Configs and point bifrost to shared chain daemons\nnano mayanode-stack\u002Fchaosnet.yaml",[],{"_key":3521,"_type":8,"children":3522,"markDefs":3527,"style":33},"b8a26f49c2cf",[3523],{"_key":3524,"_type":12,"marks":3525,"text":3526},"6e0ad89cb702",[],"Change the chaosnet config to install on the Chains that you need:",[],{"_key":3529,"_type":8,"children":3530,"markDefs":3535,"style":33},"3a032b03e5ac",[3531],{"_key":3532,"_type":12,"marks":3533,"text":3534},"a3143fba86cb",[],"global:\n  tag: mainnet-1.110.0\n  hash: 15a7a6166c964dc04f7c54ee1a423f9202073f429c5f4c26331d3ee0c9269214\n\nmayanode:\n  haltHeight:\n  statesync:\n    auto: false\n    snapshotInterval: 0\n\nmidgard:\n  blockstore:\n    enabled: false\n    remote: \"\"\n    size: 20Gi\n\nbitcoin-daemon:\n  enabled: false\n\ndash-daemon:\n  enabled: false\n\nethereum-daemon:\n  enabled: false\n\nkuji-daemon:\n  enabled: false\n\nthornode-daemon:\n  enabled: true\n\narbitrum-daemon:\n  enabled: false\n\nbinance-daemon:\n  enabled: false\n\nlitecoin-daemon:\n  enabled: false\n\nbitcoin-cash-daemon:\n  enabled: false\n\ndogecoin-daemon:\n  enabled: false\n\ngaia-daemon:\n  enabled: false\n\navalanche-daemon:\n  enabled: false\n\nradix-daemon:\n  enabled: false\n\ncardano-daemon:\n  enabled: false\n\n# Point bifrost at shared daemons\nbifrost:\n  bitcoinDaemon:\n    mainnet: bitcoin-daemon.c1.svc.cluster.local:8332\n  ethereumDaemon:\n    mainnet: http:\u002F\u002Fethereum-daemon.c1.svc.cluster.local:8545\n  dashDaemon:\n    mainnet: dash-daemon.c1.svc.cluster.local:9998\n  kujiDaemon:\n    enabled: true\n    mainnet:\n      rpc: http:\u002F\u002Fkuji-daemon.c1.svc.cluster.local:26657\n      grpc: kuji-daemon.c1.svc.cluster.local:9090\n      grpcTLS: false\n  arbitrumDaemon:\n    mainnet: http:\u002F\u002Farbitrum-daemon.c1.svc.cluster.local:8547\n  radixDaemon:\n    mainnet: http:\u002F\u002Fradix-daemon.c1.svc.cluster.local:3333\u002Fcore",[],{"_key":3537,"_type":8,"children":3538,"markDefs":3543,"style":1082},"f635be038482",[3539],{"_key":3540,"_type":12,"marks":3541,"text":3542},"029057ff257e",[],"Configure MAYANode",[],{"_key":3545,"_type":8,"children":3546,"markDefs":3563,"style":33},"154bb97762ba",[3547,3550,3554,3559],{"_key":3548,"_type":12,"marks":3549,"text":1539},"4d445ae8a51d",[641],{"_key":3551,"_type":12,"marks":3552,"text":3553},"e3d02f148164",[],": ",{"_key":3555,"_type":12,"marks":3556,"text":3558},"379a2ff1817d",[3557],"42e8388c04","docs.mayaprotocol.org",{"_key":3560,"_type":12,"marks":3561,"text":3562},"11afa600bc6b",[]," details the full steps and can be followed exactly as described with the exception of the make set-ip-address command.",[3564],{"_key":3557,"_type":26,"link":3565},{"anchor":28,"getParameters":28,"isInternal":190,"openInNewTab":28,"title":28,"url":3566},"https:\u002F\u002Fdocs.mayaprotocol.com\u002Fdev-docs\u002Fmayanodes\u002Fjoining?ref=blog.thorchain.org",{"_key":3568,"_type":8,"children":3569,"markDefs":3574,"style":33},"c613c014440d",[3570],{"_key":3571,"_type":12,"marks":3572,"text":3573},"8be389091fe5",[],"Confirm all chains are up-to-date:",[],{"_key":3576,"_type":8,"children":3577,"markDefs":3581,"style":33},"97fb2532d441",[3578],{"_key":3579,"_type":12,"marks":3580,"text":3395},"5722e2f7c3ac",[],[],{"_key":3583,"_type":8,"children":3584,"markDefs":3588,"style":828},"328891f4cf96",[3585],{"_key":3586,"_type":12,"marks":3587,"text":2222},"20750c659db4",[641],[],{"_key":3590,"_type":8,"children":3591,"markDefs":3605,"style":33},"3dc545ecdd9d",[3592,3596,3601],{"_key":3593,"_type":12,"marks":3594,"text":3595},"8ca40a501761",[],"Use ",{"_key":3597,"_type":12,"marks":3598,"text":3600},"9a8020728947",[3599],"a82e8154c7","Eldorado Wallet",{"_key":3602,"_type":12,"marks":3603,"text":3604},"5ea636c0a774",[]," (or similar wallet with Custom Memo) to send in some $CACAO to your MAYANode for gas fees. The initial steps require $CACAO to pay the gas fees but the actual bond for MAYANodes come from the LP units.",[3606],{"_key":3599,"_type":26,"link":3607},{"anchor":28,"getParameters":28,"isInternal":190,"openInNewTab":28,"title":28,"url":3608},"https:\u002F\u002Fwww.eldorado.market\u002F?ref=blog.thorchain.org",{"_key":3610,"_type":8,"children":3611,"markDefs":3616,"style":33},"b6b929c5fcde",[3612],{"_key":3613,"_type":12,"marks":3614,"text":3615},"bd1458b550d0",[],"Using Eldorado (or any wallet with Custom Memo option), bond in a small initial LP unit to whitelist your node. Make sure that you send it from the correct controlling wallet as this will become the admin wallet that is permanently attached to this MAYANode. Ensure you are using bond and not send.",[],{"_key":3618,"_type":8,"children":3619,"markDefs":3628,"style":828},"183d189402eb",[3620,3623],{"_key":3621,"_type":12,"marks":3622,"text":2771},"2bc440f8b8b4",[641],{"_key":3624,"_type":12,"marks":3625,"text":3627},"bb912f11ab02",[3626],"15e4c99f3a","Asgardex Wallet",[3629],{"_key":3626,"_type":26,"link":3630},{"anchor":28,"getParameters":28,"isInternal":190,"openInNewTab":28,"title":28,"url":3631},"https:\u002F\u002Fgithub.com\u002Fthorchain\u002Fasgardex-electron\u002Freleases\u002F?ref=blog.thorchain.org",{"_key":3633,"_type":8,"children":3634,"markDefs":3639,"style":33},"72c2f98c73b6",[3635],{"_key":3636,"_type":12,"marks":3637,"text":3638},"0726604eab48",[],"Custom Memo (replacing \u003CNode Address> with your MAYANode address):\nBOND:THOR.RUNE:1:\u003CNode Address>",[],{"_key":3641,"_type":8,"children":3642,"markDefs":3647,"style":33},"75db56f02d15",[3643],{"_key":3644,"_type":12,"marks":3645,"text":3646},"73b330ae2181",[],"Publicly publish your node keys:",[],{"_key":3649,"_type":8,"children":3650,"markDefs":3655,"style":33},"bd0cda95b90a",[3651],{"_key":3652,"_type":12,"marks":3653,"text":3654},"334df4dcce6d",[],"make set-node-keys",[],{"_key":3657,"_type":8,"children":3658,"markDefs":3663,"style":33},"d53f57d2632b",[3659],{"_key":3660,"_type":12,"marks":3661,"text":3662},"188621fe5b09",[],"Publicly publish your node version:",[],{"_key":3665,"_type":8,"children":3666,"markDefs":3671,"style":33},"56f4b968f261",[3667],{"_key":3668,"_type":12,"marks":3669,"text":3670},"3fa6f30f0ca7",[],"make set-version",[],{"_key":3673,"_type":8,"children":3674,"markDefs":3679,"style":33},"8168d2ed5205",[3675],{"_key":3676,"_type":12,"marks":3677,"text":3678},"8c17c6606ae0",[],"This is the step that is different from the guide and is required when using a proxy IP (WireGuard setup). Replace \u003Cname> with the namespace you chose (eg: n1) and \u003CProxy Public IP> with the Public IP from the WireGuard Proxy:",[],{"_key":3681,"_type":8,"children":3682,"markDefs":3687,"style":33},"210c528ab356",[3683],{"_key":3684,"_type":12,"marks":3685,"text":3686},"271127966b11",[],"kubectl exec -it -n \u003Cnamespace> deploy\u002Fmayanode -- \u002Fkube-scripts\u002Fset-ip-address.sh \"\u003CPublic Proxy IP>\"",[],{"_key":3689,"_type":8,"children":3690,"markDefs":3695,"style":33},"93585afcda33",[3691],{"_key":3692,"_type":12,"marks":3693,"text":3694},"abdb6d2cec8e",[],"Check that you are now “ready” and will be available to churn in on the next churn (assuming enough bond to win that churn's bond war):",[],{"_key":3697,"_type":8,"children":3698,"markDefs":3702,"style":33},"9a8fe8c2918c",[3699],{"_key":3700,"_type":12,"marks":3701,"text":3395},"aefc2efa9c02",[],[],{"_key":3704,"_type":8,"children":3705,"markDefs":3710,"style":33},"de1a915fe512",[3706],{"_key":3707,"_type":12,"marks":3708,"text":3709},"1805d7da8bcb",[],"Bond in your full bond amount (to that same MAYANode address) and wait to be churned in when you are competitive.",[],{"_key":3712,"_type":8,"children":3713,"markDefs":3718,"style":33},"d78f02e01b6e",[3714],{"_key":3715,"_type":12,"marks":3716,"text":3717},"c077015b52a4",[],"Custom Memo:",[],{"_key":3720,"_type":8,"children":3721,"markDefs":3726,"style":33},"1696d19dc62a",[3722],{"_key":3723,"_type":12,"marks":3724,"text":3725},"7d768c1624cf",[],"BOND:\u003CAsset Pool>:\u003CLP Unit Amount>:\u003CNode Address>",[],{"_key":3728,"_type":8,"children":3729,"markDefs":3734,"style":828},"a35b6dd6836b",[3730],{"_key":3731,"_type":12,"marks":3732,"text":3733},"4cec583cc3f6",[],"BOND:BTC.BTC:500000000000000:maya10sy79jhw9hw9sqwdgu0k4mw4qawzl7czewzs47",[],{"_key":3736,"_type":8,"children":3737,"markDefs":3742,"style":672},"a58725d9403b",[3738],{"_key":3739,"_type":12,"marks":3740,"text":3741},"b2fc5dbca7a0",[],"Troubleshooting",[],{"_key":3744,"_type":8,"children":3745,"markDefs":3750,"style":33},"8a895afaec61",[3746],{"_key":3747,"_type":12,"marks":3748,"text":3749},"6896f9ed4477",[],"There are far too many issues that can occur in the process of setting up your BM node. Each of the previous guides (linked at the start) provide a good list (and explanation) of some common issues and ways to fix or troubleshoot them.",[],{"_key":3752,"_type":8,"children":3753,"markDefs":3766,"style":33},"589e8aefc0ad",[3754,3758,3762],{"_key":3755,"_type":12,"marks":3756,"text":3757},"e429dd936723",[],"Read through the previous guides, especially D5 Sammy, for common advice and if still stuck then ask ",{"_key":3759,"_type":12,"marks":3760,"text":988},"479e21a8cab2",[3761],"6d6446b20c",{"_key":3763,"_type":12,"marks":3764,"text":3765},"c9835a730737",[]," Discord Channel and we will attempt to update this guide with the most common issues. It is a good practice to search for keywords on the issue prior to asking as it might already by answered.",[3767],{"_key":3761,"_type":26,"link":3768},{"anchor":28,"getParameters":28,"isInternal":190,"openInNewTab":28,"title":28,"url":996},{"_key":3770,"_type":8,"children":3771,"markDefs":3776,"style":672},"03d739376f20",[3772],{"_key":3773,"_type":12,"marks":3774,"text":3775},"7240b8303493",[],"Personalisation (Optional)",[],{"_key":3778,"_type":8,"children":3779,"markDefs":3787,"style":33},"0cd247ec4476",[3780,3783],{"_key":3781,"_type":12,"marks":3782,"text":1539},"d926cb8ae3da",[641],{"_key":3784,"_type":12,"marks":3785,"text":3786},"15e57816a1fa",[],": All previous steps were mandatory for your BM node setup (except those specifically labelled as “Optional”) but the following steps are for personalisation. Of note, Scorch and Hildisvíni Óttar used oh-my-zsh (.zsh) but D5 Sammy used .bash; it is a personal preference (we chose .bash).",[],{"_key":3789,"_type":8,"children":3790,"markDefs":3795,"style":33},"7189f50593e9",[3791],{"_key":3792,"_type":12,"marks":3793,"text":3794},"856600b031db",[],"Edit .bashrc:",[],{"_key":3797,"_type":8,"children":3798,"markDefs":3803,"style":33},"8b6ad3c17b58",[3799],{"_key":3800,"_type":12,"marks":3801,"text":3802},"2f1d5e413cfd",[],"nano ~\u002F.bashrc\n\n\u002F\u002F Add the following at the bottom (under your previous additions):\nalias ms='NET=mainnet NAME=mayanode TYPE=validator make status'\nalias n='cd ~\u002Fnode-launcher'\n\n\u002F\u002FReload .bashrc\nsource ~\u002F.bashrc",[],{"_key":3805,"_type":8,"children":3806,"markDefs":3811,"style":672},"d6213527b9ee",[3807],{"_key":3808,"_type":12,"marks":3809,"text":3810},"fcaa5b8f827b",[],"Backing up MAYANode",[],{"_key":3813,"_type":8,"children":3814,"markDefs":3830,"style":33},"0aa51b7bacae",[3815,3818,3822,3826],{"_key":3816,"_type":12,"marks":3817,"text":1056},"ccb2ded302c2",[641],{"_key":3819,"_type":12,"marks":3820,"text":3821},"a9e7cd9be952",[]," Backing up and securing of your BM node is largely dictated by the risk tolerance of the node operator. In saying this, the following are the ",{"_key":3823,"_type":12,"marks":3824,"text":3825},"d4b6ca4414fb",[1023],"minimum",{"_key":3827,"_type":12,"marks":3828,"text":3829},"ce658458b1e4",[]," backup and security measures that must be followed by all BM node operators.",[],{"_key":3832,"_type":8,"children":3833,"markDefs":3838,"style":33},"0395633a501d",[3834],{"_key":3835,"_type":12,"marks":3836,"text":3837},"113ad862993e",[],"The first step to backing up your node is to physically secure the Mnemonic and Password. We prefer to save them in an ultra-secure storage facilities that is not easily accessible and at a different location to the BM node.",[],{"_key":3840,"_type":8,"children":3841,"markDefs":3846,"style":33},"afb14af0075f",[3842],{"_key":3843,"_type":12,"marks":3844,"text":3845},"a9f70adf8173",[],"\u002F\u002F Physically save your Mnemonic and secure it like you have your wallet seed-phrase\nNAME=mayanode TYPE=validator NET=mainnet make mnemonic\n\n\u002F\u002F Physically save your Password and secure safely (similar to the mnemonic)\nNAME=mayanode TYPE=validator NET=mainnet make password",[],{"_key":3848,"_type":8,"children":3849,"markDefs":3854,"style":33},"a8a20607fa4b",[3850],{"_key":3851,"_type":12,"marks":3852,"text":3853},"0e0ef742240e",[],"Your mayanode and bifrost backups will need to be secured digitally:",[],{"_key":3856,"_type":8,"children":3857,"markDefs":3862,"style":33},"472a5a7c21ad",[3858],{"_key":3859,"_type":12,"marks":3860,"text":3861},"f4f20b17a352",[],"mkdir ~\u002FBackupN1\n\n\u002F\u002F Generate a mayanode Backup (This is a backup of mayanode, it only needs to be done once)\nNAME=mayanode TYPE=validator NET=mainnet SERVICE=mayanode make backup\n\n\u002F\u002F The backup function will display the path to the backup folder\ncp .\u002Fbackups\u002Fmayanode\u002F2023-XX-XX\u002Fmayanode-16XXXXXXXX.tar.gz ~\u002FBackupN1\u002F\n\n\u002F\u002F Generate a bifrost Backup (This is a backup of the current bifrost, if migrating it must be since the last churn)\nNAME=mayanode TYPE=validator NET=mainnet SERVICE=bifrost make backup\n\n\u002F\u002F The backup function will display the path to the backup folder\ncp .\u002Fbackups\u002Fbifrost\u002F2023-XX-XX\u002Fbifrost-16XXXXXXXX.tar.gz ~\u002FBackupN1\u002F\n\n\u002F\u002F Save ~\u002FBackupN1 offline; can send to laptop first to the store remotely.\n[Your Laptop] scp -r \u003Cuser>@\u003Chost of source node>:~\u002FBackupN1 ~",[],{"_key":3864,"_type":8,"children":3865,"markDefs":3870,"style":33},"e96500d15cbd",[3866],{"_key":3867,"_type":12,"marks":3868,"text":3869},"d84499f4c38b",[],"The combination of ~\u002FBackupN1\u002F and the securely stored Mnemonic+Password is all we need to restore our Validator from scratch (if necessary).",[],{"_key":3872,"_type":8,"children":3873,"markDefs":3878,"style":828},"a576bc9e5803",[3874],{"_key":3875,"_type":12,"marks":3876,"text":3877},"2a61923ca5b7",[641],"Reminder:",[],{"_key":3880,"_type":8,"children":3881,"markDefs":3886,"style":672},"3c9269b9cc40",[3882],{"_key":3883,"_type":12,"marks":3884,"text":3885},"4b4b958d166d",[],"MAYANode Maintenance",[],{"_key":3888,"_type":8,"children":3889,"markDefs":3905,"style":33},"6dda4ad50592",[3890,3893,3897,3901],{"_key":3891,"_type":12,"marks":3892,"text":1056},"8b2e7fd8fb3d",[641],{"_key":3894,"_type":12,"marks":3895,"text":3896},"533c0aa930b3",[]," Getting your BM node up and running is only the beginning, there is still ",{"_key":3898,"_type":12,"marks":3899,"text":3900},"0add6b925307",[1023],"heaps",{"_key":3902,"_type":12,"marks":3903,"text":3904},"7d327e348d5d",[]," of (near daily) work required to keep your BM node running correctly. This section will detail how to maintain, update, provide governance to the MP and other generic node operators actions that will be expected of you.",[],{"_key":3907,"_type":8,"children":3908,"markDefs":3913,"style":1082},"7ef62ba1c970",[3909],{"_key":3910,"_type":12,"marks":3911,"text":3912},"62ba04b63d19",[],"Useful MAYAode commands",[],{"_key":3915,"_type":8,"children":3916,"markDefs":3921,"style":33},"7a52a669487c",[3917],{"_key":3918,"_type":12,"marks":3919,"text":3920},"10a4872a29c9",[],"\u002F\u002F To see the full list of `make` commands\nmake help\n\n\u002F\u002F To debug or check on specific chain daemons\nmake logs\n\n\u002F\u002F If you want to keep all chain daemons and services but have a new mayanode\nmake recycle\n\n\u002F\u002F When a daemon\u002Fpod\u002Fservice is struggling or stuck\nmake restart\n(This just kills and restarts the pod; safe to use)\n\n\u002F\u002F When a daemon\u002Fservice is corrupted or needs a fresh start\nmake reset\n(This command is destructive and will wipe all data and start fresh; use cautiously)\n\n\u002F\u002F To provide governance on the Maya Protocol network\nmake mimir\n(You will be voting on something and need the mimir Key and Value)\n\n\u002F\u002F To anonymously ask questions in #mainnet or #devops\nmake relay\n\n\u002F\u002F To pause the global Maya Protocol network for 1hr (suspected nefarious behaviour)\nmake pause\n\n\u002F\u002F To resume the global Maya Protocol network after a 'make pause' (all clear)\nmake resume",[],{"_key":3923,"_type":8,"children":3924,"markDefs":3929,"style":1082},"8c197adfd246",[3925],{"_key":3926,"_type":12,"marks":3927,"text":3928},"63f967c34805",[],"Updating Validators",[],{"_key":3931,"_type":8,"children":3932,"markDefs":3937,"style":33},"2f6e88b2cabf",[3933],{"_key":3934,"_type":12,"marks":3935,"text":3936},"35b970dd743e",[],"If you are only running a single BM node then this step will cover everything required.",[],{"_key":3939,"_type":8,"children":3940,"markDefs":3945,"style":33},"12c6a5e3b961",[3941],{"_key":3942,"_type":12,"marks":3943,"text":3944},"9c75cd4056a3",[],"cd ~\u002Fnode-launcher\ngit checkout master\ngit pull --rebase --autostash\nNAME=mayanode TYPE=validator NET=mainnet make update",[],{"_key":3947,"_type":8,"children":3948,"markDefs":3953,"style":1082},"ab150a2633a8",[3949],{"_key":3950,"_type":12,"marks":3951,"text":3952},"1acf9b8c79ae",[],"Rebooting the BM Server",[],{"_key":3955,"_type":8,"children":3956,"markDefs":3961,"style":33},"12e0793a1006",[3957],{"_key":3958,"_type":12,"marks":3959,"text":3960},"503e0951c992",[],"Scaling down Pods prior to rebooting server can help prevent chain corruptions.",[],{"_key":3963,"_type":8,"children":3964,"markDefs":3969,"style":33},"e60a9952f689",[3965],{"_key":3966,"_type":12,"marks":3967,"text":3968},"a97878e7a2b0",[],"\u002F\u002F Scale down all Pods\nkubectl -n mayanode scale deployments --replicas=0 --all\n\n\u002F\u002F Wait for all pods to terminate completely\nk9s\n\nsudo shutdown -h now",[],{"_key":3971,"_type":8,"children":3972,"markDefs":3977,"style":33},"865fc90c4a03",[3973],{"_key":3974,"_type":12,"marks":3975,"text":3976},"be8dc3c0a9f8",[],"After you boot-up the BM server, the Pods will need to be scaled back up.",[],{"_key":3979,"_type":8,"children":3980,"markDefs":3985,"style":33},"e060c75d8e5e",[3981],{"_key":3982,"_type":12,"marks":3983,"text":3984},"a48cfdf4cf30",[],"\u002F\u002F Scale up all Pods\nkubectl -n mayanode scale deployments --replicas=1 --all\n\n\u002F\u002F Monitor to see they all come back online correctly\nk9s\n\n\u002F\u002F Complete a final check of the node\nn (this is if you added the alias; else, cd ~\u002Fnode-launcher)\nms (this is if you added the alias; else, make status)",[],{"_key":3987,"_type":8,"children":3988,"markDefs":3993,"style":1082},"18a903205c12",[3989],{"_key":3990,"_type":12,"marks":3991,"text":3992},"a3f6535fc413",[],"Monitoring",[],{"_key":3995,"_type":8,"children":3996,"markDefs":4018,"style":33},"06c566361131",[3997,4001,4006,4010,4015],{"_key":3998,"_type":12,"marks":3999,"text":4000},"7650adf9ac4d",[],"The best way to monitor your BM node is via SSH and make status but you can also keep an eye on it while out and about at ",{"_key":4002,"_type":12,"marks":4003,"text":4005},"eb4983726f81",[4004],"f1d7ee0d03","https:\u002F\u002Fwww.mayascan.org\u002Fnetwork",{"_key":4007,"_type":12,"marks":4008,"text":4009},"ab0ced716a25",[]," or ",{"_key":4011,"_type":12,"marks":4012,"text":4014},"74c59e4042e9",[4013],"0cfceed453","https:\u002F\u002Fmayanode.network\u002F",{"_key":4016,"_type":12,"marks":4017,"text":1578},"a1afce58e764",[],[4019,4022],{"_key":4004,"_type":26,"link":4020},{"anchor":28,"getParameters":28,"isInternal":190,"openInNewTab":28,"title":28,"url":4021},"https:\u002F\u002Fwww.mayascan.org\u002Fnetwork?ref=blog.thorchain.org",{"_key":4013,"_type":26,"link":4023},{"anchor":28,"getParameters":28,"isInternal":190,"openInNewTab":28,"title":28,"url":4024},"https:\u002F\u002Fmayanode.network\u002F?ref=blog.thorchain.org",{"_key":4026,"_type":8,"children":4027,"markDefs":4032,"style":672},"57e8de755084",[4028],{"_key":4029,"_type":12,"marks":4030,"text":4031},"32ff35a07bfe",[],"Conclusion",[],{"_key":4034,"_type":8,"children":4035,"markDefs":4040,"style":33},"e4bdd4245769",[4036],{"_key":4037,"_type":12,"marks":4038,"text":4039},"74ab0d26be60",[],"This guide was our best attempt to provide a comprehensive 'paint-by-numbers' n00b guide for making a MAYANode BM node. Yes, the required base knowledge is high. Yes, it is a lot harder than centralised cloud provider or participating in a pooled-node. But, no, it is not an insurmountable endeavour. The monthly $$$ savings along are reason enough to go BM but the added decentralisation to Maya Protocol and control over your MAYANode are added benefits too!",[],{"_key":4042,"_type":8,"children":4043,"markDefs":4056,"style":33},"9e2c1821813f",[4044,4048,4052],{"_key":4045,"_type":12,"marks":4046,"text":4047},"109655c99932",[],"Our BM nodes would not have been possible if it were not for the insanely generous community members like D5 Sammy, Scorch and Hildisvíni Óttar (plus all those on the ",{"_key":4049,"_type":12,"marks":4050,"text":988},"d3d3125fb891",[4051],"8024009e03",{"_key":4053,"_type":12,"marks":4054,"text":4055},"dd6526f90981",[]," Discord Channel). Everyone has been extremely helpful and any thanks should be directed towards them. We are just trying to do our best to pay it forward.",[4057],{"_key":4051,"_type":26,"link":4058},{"anchor":28,"getParameters":28,"isInternal":190,"openInNewTab":28,"title":28,"url":996},{"_key":4060,"_type":8,"children":4061,"markDefs":4066,"style":33},"ed6bce18d3a2",[4062],{"_key":4063,"_type":12,"marks":4064,"text":4065},"d18eccaa65a5",[],"Any further questions or queries should be fielded in Discord and this guide will be updated. Good luck!",[],{"_key":4068,"_type":4069,"backgroundColor":28,"buttons":4070,"disabled":190,"linkCards":28,"media":4073,"sliceId":28,"text":4077,"title":4078},"99d1b8cb0c53","heroSlice",[4071],{"anchor":28,"getParameters":28,"isInternal":190,"label":4072,"openInNewTab":28,"theme":429,"title":28,"url":430},"Swap Now",{"image":4074,"type":620},{"alt":47,"assetId":4075,"caption":28,"crop":28,"height":443,"hotspot":28,"lqip":4076,"width":443},"image-de03568132b33de541197dd8a121e7ae69e060b9-1000x1000-svg","data:image\u002Fpng;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAACXBIWXMAAAsTAAALEwEAmpwYAAABu0lEQVR4nK2VT0\u002FbQBDF802h3yFSzpzpNcmJnrimlaVeqBCXCkGJyAEqKpJQEDFSauQk9s6ud2zCq2ZLUsdJIBE5PGnt9+a3f8Zal5RSTERjrTXeIyIaK6VsSQZE9LwB4LOwSkXDGLOWdKF+BigBa+1aMgXoFChGkiQuxMxI03Ql2QJ0BihSSiGOYxecA1gDpgjW0GpArTWGwyHCMHTPRWCmY9jwAWYUul1kWfY6ULY8MZetMKUIbPRqK+SXWfOSInk\u002FOdeiz8zLgZOGLGqKZIIggO\u002F76PV66Pf77rztW03JrzYPFJDneajVak6NRgPtdls+6NebIrNKKH+GAu90OqjX6yiXy6hUKqhWq2i1WoiiaDlwlBDu7QBdfsRNGuJ39qI0xMXwHt+ufqBxdogvzSMcXJ3iZ3CLgY4XA8loXHOA\u002FadLfByfTrWbnWCXj\u002F8pO5nxJHvNgaudA8aG0GQfO0\u002Ff8WH8dart1MOW+uwk47wn2Sb7rnYOqDShawJ49hc+ceu\u002FknPs6aaTjPOeZLsmcLXzWybCQI3gx4+4i\u002F\u002Fg9g1JRrIDNXK1C28bMaTL6ygPc8CNX7BybW\u002FyF\u002FAXRWrnrGjw4yAAAAAASUVORK5CYII=","No sign up required.\nEasy to use.",[4079],{"_key":4080,"_type":8,"children":4081,"markDefs":4087,"style":33},"9b9f5300a491",[4082],{"_key":4083,"_type":12,"marks":4084,"text":4086},"570460bff9df",[4085],"black","Try the World’s Leading Bitcoin DEX",[],[4089],{"name":489,"slug":490},1781332277119]