diff --git a/cmd/version.go b/cmd/version.go index d0c040e37137638198676a1fdf9864d210377a82..6c1554e85a22f396b1a7b9dab34df59801ab34a6 100644 --- a/cmd/version.go +++ b/cmd/version.go @@ -16,7 +16,7 @@ import ( ) // Change this value to set the version for this build -const currentVersion = "1.5.0" +const currentVersion = "1.6.0" func printVersion() { fmt.Printf("xx network Server v%s -- %s\n\n", SEMVER, GITVERSION) diff --git a/cmd/version_vars.go b/cmd/version_vars.go index a93a0e5164fb16cb2f10ade80e5dc7696be9915c..762a70dbb53317825c45ff9c842a6daab5556791 100644 --- a/cmd/version_vars.go +++ b/cmd/version_vars.go @@ -1,10 +1,10 @@ // Code generated by go generate; DO NOT EDIT. // This file was generated by robots at -// 2020-09-17 15:59:14.55514476 -0700 PDT m=+0.013273410 +// 2020-10-07 09:59:33.842402123 -0700 PDT m=+0.006538116 package cmd -const GITVERSION = `cfc34f08 Update dependencies` -const SEMVER = "1.5.0" +const GITVERSION = `0019f7b7 Point to a hotfix comms branch` +const SEMVER = "1.6.0" const DEPENDENCIES = `module gitlab.com/elixxir/server go 1.13 @@ -29,13 +29,14 @@ require ( github.com/spf13/jwalterweatherman v1.1.0 github.com/spf13/pflag v1.0.5 // indirect github.com/spf13/viper v1.6.3 - gitlab.com/elixxir/comms v0.0.0-20200917221445-8a509560122a - gitlab.com/elixxir/crypto v0.0.0-20200731174640-0503cf80524a - gitlab.com/elixxir/gpumathsgo v0.0.2-0.20200617001921-1de1fff56304 - gitlab.com/elixxir/primitives v0.0.0-20200708185800-a06e961280e6 + gitlab.com/elixxir/comms v0.0.0-20201007164918-8331c82e4f19 + gitlab.com/elixxir/crypto v0.0.0-20200929234850-a63eab712d94 + gitlab.com/elixxir/gpumathsgo v0.0.2-0.20201007163558-0fea70f49fe0 + gitlab.com/elixxir/primitives v0.0.0-20200929202834-811c810c6387 gitlab.com/xx_network/comms v0.0.0-20200916172635-6ab807c3c820 - golang.org/x/crypto v0.0.0-20200707235045-ab33eee955e0 - google.golang.org/grpc v1.30.0 + gitlab.com/xx_network/crypto v0.0.0-20200806202113-978fa1984bbf // indirect + golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de + google.golang.org/grpc v1.31.0 gopkg.in/ini.v1 v1.55.0 // indirect gopkg.in/yaml.v2 v2.3.0 mellium.im/sasl v0.0.0-20190815210834-e27ea4901008 // indirect diff --git a/go.mod b/go.mod index 3aeb3a07b79fb1c882ba0d2b8fb51e310e50455f..efb6f1a24510131666b0be4f28fe289ff49caa1e 100644 --- a/go.mod +++ b/go.mod @@ -22,13 +22,14 @@ require ( github.com/spf13/jwalterweatherman v1.1.0 github.com/spf13/pflag v1.0.5 // indirect github.com/spf13/viper v1.6.3 - gitlab.com/elixxir/comms v0.0.0-20200917221445-8a509560122a - gitlab.com/elixxir/crypto v0.0.0-20200731174640-0503cf80524a - gitlab.com/elixxir/gpumathsgo v0.0.2-0.20200617001921-1de1fff56304 - gitlab.com/elixxir/primitives v0.0.0-20200708185800-a06e961280e6 + gitlab.com/elixxir/comms v0.0.0-20201007164918-8331c82e4f19 + gitlab.com/elixxir/crypto v0.0.0-20200929234850-a63eab712d94 + gitlab.com/elixxir/gpumathsgo v0.0.2-0.20201007163558-0fea70f49fe0 + gitlab.com/elixxir/primitives v0.0.0-20200929202834-811c810c6387 gitlab.com/xx_network/comms v0.0.0-20200916172635-6ab807c3c820 - golang.org/x/crypto v0.0.0-20200707235045-ab33eee955e0 - google.golang.org/grpc v1.30.0 + gitlab.com/xx_network/crypto v0.0.0-20200806202113-978fa1984bbf // indirect + golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de + google.golang.org/grpc v1.31.0 gopkg.in/ini.v1 v1.55.0 // indirect gopkg.in/yaml.v2 v2.3.0 mellium.im/sasl v0.0.0-20190815210834-e27ea4901008 // indirect diff --git a/go.sum b/go.sum index 08d9a1cd3be38f4fbfe56255aa5605529c23615d..a1e3c909e68cc0932bc33ad8ccd110b0c0057b51 100644 --- a/go.sum +++ b/go.sum @@ -197,24 +197,62 @@ github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1 github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= +github.com/zeebo/assert v0.0.0-20181109011804-10f827ce2ed6/go.mod h1:yssERNPivllc1yU3BvpjYI5BUW+zglcz6QWqeVRL5t0= +github.com/zeebo/assert v1.1.0/go.mod h1:Pq9JiuJQpG8JLJdtkwrJESF0Foym2/D9XMU5ciN/wJ0= +github.com/zeebo/blake3 v0.0.4/go.mod h1:YOZo8A49yNqM0X/Y+JmDUZshJWLt1laHsNSn5ny2i34= +github.com/zeebo/pcg v0.0.0-20181207190024-3cdc6b625a05/go.mod h1:Gr+78ptB0MwXxm//LBaEvBiaXY7hXJ6KGe2V32X2F6E= gitlab.com/elixxir/comms v0.0.0-20200707210150-b8ebd0951d23 h1:ikyf3DPibZq+SsVUeT6swPR53P9gjzfNzrKR172KNPg= gitlab.com/elixxir/comms v0.0.0-20200707210150-b8ebd0951d23/go.mod h1:OsWMZ1O/R9fOkm+PoHnR3rkXfFtipGoPs73FuKuurHY= gitlab.com/elixxir/comms v0.0.0-20200917221445-8a509560122a h1:WsrvOH/UUkOImFg79R6O93b/ZR40KiyHNXKf2rSRXGk= gitlab.com/elixxir/comms v0.0.0-20200917221445-8a509560122a/go.mod h1:L2Va13j2AbQkpkveOQmNzrQD37uI5NKeBhYH+LWMOx0= +gitlab.com/elixxir/comms v0.0.0-20201007164918-8331c82e4f19 h1:g8KpUhsUPRppsGlN4F5/yJLpG/adxM6jb+4to4dGaWo= +gitlab.com/elixxir/comms v0.0.0-20201007164918-8331c82e4f19/go.mod h1:kY0+AZPKkZMB+Dgvwj5cfqNE+OJjtbkxYj9hLhddN4A= gitlab.com/elixxir/crypto v0.0.0-20200612160324-a76e4451ae25/go.mod h1:SpcmFZ4baOMRxH7qo2myvYFNr8/bz9ItYzVo5Q2Ld1k= gitlab.com/elixxir/crypto v0.0.0-20200707005343-97f868cbd930 h1:9qzfwyR12OYgn3j30qcHZHHVfWshWnH54lcAHppEROQ= gitlab.com/elixxir/crypto v0.0.0-20200707005343-97f868cbd930/go.mod h1:LHBAaEf48a0/AjU118rjoworH0LgXifhAqmNX3ZRvME= gitlab.com/elixxir/crypto v0.0.0-20200731174640-0503cf80524a h1:peZpulfSqLSceA5ovtzQ5MPgQt4YbJY8FzpV2S2Nrhc= gitlab.com/elixxir/crypto v0.0.0-20200731174640-0503cf80524a/go.mod h1:LHBAaEf48a0/AjU118rjoworH0LgXifhAqmNX3ZRvME= +gitlab.com/elixxir/crypto v0.0.0-20200804182833-984246dea2c4/go.mod h1:ucm9SFKJo+K0N2GwRRpaNr+tKXMIOVWzmyUD0SbOu2c= +gitlab.com/elixxir/crypto v0.0.0-20200805174804-bdf909f2a16d/go.mod h1:cu6uNoANVLV0J6HyTL6KqVtVyh9SHU1RjJhytYlsbVQ= +gitlab.com/elixxir/crypto v0.0.0-20200929201533-f18c8bfec2a3 h1:5BzPvWqsjHzDXsSchXHPVH5zY2Ewusx/fgYJkPNtirk= +gitlab.com/elixxir/crypto v0.0.0-20200929201533-f18c8bfec2a3/go.mod h1:PFeyONfhulnM72O2wROslwhNadtnyvKAD2QLtQzAifM= +gitlab.com/elixxir/crypto v0.0.0-20200929230508-d362be55e7ac h1:UfyVuYTnTW/eGKK119k+IpnphjsvF8RTdZloK0r94Mk= +gitlab.com/elixxir/crypto v0.0.0-20200929230508-d362be55e7ac/go.mod h1:PFeyONfhulnM72O2wROslwhNadtnyvKAD2QLtQzAifM= +gitlab.com/elixxir/crypto v0.0.0-20200929234850-a63eab712d94 h1:erhwVQzEFVlcsfJtN89rRAR0GRo7JhmlceiCA2mIyv4= +gitlab.com/elixxir/crypto v0.0.0-20200929234850-a63eab712d94/go.mod h1:PFeyONfhulnM72O2wROslwhNadtnyvKAD2QLtQzAifM= +gitlab.com/elixxir/crypto v0.0.0-20201002151041-c4ab8f8033dc h1:Eg/f19rGUT8xEmvJ78DB4WXSS9OP+VWXjh/gVimIYNA= +gitlab.com/elixxir/crypto v0.0.0-20201002151041-c4ab8f8033dc/go.mod h1:LthCESQ1AfV1H26URYL9kr+XgXXCE7JfEEPpomFPxIo= gitlab.com/elixxir/gpumathsgo v0.0.2-0.20200617001921-1de1fff56304 h1:pK9IXv2s7YZX+dGc6UfIWGrDTQjP4kHpGEo0siL/4cQ= gitlab.com/elixxir/gpumathsgo v0.0.2-0.20200617001921-1de1fff56304/go.mod h1:PymVIFnQSHltaQqwjUTbvSnT9FNViO3XkuNiP9m65vM= +gitlab.com/elixxir/gpumathsgo v0.0.2-0.20201001212319-e5e5794e81ef h1:hrNi2NqazA2IAeF9sq+EcqMnFBebegBwrLaz8pBJezQ= +gitlab.com/elixxir/gpumathsgo v0.0.2-0.20201001212319-e5e5794e81ef/go.mod h1:Xzg3HHVorqlJeQTpajlKpFN4VNKGAp2eORGck9NtyEc= +gitlab.com/elixxir/gpumathsgo v0.0.2-0.20201002184945-6117de9a219e h1:EF+E6g9/7IymH4pz20kaoK8Oua44n/AYtifbSHBzQHo= +gitlab.com/elixxir/gpumathsgo v0.0.2-0.20201002184945-6117de9a219e/go.mod h1:Xzg3HHVorqlJeQTpajlKpFN4VNKGAp2eORGck9NtyEc= +gitlab.com/elixxir/gpumathsgo v0.0.2-0.20201002224936-10c0009b7bdd h1:oA7/PmaCVQlxYqWtPpN1JN8rNp+DiIzXPBFuSoVQnoI= +gitlab.com/elixxir/gpumathsgo v0.0.2-0.20201002224936-10c0009b7bdd/go.mod h1:Xzg3HHVorqlJeQTpajlKpFN4VNKGAp2eORGck9NtyEc= +gitlab.com/elixxir/gpumathsgo v0.0.2-0.20201007163558-0fea70f49fe0 h1:blqjf4He46aA1zfrnPrYl6N+pAet05bPwmqvRfZ6xZI= +gitlab.com/elixxir/gpumathsgo v0.0.2-0.20201007163558-0fea70f49fe0/go.mod h1:vUk8KpHenphHQgPszZcdyGDgd4/nEuqD7elXSynZUuM= gitlab.com/elixxir/primitives v0.0.0-20200608222556-1d2c04e59346/go.mod h1:OQgUZq7SjnE0b+8+iIAT2eqQF+2IFHn73tOo+aV11mg= gitlab.com/elixxir/primitives v0.0.0-20200706165052-9fe7a4fb99a3 h1:GTfflZBNLeBq3UApYog0J3+hytdkoRsDduGQji2wyEU= gitlab.com/elixxir/primitives v0.0.0-20200706165052-9fe7a4fb99a3/go.mod h1:OQgUZq7SjnE0b+8+iIAT2eqQF+2IFHn73tOo+aV11mg= gitlab.com/elixxir/primitives v0.0.0-20200708185800-a06e961280e6 h1:7xLD8w5qAKN1YqG2UiMiN3rODUACyQME83uDlVhvWLo= gitlab.com/elixxir/primitives v0.0.0-20200708185800-a06e961280e6/go.mod h1:OQgUZq7SjnE0b+8+iIAT2eqQF+2IFHn73tOo+aV11mg= +gitlab.com/elixxir/primitives v0.0.0-20200731184040-494269b53b4d/go.mod h1:OQgUZq7SjnE0b+8+iIAT2eqQF+2IFHn73tOo+aV11mg= +gitlab.com/elixxir/primitives v0.0.0-20200804170709-a1896d262cd9/go.mod h1:p0VelQda72OzoUckr1O+vPW0AiFe0nyKQ6gYcmFSuF8= +gitlab.com/elixxir/primitives v0.0.0-20200804182913-788f47bded40/go.mod h1:tzdFFvb1ESmuTCOl1z6+yf6oAICDxH2NPUemVgoNLxc= +gitlab.com/elixxir/primitives v0.0.0-20200804231232-ad79a9e8f113/go.mod h1:tzdFFvb1ESmuTCOl1z6+yf6oAICDxH2NPUemVgoNLxc= +gitlab.com/elixxir/primitives v0.0.0-20200805174810-86b366d1dd2d/go.mod h1:tzdFFvb1ESmuTCOl1z6+yf6oAICDxH2NPUemVgoNLxc= +gitlab.com/elixxir/primitives v0.0.0-20200929195204-dd3970d93573/go.mod h1:OQgUZq7SjnE0b+8+iIAT2eqQF+2IFHn73tOo+aV11mg= +gitlab.com/elixxir/primitives v0.0.0-20200929202834-811c810c6387 h1:fYq0BEh1ksZVSqLkb0L+G3j8mUbQ9AsFSLEOsF1+11Q= +gitlab.com/elixxir/primitives v0.0.0-20200929202834-811c810c6387/go.mod h1:OQgUZq7SjnE0b+8+iIAT2eqQF+2IFHn73tOo+aV11mg= +gitlab.com/xx_network/comms v0.0.0-20200805174823-841427dd5023/go.mod h1:owEcxTRl7gsoM8c3RQ5KAm5GstxrJp5tn+6JfQ4z5Hw= gitlab.com/xx_network/comms v0.0.0-20200916172635-6ab807c3c820 h1:vdozJQgrnznmHJLS38aOXprLKZXClnHJ9ljY/70aWuI= gitlab.com/xx_network/comms v0.0.0-20200916172635-6ab807c3c820/go.mod h1:J+GJ6fn71a4xnYVvbcrhtvWSOQIqqhaGcaej5xB3/JY= +gitlab.com/xx_network/crypto v0.0.0-20200806202113-978fa1984bbf h1:MuVrOLxQkHqZJhj5VAHVbf1WoJVt1JDiJt7JwR+KD7A= +gitlab.com/xx_network/crypto v0.0.0-20200806202113-978fa1984bbf/go.mod h1:i0df/q6dDCBiscgD51fMoS2U2TBrm6LcyN822JmB5Tw= +gitlab.com/xx_network/primitives v0.0.0-20200803231956-9b192c57ea7c/go.mod h1:wtdCMr7DPePz9qwctNoAUzZtbOSHSedcK++3Df3psjA= +gitlab.com/xx_network/primitives v0.0.0-20200804183002-f99f7a7284da h1:CCVslUwNC7Ul7NG5nu3ThGTSVUt1TxNRX+47f5TUwnk= +gitlab.com/xx_network/primitives v0.0.0-20200804183002-f99f7a7284da/go.mod h1:OK9xevzWCaPO7b1wiluVJGk7R5ZsuC7pHY5hteZFQug= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= @@ -226,6 +264,8 @@ golang.org/x/crypto v0.0.0-20200510223506-06a226fb4e37/go.mod h1:LzIPMQfyMNhhGPh golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200707235045-ab33eee955e0 h1:eIYIE7EC5/Wv5Kbz8bJPaq+TN3kq3W8S+LSm62vM0DY= golang.org/x/crypto v0.0.0-20200707235045-ab33eee955e0/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de h1:ikNHVSjEfnvz6sxdSPCaPt572qowuyMDMJLLm3Db3ig= +golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= @@ -256,6 +296,7 @@ golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5h golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200519105757-fe76b779f299 h1:DYfZAGf2WMFjMxbgTjaC+2HC7NkNAQs+6Q8b9WEB/F4= golang.org/x/sys v0.0.0-20200519105757-fe76b779f299/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -296,6 +337,8 @@ google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8 google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk= google.golang.org/grpc v1.30.0 h1:M5a8xTlYTxwMn5ZFkwhRabsygDY5G8TYLyQDBxJNAxE= google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= +google.golang.org/grpc v1.31.0 h1:T7P4R73V3SSDPhH7WW7ATbfViLtmamH0DKrP3f9AuDI= +google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= diff --git a/graphs/clientServer_test.go b/graphs/clientServer_test.go index fc1fc4cbe198e85927c46b3cc1e169e1ffc7e9f0..cdf8c16f002f1294a773ce7fd6fda8c923dd663c 100644 --- a/graphs/clientServer_test.go +++ b/graphs/clientServer_test.go @@ -32,15 +32,16 @@ import ( // Fill part of message with random payloads // Fill part of message with random payloads -func makeMsg() *format.Message { +func makeMsg(grp *cyclic.Group) format.Message { + primeLegnth := len(grp.GetPBytes()) rng := rand.New(rand.NewSource(21)) - payloadA := make([]byte, format.PayloadLen) - payloadB := make([]byte, format.PayloadLen) + payloadA := make([]byte, primeLegnth) + payloadB := make([]byte, primeLegnth) rng.Read(payloadA) rng.Read(payloadB) - msg := format.NewMessage() + msg := format.NewMessage(primeLegnth) msg.SetPayloadA(payloadA) - msg.SetDecryptedPayloadB(payloadB) + msg.SetPayloadB(payloadB) return msg } @@ -134,7 +135,7 @@ func TestClientServer(t *testing.T) { userBaseKeys = append(userBaseKeys, usr.BaseKey) //Generate a mock message - inputMsg := makeMsg() + inputMsg := makeMsg(grp) //Encrypt the input message encryptedMsg := cmix.ClientEncrypt(grp, inputMsg, testSalt, userBaseKeys) @@ -158,11 +159,11 @@ func TestClientServer(t *testing.T) { grp.Mul(keyA_Inv, grp.NewIntFromBytes(encryptedMsg.GetPayloadA()), multPayloadA) grp.Mul(keyB_Inv, grp.NewIntFromBytes(encryptedMsg.GetPayloadB()), multPayloadB) - - testMsg := format.NewMessage() + primeLength := len(grp.GetPBytes()) + testMsg := format.NewMessage(primeLength) testMsg.SetPayloadA(multPayloadA.Bytes()) - testMsg.SetDecryptedPayloadB(multPayloadB.LeftpadBytes(format.PayloadLen)) + testMsg.SetPayloadB(multPayloadB.LeftpadBytes(uint64(primeLength))) //Compare the payloads of the 2 messages if !reflect.DeepEqual(testMsg.GetPayloadA(), inputMsg.GetPayloadA()) { diff --git a/graphs/precomputation/strip.go b/graphs/precomputation/strip.go index 49f59a5681743c51d187333583bf69d11f34474d..291f0b2e8063fc440039f0b596034b098514d974 100644 --- a/graphs/precomputation/strip.go +++ b/graphs/precomputation/strip.go @@ -192,39 +192,6 @@ var StripMul2 = services.Module{ Name: "StripMul2", } -var StripChunk = services.Module{ - Adapt: func(streamInput services.Stream, cryptop cryptops.Cryptop, chunk services.Chunk) error { - sssi, ok := streamInput.(stripSubstreamInterface) - sc, ok2 := cryptop.(gpumaths.StripChunkPrototype) - if !ok || !ok2 { - return services.InvalidTypeAssert - } - ss := sssi.GetStripSubStream() - gpuStreams := ss.StreamPool - cpa := ss.CypherPayloadA.GetSubBuffer(chunk.Begin(), chunk.End()) - ppa := ss.EncryptedPayloadAPrecomputation[chunk.Begin():chunk.End()] - ppaResults := ss.PayloadAPrecomputation.GetSubBuffer(chunk.Begin(), chunk.End()) - err := sc(gpuStreams, ss.Grp, ppaResults, ss.Z, ppa, cpa) - if err != nil { - return err - } - - cpb := ss.CypherPayloadB.GetSubBuffer(chunk.Begin(), chunk.End()) - ppb := ss.EncryptedPayloadBPrecomputation[chunk.Begin():chunk.End()] - ppbResults := ss.PayloadBPrecomputation.GetSubBuffer(chunk.Begin(), chunk.End()) - err = sc(gpuStreams, ss.Grp, ppbResults, ss.Z, ppb, cpb) - if err != nil { - return err - } - - return nil - }, - Cryptop: gpumaths.StripChunk, - Name: "PrecompStripGPU", - NumThreads: 2, - InputSize: services.AutoInputSize, -} - // InitStripGraph to initialize the graph. Conforms to graphs.Initialize function type func InitStripGraph(gc services.GraphGenerator) *services.Graph { if viper.GetBool("useGpu") { diff --git a/multiInstance_test.go b/multiInstance_test.go index 24e861393f494d60fd71a7ed562380946f5cf183..53f7fc0c4a5d335a6e2af806420b732ab2e321f6 100644 --- a/multiInstance_test.go +++ b/multiInstance_test.go @@ -17,6 +17,7 @@ import ( "fmt" "github.com/pkg/errors" jww "github.com/spf13/jwalterweatherman" + "github.com/spf13/viper" "gitlab.com/elixxir/comms/mixmessages" pb "gitlab.com/elixxir/comms/mixmessages" nodeComms "gitlab.com/elixxir/comms/node" @@ -59,7 +60,7 @@ import ( var errWg = sync.WaitGroup{} func Test_MultiInstance_N3_B8(t *testing.T) { - elapsed := MultiInstanceTest(3, 32, false, false, t) + elapsed := MultiInstanceTest(3, 32, makeMultiInstanceGroup(), false, false, t) t.Logf("Computational elapsed time for 3 Node, batch size 32, CPU multi-"+ "instance test: %s", elapsed) @@ -71,20 +72,21 @@ func Test_MultiInstance_N3_B32_GPU(t *testing.T) { batchSize = cmd.BatchSizeGPUTest } - elapsed := MultiInstanceTest(3, batchSize, true, false, t) + viper.Set("useGpu", true) + elapsed := MultiInstanceTest(3, batchSize, makeMultiInstanceGroup4k(), true, false, t) - t.Logf("Computational elapsed time for 3 Node, batch size %d, CPU multi-"+ + t.Logf("Computational elapsed time for 3 Node, batch size %d, GPU multi-"+ "instance test: %s", cmd.BatchSizeGPUTest, elapsed) } func Test_MultiInstance_PhaseErr(t *testing.T) { - elapsed := MultiInstanceTest(3, 32, false, true, t) + elapsed := MultiInstanceTest(3, 32, makeMultiInstanceGroup(), false, true, t) t.Logf("Computational elapsed time for 3 Node, batch size 32, error multi-"+ "instance test: %s", elapsed) } -func MultiInstanceTest(numNodes, batchSize int, useGPU, errorPhase bool, t *testing.T) time.Duration { +func MultiInstanceTest(numNodes, batchSize int, grp *cyclic.Group, useGPU, errorPhase bool, t *testing.T) time.Duration { if errorPhase { defer func() { if r := recover(); r != nil { @@ -100,11 +102,9 @@ func MultiInstanceTest(numNodes, batchSize int, useGPU, errorPhase bool, t *test " Received %v", numNodes) } - grp := makeMultiInstanceGroup() - // Get parameters portOffset := int(rand.Uint32() % 2000) - defsLst := makeMultiInstanceParams(numNodes, 20000+portOffset, useGPU, t) + defsLst := makeMultiInstanceParams(numNodes, 20000+portOffset, grp, useGPU, t) // Make user for sending messages userID := id.NewIdFromUInt(42, id.User, t) @@ -436,11 +436,13 @@ func buildMockBatch(batchSize int, grp *cyclic.Group, baseKeys []*cyclic.Int, binary.BigEndian.PutUint64(salt[0:8], uint64(100+6*i)) // Make the payload - payloadA := grp.NewIntFromUInt(uint64(1 + i)).LeftpadBytes(format.PayloadLen) - payloadB := grp.NewIntFromUInt(uint64((513 + i) * 256)).LeftpadBytes(format.PayloadLen) + primeLength := uint64(grp.GetP().ByteLen()) + payloadA := grp.NewIntFromUInt(uint64(1 + i)).LeftpadBytes(primeLength) + payloadB := grp.NewIntFromUInt(uint64((513 + i) * 256)).LeftpadBytes(primeLength) // Make the message - msg := format.NewMessage() + + msg := format.NewMessage(int(primeLength)) msg.SetPayloadA(payloadA) msg.SetPayloadB(payloadB) @@ -638,7 +640,7 @@ func generateCert() ([]byte, []byte) { return crtOut, privOut } -func makeMultiInstanceParams(numNodes, portStart int, useGPU bool, t *testing.T) []*internal.Definition { +func makeMultiInstanceParams(numNodes, portStart int, grp *cyclic.Group, useGPU bool, t *testing.T) []*internal.Definition { // Generate IDs and addresses var nidLst []*id.ID @@ -661,7 +663,7 @@ func makeMultiInstanceParams(numNodes, portStart int, useGPU bool, t *testing.T) } - networkDef := buildNdf(nodeLst) + networkDef := buildNdf(nodeLst, grp) // Generate parameters list var defLst []*internal.Definition @@ -722,8 +724,15 @@ func makeMultiInstanceGroup() *cyclic.Group { large.NewInt(2)) } +func makeMultiInstanceGroup4k() *cyclic.Group { + primeString := "FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7EDEE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3DC2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F83655D23DCA3AD961C62F356208552BB9ED529077096966D670C354E4ABC9804F1746C08CA18217C32905E462E36CE3BE39E772C180E86039B2783A2EC07A28FB5C55DF06F4C52C9DE2BCBF6955817183995497CEA956AE515D2261898FA051015728E5A8AAAC42DAD33170D04507A33A85521ABDF1CBA64ECFB850458DBEF0A8AEA71575D060C7DB3970F85A6E1E4C7ABF5AE8CDB0933D71E8C94E04A25619DCEE3D2261AD2EE6BF12FFA06D98A0864D87602733EC86A64521F2B18177B200CBBE117577A615D6C770988C0BAD946E208E24FA074E5AB3143DB5BFCE0FD108E4B82D120A92108011A723C12A787E6D788719A10BDBA5B2699C327186AF4E23C1A946834B6150BDA2583E9CA2AD44CE8DBBBC2DB04DE8EF92E8EFC141FBECAA6287C59474E6BC05D99B2964FA090C3A2233BA186515BE7ED1F612970CEE2D7AFB81BDD762170481CD0069127D5B05AA993B4EA988D8FDDC186FFB7DC90A6C08F4DF435C934063199FFFFFFFFFFFFFFFF" + + return cyclic.NewGroup(large.NewIntFromString(primeString, 16), + large.NewInt(2)) +} + // buildNdf builds the ndf used for definitions -func buildNdf(nodeLst []internal.Node) *ndf.NetworkDefinition { +func buildNdf(nodeLst []internal.Node, grp *cyclic.Group) *ndf.NetworkDefinition { // Pull the node id's out of nodeList ndfNodes := make([]ndf.Node, 0) for _, ourNode := range nodeLst { @@ -738,19 +747,9 @@ func buildNdf(nodeLst []internal.Node) *ndf.NetworkDefinition { // Build a group group := ndf.Group{ - Prime: "FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD1" + - "29024E088A67CC74020BBEA63B139B22514A08798E3404DD" + - "EF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245" + - "E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7ED" + - "EE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3D" + - "C2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F" + - "83655D23DCA3AD961C62F356208552BB9ED529077096966D" + - "670C354E4ABC9804F1746C08CA18217C32905E462E36CE3B" + - "E39E772C180E86039B2783A2EC07A28FB5C55DF06F4C52C9" + - "DE2BCBF6955817183995497CEA956AE515D2261898FA0510" + - "15728E5A8AACAA68FFFFFFFFFFFFFFFF", + Prime: grp.GetP().TextVerbose(16, 0), SmallPrime: "2", - Generator: "2", + Generator: grp.GetG().TextVerbose(16, 0), } // Construct an ndf diff --git a/services/gpu_test.go b/services/gpu_test.go index 827a90ff2f8d5c8c95d291620f1b9ce5b2c6b56a..684ae835dc8aeea66299c280d3d6150d836a28f5 100644 --- a/services/gpu_test.go +++ b/services/gpu_test.go @@ -295,20 +295,12 @@ func TestCGC(t *testing.T) { // Make a copy to make sure we can get the same results in a different way testExp := goldExp.DeepCopy() - // Make sure there's enough space in the stream to fit the input size - stream := streamPool.TakeStream() - streamPool.ReturnStream(stream) - // MaxSlotsExp should be the same with all streams - if int(gpumaths.ExpChunk.GetInputSize()) > stream.GetMaxSlotsExp() { - t.Fatalf("stream too small! has %v slots. make it bigger", stream.GetMaxSlotsExp()) - } - // Copy to set custom input size gpuBLocal := gpuB.DeepCopy() // We could also set input size to be the number of slots that's less than MaxSlotsExp that has a common factor with the CPU input sizes // That would allow for fairly large chunks while not exceeding input size // The user is responsible for choosing an input size that will work well with both the dispatcher and CUDA - gpuBLocal.InputSize = uint32(stream.GetMaxSlotsExp()) + gpuBLocal.InputSize = 512 // Time test graph runs, just for fun start := time.Now() runTestGraph(&goldExp, cpuA.DeepCopy(), cpuB.DeepCopy(), cpuC.DeepCopy()) @@ -355,20 +347,12 @@ func TestGGG(t *testing.T) { // Make a copy to make sure we can get the same results in a different way testExp := goldExp.DeepCopy() - // Make sure there's enough space in the stream to fit the input size - stream := streamPool.TakeStream() - streamPool.ReturnStream(stream) - // MaxSlotsExp should be the same with all streams - if int(gpumaths.ExpChunk.GetInputSize()) > stream.GetMaxSlotsExp() { - t.Fatalf("stream too small! has %v slots. make it bigger", stream.GetMaxSlotsExp()) - } - gpuALocal := gpuA.DeepCopy() gpuBLocal := gpuB.DeepCopy() gpuCLocal := gpuC.DeepCopy() - gpuALocal.InputSize = uint32(stream.GetMaxSlotsExp()) - gpuBLocal.InputSize = uint32(stream.GetMaxSlotsExp()) - gpuCLocal.InputSize = uint32(stream.GetMaxSlotsExp()) + gpuALocal.InputSize = 512 + gpuBLocal.InputSize = 512 + gpuCLocal.InputSize = 512 // Time test graph runs, just for fun start := time.Now()