From 0ab1515692dea692f70fb1727ccb0e5c18cc1d9a Mon Sep 17 00:00:00 2001 From: Joy Wang <108701016+joyqvq@users.noreply.github.com> Date: Fri, 23 Sep 2022 17:44:43 -0400 Subject: [PATCH] crypto: update keytool to generate NodeConfig --- crates/sui-config/src/test_gateway.yml | 251 +++++++++++++++++++++++++ crates/sui/src/keytool.rs | 24 ++- 2 files changed, 266 insertions(+), 9 deletions(-) create mode 100644 crates/sui-config/src/test_gateway.yml diff --git a/crates/sui-config/src/test_gateway.yml b/crates/sui-config/src/test_gateway.yml new file mode 100644 index 0000000000000..0f34fc7a145b5 --- /dev/null +++ b/crates/sui-config/src/test_gateway.yml @@ -0,0 +1,251 @@ + --- + epoch: 0 + validator_set: + - name: validator-9 + account-key: AD0iV/PbGVBoPExdB+4wfprZLoS9N4ltb00p1MNnlm71 + protocol-key: getJQ17IvK3nYcHAOLZ1PDeQt5dNcxGGkCooW9AYo0fUNEu1C3Uo264SZBiEqhqUD3QcR018SpZkYYEntPS/B/I8QGRJFBa55O1GSGGNscJ3rOOArqGKM4cOBaJUF2nH + worker-key: RXzQ+WNIIcodae0f1AaRVg3qvzbySW4EYBUVf68VdzA= + network-key: OD73hNLl2wBqBrmcxG00r77V7Kgdi2fu4YpnoEJDyPs= + stake: 1 + delegation: 0 + gas-price: 1 + network-address: /dns/ny2-suival-1.testnet.sui.io/tcp/8080/http + narwhal-primary-address: /dns/ny2-suival-1.testnet.sui.io/tcp/8081/http + narwhal-worker-address: /dns/ny2-suival-1.testnet.sui.io/tcp/8082/http + narwhal-consensus-address: /ip4/127.0.0.1/tcp/8083/http + - name: validator-14 + account-key: APxJHKslYpWYWmMIlpKfzBTj9K5I84diueoJ4sWHwjmS + protocol-key: hUY69ZxcvuOaoY9AoazvEAsum2bS/61LZU7d88h/baYO5rBXFod3UeYC+wr0J51qF6JUpOaNk/E2OIFSbI1GoLUxu0AxIfe23ph+BLD3CbttFMbpqZa7Zza6DOHpjyok + worker-key: IrjezuU/lXLkyXkAUvWbKBGPLH5GCrJqCRYKTVc9nao= + network-key: pu7Q7oXG6GiRfoEcR7azVoWUVQC10gY7MLi3xVoYa0g= + stake: 1 + delegation: 0 + gas-price: 1 + network-address: /dns/mh1-suival-2.testnet.sui.io/tcp/8080/http + narwhal-primary-address: /dns/mh1-suival-2.testnet.sui.io/tcp/8081/http + narwhal-worker-address: /dns/mh1-suival-2.testnet.sui.io/tcp/8082/http + narwhal-consensus-address: /ip4/127.0.0.1/tcp/8083/http + - name: validator-13 + account-key: AF7odQ5Mwj8PBN/7LYTqyB/gS1OywSBOcKuCS/+VNyLd + protocol-key: iBNb7x9vyRov6hR/y0671JJ3gYTGWjDtSO8BLZ0FjZQkkQ3peXhjQZnVUe7VO8CnGN630twyg6zfBwS8CL51rV0UbsEJ0ZOn/4uwR/rq8PwMdod+Wf84AkGhbrZ0AUh4 + worker-key: H2uJQcpeBVF/cn5VBR3re7HZugsooxv2TeGfoctO6GE= + network-key: tgVQjD8k8ymbIdWYhi8VxjMw9FInsfh8xLd+4xhOIOE= + stake: 1 + delegation: 0 + gas-price: 1 + network-address: /dns/mh1-suival-1.testnet.sui.io/tcp/8080/http + narwhal-primary-address: /dns/mh1-suival-1.testnet.sui.io/tcp/8081/http + narwhal-worker-address: /dns/mh1-suival-1.testnet.sui.io/tcp/8082/http + narwhal-consensus-address: /ip4/127.0.0.1/tcp/8083/http + - name: validator-17 + account-key: AO6lcah9+F9DfVBwE5+30kmi8pkw7nHPeolO0LNIJUQi + protocol-key: iJOovXaLrS4FvmlpMnkCk0oEY79HrBPLxY+21WhK2sKsaTsAgjL4KnyXVbrb7nTOAm0z6CkdzT+hMmMw1E7csmK8dV8VjKpgaR66oMxcGDM2Rbu0XhqIx7uH3DpwYezp + worker-key: jdsdCfcvGNs5XxGk+jwNbOF6caMnaWvCGKOp0b4QslI= + network-key: qqL4hLWUa7bitFYj0k1uosnmKEEslk/o8shtOOJriWY= + stake: 1 + delegation: 0 + gas-price: 1 + network-address: /dns/ty6-suival-1.testnet.sui.io/tcp/8080/http + narwhal-primary-address: /dns/ty6-suival-1.testnet.sui.io/tcp/8081/http + narwhal-worker-address: /dns/ty6-suival-1.testnet.sui.io/tcp/8082/http + narwhal-consensus-address: /ip4/127.0.0.1/tcp/8083/http + - name: validator-10 + account-key: AEM7kl/d6VlBG1IgY+lHdxzudYT6ZhtXiYBh3kCxLZCq + protocol-key: iic7mlIKCwVxaqej7btkXo045aJYw6hgqpHZT+n25aqICuYCkc0PUXzZ2qSGTrUgDkhcyLKUpMPXjNCPw7AV3M+B+dPuKf6BVVo4Enj4KJe5SnoNOYRE7Ll01K9KfbWU + worker-key: +Ukw2HM7IYXyIxp9F2ZbBZMAQpIMN24fhzArm41CJy0= + network-key: IXFQDgUFO6XD+eqnCHf4aAR2HVdqKKM/7l13nlFIk+w= + stake: 1 + delegation: 0 + gas-price: 1 + network-address: /dns/ny2-suival-2.testnet.sui.io/tcp/8080/http + narwhal-primary-address: /dns/ny2-suival-2.testnet.sui.io/tcp/8081/http + narwhal-worker-address: /dns/ny2-suival-2.testnet.sui.io/tcp/8082/http + narwhal-consensus-address: /ip4/127.0.0.1/tcp/8083/http + - name: validator-7 + account-key: ALO4VmUJME24oEDq0tzE7MRi+83HZE3UCuLTVPIE4ZQK + protocol-key: krpOBB6E7P0N4jsUHBGFPSHX0UPoS6uFR1I/kKND+em8+cgrujsm31oygHdrKhUeDjq4UWUtCyxLoCczGLO/F1VUooI/J3iqzjN1RvkG7CiFriuU0L9GF7/l64U01DwN + worker-key: knT4d0Du6/s0qQWtIeAHI25gRjTXHQe4g0SK56LGtLw= + network-key: ZtPhPziNESJSElsa2y7GZWkc97kKPMrJTq1UldpxUoU= + stake: 1 + delegation: 0 + gas-price: 1 + network-address: /dns/dal2-suival-3.testnet.sui.io/tcp/8080/http + narwhal-primary-address: /dns/dal2-suival-3.testnet.sui.io/tcp/8081/http + narwhal-worker-address: /dns/dal2-suival-3.testnet.sui.io/tcp/8082/http + narwhal-consensus-address: /ip4/127.0.0.1/tcp/8083/http + - name: validator-8 + account-key: AJN7LZADOBBRulSlRjE0HJs3YR8I3WPwg2ejh4HbDmIS + protocol-key: ky1saTSmEpWC/F4MKypOBzJaNaqxHk7gTWkhDnJP0NMZG0vniS+3YIGtg/MsHPQXAVJkmj/rq9AgGNN/xxmUXd7iB/6xnldUSRfHDberjd9lr6zlG+oEtj9nmpLNA/Wd + worker-key: feBqPOJotxyv+jWKWvYGWw6/ISzP2dms9jhiy4Nbj4Q= + network-key: yfVmqGTyP3tutFvvrvklhafUJUCTmik+6u6zBRV3Vb4= + stake: 1 + delegation: 0 + gas-price: 1 + network-address: /dns/ny2-suival-0.testnet.sui.io/tcp/8080/http + narwhal-primary-address: /dns/ny2-suival-0.testnet.sui.io/tcp/8081/http + narwhal-worker-address: /dns/ny2-suival-0.testnet.sui.io/tcp/8082/http + narwhal-consensus-address: /ip4/127.0.0.1/tcp/8083/http + - name: validator-4 + account-key: ACfae1xB9WlL4aSAEbIeTzHSK70s6pUFK4MWerGsas0i + protocol-key: lwDow31chV6Qb3bqcHN5EjFVRf6MVttV94z4d4y5srrEz/Ljax/6RV3rHR65OfU1ExK8K5bX1gZ6q8pZgVUTPjWrRt3G8P1aD8hw0gXFFYeE3Wx2+Y4P4r8H4LMcqriZ + worker-key: XpdNknObin/NdNWpBISwDdJxhSlyBVZ85Vn9AnVzxtY= + network-key: 7b8+yXq6rdRw7eToBWfCnYoDBPxDvTVeW6xyiK5u4HM= + stake: 1 + delegation: 0 + gas-price: 1 + network-address: /dns/dal2-suival-0.testnet.sui.io/tcp/8080/http + narwhal-primary-address: /dns/dal2-suival-0.testnet.sui.io/tcp/8081/http + narwhal-worker-address: /dns/dal2-suival-0.testnet.sui.io/tcp/8082/http + narwhal-consensus-address: /ip4/127.0.0.1/tcp/8083/http + - name: validator-18 + account-key: AE6+TGtd9SgOFPJh7sswMd8YDf7G080NeGYwzuIS3/zM + protocol-key: l/fjESkdgYtdwiEnTNEEltgjImpW5k5CIwnq3YHSAlXW2wATYAf+U0CwYHIbFelxC4XpuDZJTMUDp/B1q7lbMms/EuUmHvP59uz3ysNMERt0w+kDDIcdN45yPhJJOTwq + worker-key: Qn3hFtZnGKB5NKeLsjAzb0+N6Nar2UpLeiUYcOBAaAs= + network-key: y3wT8cSNLo+flMsvseffK5fJC72J12ZrT6Tjy6wzQkM= + stake: 1 + delegation: 0 + gas-price: 1 + network-address: /dns/ty6-suival-2.testnet.sui.io/tcp/8080/http + narwhal-primary-address: /dns/ty6-suival-2.testnet.sui.io/tcp/8081/http + narwhal-worker-address: /dns/ty6-suival-2.testnet.sui.io/tcp/8082/http + narwhal-consensus-address: /ip4/127.0.0.1/tcp/8083/http + - name: validator-2 + account-key: AGhrMVMiJ67VCxth8gWXNFOLnFuNkIMjV0GK3EFBfaio + protocol-key: pGmknQNryWXOmxfNJ1L2IpVplX0kcjMpeHAcuRbxv6rlJt1N+96RWegxtf38mLWQFt2b+S8diM25yMFn4ox2YzAHShhhISz8ZzB38WPScV3xXGG0F5KyPXk0sLM1/vjx + worker-key: qolNIcgY6rYX64P5O4oF9ugXl3hPi6yUyZlV1SPjt+M= + network-key: Qn8Zhwld5x22fE1GwIg6Hain9iVRi+iam1RDgp8mvhk= + stake: 1 + delegation: 0 + gas-price: 1 + network-address: /dns/la2-suival-2.testnet.sui.io/tcp/8080/http + narwhal-primary-address: /dns/la2-suival-2.testnet.sui.io/tcp/8081/http + narwhal-worker-address: /dns/la2-suival-2.testnet.sui.io/tcp/8082/http + narwhal-consensus-address: /ip4/127.0.0.1/tcp/8083/http + - name: validator-11 + account-key: AK6LecW3y0UyqzCHu3lUgffRyhGrxEQPjaHRxCilP6Rp + protocol-key: pVydcYoBSOHxVnw2mOg8YXJyqpDYP+ksefqghJwr3OChJNTa3A2NkDaCRKGcvRm6DPiaqBu8qBUSAfjWE4KHfQIllc7qkWYsRfKi0RYQ3zTFYSjal93Am/cAI1q6QX59 + worker-key: PqUDf04k2xNSqR0u2pmaU7L23hIt8gO6B3NoYPsR+RA= + network-key: x/0p4eV6ZQOyRGv9K9hiiaN7TvSfk2AvCttMAVpOoMk= + stake: 1 + delegation: 0 + gas-price: 1 + network-address: /dns/ny2-suival-3.testnet.sui.io/tcp/8080/http + narwhal-primary-address: /dns/ny2-suival-3.testnet.sui.io/tcp/8081/http + narwhal-worker-address: /dns/ny2-suival-3.testnet.sui.io/tcp/8082/http + narwhal-consensus-address: /ip4/127.0.0.1/tcp/8083/http + - name: validator-16 + account-key: AImuNvQVTUSNUQrsBSi7dzT+a+wVsSQM5fQMfdQ1CTZ0 + protocol-key: qBvUTaWiYjKIledSoTM8rwt4C7dqCVFuUPyQBNDOOSa109JlgUafHGEIeOHrrUlCEnAwTiXs+s2JlwmyegQzJp2ECnbz4JRPzFqbBhS7VDJ7UfydXbq4KDt12q8yb5v4 + worker-key: XFw5/sTtKHd47+vpj7uvt+FkAyOq1FnvGS/7be6suoA= + network-key: EEqhzNCQ6/nPfCW7jLMKQS2TGb2dY2CHAme8mlEZGKY= + stake: 1 + delegation: 0 + gas-price: 1 + network-address: /dns/ty6-suival-0.testnet.sui.io/tcp/8080/http + narwhal-primary-address: /dns/ty6-suival-0.testnet.sui.io/tcp/8081/http + narwhal-worker-address: /dns/ty6-suival-0.testnet.sui.io/tcp/8082/http + narwhal-consensus-address: /ip4/127.0.0.1/tcp/8083/http + - name: validator-15 + account-key: AFDDthZ/GakRrsI2QZJ8gQFEt+fJvKwpJJoYm+p/NW07 + protocol-key: q5U/HPqV6OsFbc5gzr+FPRfBGqyHqO683epGiQ535TOEYRkSi3wZFFUdDfWId7ORD5EIYWj7ZtA4C8uPrP3XsbIQogNizEyDu3CwytSwtcTa4/bIvc8HK/0KoDnPNOG2 + worker-key: ydUPJzWYwe3RdAUo5zMZvyAattOKn+wfxwdrQTRpxqA= + network-key: rU4e5yh97eNS5nCaa7EbbqnJVMcHehybdtBlIZjSHdU= + stake: 1 + delegation: 0 + gas-price: 1 + network-address: /dns/mh1-suival-3.testnet.sui.io/tcp/8080/http + narwhal-primary-address: /dns/mh1-suival-3.testnet.sui.io/tcp/8081/http + narwhal-worker-address: /dns/mh1-suival-3.testnet.sui.io/tcp/8082/http + narwhal-consensus-address: /ip4/127.0.0.1/tcp/8083/http + - name: validator-5 + account-key: ALaZN89Ud2dli3QScggR+9+2CqSkct2f7qMXQ1osFaBd + protocol-key: rA3xsZLdYP8f1Jhdy/qaAZJTZ1XGza6P167xhffC9qd/ThVdV0K/Pg0t9g5TpYHoEygnvMO8oPyJA2+zwbutgCTRaM1z573NN3mtbjK57R+S7aqwZiN2kI7aoymX9oHs + worker-key: EgpJ/Hdk6X+H8jXxurlwR1EiIlDkryVCQ4HMrk72INQ= + network-key: twXGi96O3XWKERXGzu1Y03Rl6uUr+1Tqx9kGuGV+Gew= + stake: 1 + delegation: 0 + gas-price: 1 + network-address: /dns/dal2-suival-1.testnet.sui.io/tcp/8080/http + narwhal-primary-address: /dns/dal2-suival-1.testnet.sui.io/tcp/8081/http + narwhal-worker-address: /dns/dal2-suival-1.testnet.sui.io/tcp/8082/http + narwhal-consensus-address: /ip4/127.0.0.1/tcp/8083/http + - name: validator-19 + account-key: AFhY6i8XnpRoImndz7kj+M6mjIpZz1248oyO5Ou/ajG8 + protocol-key: rewCDjFrQpvCurd4M6cl1/icgJsGKombV1OAd0iyskXN4WqXZiP/V7xy7fNZfciwD2k0nl8uQCaLEPXsO/zBL0ZGr2n274JYVm8j4gOekJcUpdAQ3LWPqDh3pRsxBVE+ + worker-key: 7J91jtn+//gCHUPIi8Std5hhSFLs9snJhPbnHPueudc= + network-key: 3PKKDx6y6CzV0+eK9G3WvH/queuZe3byCYIOTYIkyiQ= + stake: 1 + delegation: 0 + gas-price: 1 + network-address: /dns/ty6-suival-3.testnet.sui.io/tcp/8080/http + narwhal-primary-address: /dns/ty6-suival-3.testnet.sui.io/tcp/8081/http + narwhal-worker-address: /dns/ty6-suival-3.testnet.sui.io/tcp/8082/http + narwhal-consensus-address: /ip4/127.0.0.1/tcp/8083/http + - name: validator-12 + account-key: AAYmiOgJnOyXfMPEwP49TUUUTw4dlIA/8IXeKEv8M4RK + protocol-key: sfQG62p+A88facvLw+lXcDh6TtSaeaRa3D8dhMJpLWgJZ4NRl2JFSaUlYHWwP+zVGSdbyLGm72426wv5cKnVkHM8cxhNvpZRq370bYHTfTAb34WJ2mxHiqx5pChHJp4E + worker-key: UEtOxAHp/invOWPV8Uuls3/46iLdKFJIGEb2zhJIsNs= + network-key: ibWn5j/N9BqepJXTWioH47A2u//ASB3Xug50e7jmJ80= + stake: 1 + delegation: 0 + gas-price: 1 + network-address: /dns/mh1-suival-0.testnet.sui.io/tcp/8080/http + narwhal-primary-address: /dns/mh1-suival-0.testnet.sui.io/tcp/8081/http + narwhal-worker-address: /dns/mh1-suival-0.testnet.sui.io/tcp/8082/http + narwhal-consensus-address: /ip4/127.0.0.1/tcp/8083/http + - name: validator-3 + account-key: AIyUji/hvun9TdRLQXpN8UNgn3sIjSosETJWkPSwDzHr + protocol-key: tH2JgU9S5IFnC17arEV0dn2sRlZmgaHpOAVQvIJfvXAnZTOLDwHzepPbFpp3i9g+DzUyeKWSh06N7jILNze8jdhLeZ1fumbu07GgmpL2vdYR3Qbxg64DpsKLPMeNi3V1 + worker-key: NM/63ks+HTfHnPSRKU7Yh9I0c5qTm1ajr4akXpBR5V0= + network-key: 5VuCiFi9kAK7QlsZBuymT9xsIG/sPoFcmjHoGn/CPgs= + stake: 1 + delegation: 0 + gas-price: 1 + network-address: /dns/la2-suival-3.testnet.sui.io/tcp/8080/http + narwhal-primary-address: /dns/la2-suival-3.testnet.sui.io/tcp/8081/http + narwhal-worker-address: /dns/la2-suival-3.testnet.sui.io/tcp/8082/http + narwhal-consensus-address: /ip4/127.0.0.1/tcp/8083/http + - name: validator-1 + account-key: AG+M0+OIB31YRR/FQKdzt7aP4qUPBQSMyCWK+Da9Zmax + protocol-key: tlb8KVZRWWJZQ6TmpE+5ZL05Vb0TTnCMbJ+kWX5GtcnpaeRiFqlUKiYM5npZCCWyFx8f1VwW5gfg8OejVRlo+weJr50yphZdA53GkbJiOWxSY58DSNTQINB/lEdOAeJQ + worker-key: xplIPV8w5ahH8UaWChJcPrkSVZAGtKwMXCWdT8lSaPU= + network-key: pZdlHJfW9hxT415bG8kusy7m4TDfW0gkNMsx3MVs73o= + stake: 1 + delegation: 0 + gas-price: 1 + network-address: /dns/la2-suival-1.testnet.sui.io/tcp/8080/http + narwhal-primary-address: /dns/la2-suival-1.testnet.sui.io/tcp/8081/http + narwhal-worker-address: /dns/la2-suival-1.testnet.sui.io/tcp/8082/http + narwhal-consensus-address: /ip4/127.0.0.1/tcp/8083/http + - name: validator-6 + account-key: AGq4caYZr20U1EM7WkRo6CYVuKfjWmda1b5AGdgaSN2s + protocol-key: t/ueFnCtZPsfXozjLmRwefOht+pyelCaTgctHqOomF5gd0MuXdDSvOCAH3yWiaIVBskY54766sEG0antAeAtJHRwKXHGo99RR5nRRxUbekTvq7T05TTpQxW1pi4Cr/5O + worker-key: MM7hhssxwhocxsg8ZrEYXjMggQsrWaiQzCZpkwv7ya8= + network-key: q1+yp6neJ0VYGcRFDDfarMM6XN+CwiNVmqfc7IElUNY= + stake: 1 + delegation: 0 + gas-price: 1 + network-address: /dns/dal2-suival-2.testnet.sui.io/tcp/8080/http + narwhal-primary-address: /dns/dal2-suival-2.testnet.sui.io/tcp/8081/http + narwhal-worker-address: /dns/dal2-suival-2.testnet.sui.io/tcp/8082/http + narwhal-consensus-address: /ip4/127.0.0.1/tcp/8083/http + - name: validator-0 + account-key: APlYeKnmB0RcPB5cYaII7aAvjjAt19cVt3d9eJBCQwjX + protocol-key: uQWpdXdUDiw5/MSyB56qIUZoCOApbKzuXE9MkgjekQsn6PPSLEIydbr16TVKm8ifADeZUnFeIQ39VwT3LBveXXS8ncRoBddREyR/S19AXGWigynhjLi5hNGCfFO+FWHS + worker-key: 6zvKuVVIhIgczd4Gf3AhWzdJyINtK8yxoVLxlUw3kSU= + network-key: 2tgtZR/dK2E9rEfdenqmLKxjqjH0jJV7CcT4ywRA6uw= + stake: 1 + delegation: 0 + gas-price: 1 + network-address: /dns/la2-suival-0.testnet.sui.io/tcp/8080/http + narwhal-primary-address: /dns/la2-suival-0.testnet.sui.io/tcp/8081/http + narwhal-worker-address: /dns/la2-suival-0.testnet.sui.io/tcp/8082/http + narwhal-consensus-address: /ip4/127.0.0.1/tcp/8083/http + send_timeout: + secs: 30 + nanos: 0 + recv_timeout: + secs: 30 + nanos: 0 + buffer_size: 650000 + db_folder_path: /data/gateway_client_db \ No newline at end of file diff --git a/crates/sui/src/keytool.rs b/crates/sui/src/keytool.rs index 7e042279cac62..280c9529b39ff 100644 --- a/crates/sui/src/keytool.rs +++ b/crates/sui/src/keytool.rs @@ -60,8 +60,8 @@ pub enum KeyToolCommand { key_scheme: SignatureScheme, derivation_path: Option, }, - /// This is a temporary helper function to ensure that testnet genesis does not break while - /// we transition towards BLS signatures. + /// Read keypair from path and show its base64 encoded value with flag. This is useful + /// to generate protocol, account, worker, network keys in NodeConfig with its expected encoding. LoadKeypair { file: PathBuf, }, @@ -155,18 +155,24 @@ impl KeyToolCommand { } KeyToolCommand::LoadKeypair { file } => { - let res: Result = read_keypair_from_file(&file); - - match res { + match read_keypair_from_file(&file) { Ok(keypair) => { + // Account keypair is encoded with the key scheme flag {}, + // and network and worker keypair are not. println!("Account Keypair: {}", keypair.encode_base64()); - println!("Network Keypair: {}", keypair.encode_base64()); if let SuiKeyPair::Ed25519SuiKeyPair(kp) = keypair { - println!("Protocol Keypair: {}", kp.encode_base64()); + println!("Network Keypair: {}", kp.encode_base64()); + println!("Worker Keypair: {}", kp.encode_base64()); }; } - Err(e) => { - println!("Failed to read keypair at path {:?} err: {:?}", file, e) + Err(_) => { + // Authority keypair file is not stored with the flag, it will try read as BLS keypair.. + match read_authority_keypair_from_file(&file) { + Ok(kp) => println!("Protocol Keypair: {}", kp.encode_base64()), + Err(e) => { + println!("Failed to read keypair at path {:?} err: {:?}", file, e) + } + } } } }