From 09dde380f906b943eb834b7b93c1afa0c2e49b46 Mon Sep 17 00:00:00 2001 From: Evgeny Danienko <6655321@bk.ru> Date: Tue, 25 Sep 2018 15:54:47 +0300 Subject: cmd/swarm: use expandPath for swarm cli path parameters --- cmd/swarm/config.go | 10 +++++++--- cmd/swarm/upload.go | 6 ++++++ 2 files changed, 13 insertions(+), 3 deletions(-) (limited to 'cmd') diff --git a/cmd/swarm/config.go b/cmd/swarm/config.go index ae4b5816e..c2f885d25 100644 --- a/cmd/swarm/config.go +++ b/cmd/swarm/config.go @@ -124,7 +124,7 @@ func initSwarmNode(config *bzzapi.Config, stack *node.Node, ctx *cli.Context) { //get the account for the provided swarm account prvkey := getAccount(config.BzzAccount, ctx, stack) //set the resolved config path (geth --datadir) - config.Path = stack.InstanceDir() + config.Path = expandPath(stack.InstanceDir()) //finally, initialize the configuration config.Init(prvkey) //configuration phase completed here @@ -182,7 +182,7 @@ func cmdLineOverride(currentConfig *bzzapi.Config, ctx *cli.Context) *bzzapi.Con if ctx.GlobalIsSet(utils.DataDirFlag.Name) { if datadir := ctx.GlobalString(utils.DataDirFlag.Name); datadir != "" { - currentConfig.Path = datadir + currentConfig.Path = expandPath(datadir) } } @@ -226,6 +226,10 @@ func cmdLineOverride(currentConfig *bzzapi.Config, ctx *cli.Context) *bzzapi.Con if len(ensAPIs) == 1 && ensAPIs[0] == "" { ensAPIs = nil } + for i := range ensAPIs { + ensAPIs[i] = expandPath(ensAPIs[i]) + } + currentConfig.EnsAPIs = ensAPIs } @@ -268,7 +272,7 @@ func envVarsOverride(currentConfig *bzzapi.Config) (config *bzzapi.Config) { } if datadir := os.Getenv(GETH_ENV_DATADIR); datadir != "" { - currentConfig.Path = datadir + currentConfig.Path = expandPath(datadir) } bzzport := os.Getenv(SWARM_ENV_PORT) diff --git a/cmd/swarm/upload.go b/cmd/swarm/upload.go index 9eae2a3f8..f76cb1b98 100644 --- a/cmd/swarm/upload.go +++ b/cmd/swarm/upload.go @@ -138,6 +138,12 @@ func upload(ctx *cli.Context) { // 3. cleans the path, e.g. /a/b/../c -> /a/c // Note, it has limitations, e.g. ~someuser/tmp will not be expanded func expandPath(p string) string { + if i := strings.Index(p, ":"); i > 0 { + return p + } + if i := strings.Index(p, "@"); i > 0 { + return p + } if strings.HasPrefix(p, "~/") || strings.HasPrefix(p, "~\\") { if home := homeDir(); home != "" { p = home + p[1:] -- cgit v1.2.3 From bf411a04ba61050361adbd19a0d0cf66f9c14617 Mon Sep 17 00:00:00 2001 From: Paul Berg Date: Wed, 26 Sep 2018 11:36:13 +0300 Subject: cmd/clef: added more details to the clef tutorial (#17759) * Added more details to the clef tutorial * Fixed last issues with the comments on the clef tutorial --- cmd/clef/tutorial.md | 87 ++++++++++++++++++++++++++++++---------------------- 1 file changed, 50 insertions(+), 37 deletions(-) (limited to 'cmd') diff --git a/cmd/clef/tutorial.md b/cmd/clef/tutorial.md index ed86f4810..dfb31ba4e 100644 --- a/cmd/clef/tutorial.md +++ b/cmd/clef/tutorial.md @@ -31,43 +31,51 @@ NOTE: This file does not contain your accounts. Those need to be backed up separ ## Creating rules -Now, you can create a rule-file. +Now, you can create a rule-file. Note that it is not mandatory to use predefined rules, but it's really handy. ```javascript function ApproveListing(){ return "Approve" } ``` -Get the `sha256` hash.... + +Get the `sha256` hash. If you have openssl, you can do `openssl sha256 rules.js`... ```text #sha256sum rules.js 6c21d1737429d6d4f2e55146da0797782f3c0a0355227f19d702df377c165d72 rules.js ``` -...And then `attest` the file: +...now `attest` the file... ```text #./signer attest 6c21d1737429d6d4f2e55146da0797782f3c0a0355227f19d702df377c165d72 INFO [02-21|12:14:38] Ruleset attestation updated sha256=6c21d1737429d6d4f2e55146da0797782f3c0a0355227f19d702df377c165d72 ``` -At this point, we then start the signer with the rule-file: +...and (this is required only for non-production versions) load a mock-up `4byte.json` by copying the file from the source to your current working directory: +```text +#cp $GOPATH/src/github.com/ethereum/go-ethereum/cmd/clef/4byte.json $PWD +``` + +At this point, we can start the signer with the rule-file: ```text -#./signer --rules rules.js - -INFO [02-21|12:15:18] Using CLI as UI-channel -INFO [02-21|12:15:18] Loaded 4byte db signatures=5509 file=./4byte.json -INFO [02-21|12:15:18] Could not load rulefile, rules not enabled file=rulefile -DEBUG[02-21|12:15:18] FS scan times list=35.335µs set=5.536µs diff=5.073µs -DEBUG[02-21|12:15:18] Ledger support enabled -DEBUG[02-21|12:15:18] Trezor support enabled -INFO [02-21|12:15:18] Audit logs configured file=audit.log -INFO [02-21|12:15:18] HTTP endpoint opened url=http://localhost:8550 +#./signer --rules rules.js --rpc + +INFO [09-25|20:28:11.866] Using CLI as UI-channel +INFO [09-25|20:28:11.876] Loaded 4byte db signatures=5509 file=./4byte.json +INFO [09-25|20:28:11.877] Rule engine configured file=./rules.js +DEBUG[09-25|20:28:11.877] FS scan times list=100.781µs set=13.253µs diff=5.761µs +DEBUG[09-25|20:28:11.884] Ledger support enabled +DEBUG[09-25|20:28:11.888] Trezor support enabled +INFO [09-25|20:28:11.888] Audit logs configured file=audit.log +DEBUG[09-25|20:28:11.888] HTTP registered namespace=account +INFO [09-25|20:28:11.890] HTTP endpoint opened url=http://localhost:8550 +DEBUG[09-25|20:28:11.890] IPC registered namespace=account +INFO [09-25|20:28:11.890] IPC endpoint opened url= ------- Signer info ------- +* extapi_version : 2.0.0 +* intapi_version : 2.0.0 * extapi_http : http://localhost:8550 * extapi_ipc : -* extapi_version : 2.0.0 -* intapi_version : 1.2.0 - ``` Any list-requests will now be auto-approved by our rule-file. @@ -107,16 +115,16 @@ The `master_seed` was then used to derive a few other things: ## Adding credentials -In order to make more useful rules; sign transactions, the signer needs access to the passwords needed to unlock keystores. +In order to make more useful rules like signing transactions, the signer needs access to the passwords needed to unlock keystores. ```text -#./signer addpw 0x694267f14675d7e1b9494fd8d72fefe1755710fa test +#./signer addpw "0x694267f14675d7e1b9494fd8d72fefe1755710fa" "test_password" INFO [02-21|13:43:21] Credential store updated key=0x694267f14675d7e1b9494fd8d72fefe1755710fa ``` ## More advanced rules -Now let's update the rules to make use of credentials +Now let's update the rules to make use of credentials: ```javascript function ApproveListing(){ @@ -134,13 +142,15 @@ function ApproveSignData(r){ } ``` -In this example, -* any requests to sign data with the account `0x694...` will be - * auto-approved if the message contains with `bazonk`, - * and auto-rejected if it does not. - * Any other signing-requests will be passed along for manual approve/reject. +In this example: +* Any requests to sign data with the account `0x694...` will be + * auto-approved if the message contains with `bazonk` + * auto-rejected if it does not. +* Any other signing-requests will be passed along for manual approve/reject. -..attest the new file +_Note: make sure that `0x694...` is an account you have access to. You can create it either via the clef or the traditional account cli tool. If the latter was chosen, make sure both clef and geth use the same keystore by specifing `--keystore path/to/your/keystore` when running clef._ + +Attest the new file... ```text #sha256sum rules.js 2a0cb661dacfc804b6e95d935d813fd17c0997a7170e4092ffbc34ca976acd9f rules.js @@ -155,21 +165,24 @@ And start the signer: ``` #./signer --rules rules.js --rpc -INFO [02-21|14:41:56] Using CLI as UI-channel -INFO [02-21|14:41:56] Loaded 4byte db signatures=5509 file=./4byte.json -INFO [02-21|14:41:56] Rule engine configured file=rules.js -DEBUG[02-21|14:41:56] FS scan times list=34.607µs set=4.509µs diff=4.87µs -DEBUG[02-21|14:41:56] Ledger support enabled -DEBUG[02-21|14:41:56] Trezor support enabled -INFO [02-21|14:41:56] Audit logs configured file=audit.log -INFO [02-21|14:41:56] HTTP endpoint opened url=http://localhost:8550 +INFO [09-25|21:02:16.450] Using CLI as UI-channel +INFO [09-25|21:02:16.466] Loaded 4byte db signatures=5509 file=./4byte.json +INFO [09-25|21:02:16.467] Rule engine configured file=./rules.js +DEBUG[09-25|21:02:16.468] FS scan times list=1.45262ms set=21.926µs diff=6.944µs +DEBUG[09-25|21:02:16.473] Ledger support enabled +DEBUG[09-25|21:02:16.475] Trezor support enabled +INFO [09-25|21:02:16.476] Audit logs configured file=audit.log +DEBUG[09-25|21:02:16.476] HTTP registered namespace=account +INFO [09-25|21:02:16.478] HTTP endpoint opened url=http://localhost:8550 +DEBUG[09-25|21:02:16.478] IPC registered namespace=account +INFO [09-25|21:02:16.478] IPC endpoint opened url= ------- Signer info ------- * extapi_version : 2.0.0 -* intapi_version : 1.2.0 +* intapi_version : 2.0.0 * extapi_http : http://localhost:8550 * extapi_ipc : -INFO [02-21|14:41:56] error occurred during execution error="ReferenceError: 'OnSignerStartup' is not defined" ``` + And then test signing, once with `bazonk` and once without: ``` @@ -195,4 +208,4 @@ t=2018-02-21T14:42:41+0100 lvl=info msg=Sign api=signer type=request meta t=2018-02-21T14:42:42+0100 lvl=info msg=Sign api=signer type=response data=93e6161840c3ae1efc26dc68dedab6e8fc233bb3fefa1b4645dbf6609b93dace160572ea4ab33240256bb6d3dadb60dcd9c515d6374d3cf614ee897408d41d541c error=nil t=2018-02-21T14:42:56+0100 lvl=info msg=Sign api=signer type=request metadata="{\"remote\":\"127.0.0.1:49708\",\"local\":\"localhost:8550\",\"scheme\":\"HTTP/1.1\"}" addr="0x694267f14675d7e1b9494fd8d72fefe1755710fa [chksum INVALID]" data=2020626f6e6b2062617a2067617a0a t=2018-02-21T14:42:56+0100 lvl=info msg=Sign api=signer type=response data= error="Request denied" -``` +``` \ No newline at end of file -- cgit v1.2.3 From 60577d48d535c1183d49c189ebf13a4853fa05a9 Mon Sep 17 00:00:00 2001 From: Chi Kei Chan Date: Wed, 26 Sep 2018 01:38:09 -0700 Subject: Add Clef UI to README.md (#17763) --- cmd/clef/README.md | 1 + 1 file changed, 1 insertion(+) (limited to 'cmd') diff --git a/cmd/clef/README.md b/cmd/clef/README.md index 027c22c98..c02ac44d8 100644 --- a/cmd/clef/README.md +++ b/cmd/clef/README.md @@ -875,3 +875,4 @@ There are a couple of implementation for a UI. We'll try to keep this list up to | QtSigner| https://github.com/holiman/qtsigner/| Python3/QT-based| :+1:| :+1:| :+1:| :+1:| :+1:| :x: | :+1: (partially)| | GtkSigner| https://github.com/holiman/gtksigner| Python3/GTK-based| :+1:| :x:| :x:| :+1:| :+1:| :x: | :x: | | Frame | https://github.com/floating/frame/commits/go-signer| Electron-based| :x:| :x:| :x:| :x:| ?| :x: | :x: | +| Clef UI| https://github.com/kyokan/clef-ui| Golang/QT-based| :+1:| :+1:| :x:| :+1:| :+1:| :x: | :+1: (approve tx only)| -- cgit v1.2.3 From 26cf866349034b0a7d8ef297f6f76125227eb9af Mon Sep 17 00:00:00 2001 From: Alpay Yildirim Date: Wed, 26 Sep 2018 10:39:39 +0200 Subject: [ImgBot] optimizes images (#17741) *Total -- 171.97kb -> 127.26kb (26%) /swarm/api/testdata/test0/img/logo.png -- 17.71kb -> 4.02kb (77.29%) /cmd/clef/sign_flow.png -- 35.54kb -> 20.27kb (42.98%) /cmd/clef/docs/qubes/qrexec-example.png -- 18.66kb -> 15.79kb (15.4%) /cmd/clef/docs/qubes/clef_qubes_http.png -- 13.97kb -> 11.95kb (14.44%) /cmd/clef/docs/qubes/clef_qubes_qrexec.png -- 19.79kb -> 17.03kb (13.91%) /cmd/clef/docs/qubes/qubes_newaccount-2.png -- 41.75kb -> 36.38kb (12.86%) /cmd/clef/docs/qubes/qubes_newaccount-1.png -- 24.55kb -> 21.82kb (11.11%) --- cmd/clef/docs/qubes/clef_qubes_http.png | Bin 14302 -> 12237 bytes cmd/clef/docs/qubes/clef_qubes_qrexec.png | Bin 20261 -> 17443 bytes cmd/clef/docs/qubes/qrexec-example.png | Bin 19109 -> 16166 bytes cmd/clef/docs/qubes/qubes_newaccount-1.png | Bin 25142 -> 22348 bytes cmd/clef/docs/qubes/qubes_newaccount-2.png | Bin 42747 -> 37250 bytes cmd/clef/sign_flow.png | Bin 36397 -> 20753 bytes 6 files changed, 0 insertions(+), 0 deletions(-) (limited to 'cmd') diff --git a/cmd/clef/docs/qubes/clef_qubes_http.png b/cmd/clef/docs/qubes/clef_qubes_http.png index a641e1987..e95ad8da4 100644 Binary files a/cmd/clef/docs/qubes/clef_qubes_http.png and b/cmd/clef/docs/qubes/clef_qubes_http.png differ diff --git a/cmd/clef/docs/qubes/clef_qubes_qrexec.png b/cmd/clef/docs/qubes/clef_qubes_qrexec.png index f57fc8933..b1814e7c3 100644 Binary files a/cmd/clef/docs/qubes/clef_qubes_qrexec.png and b/cmd/clef/docs/qubes/clef_qubes_qrexec.png differ diff --git a/cmd/clef/docs/qubes/qrexec-example.png b/cmd/clef/docs/qubes/qrexec-example.png index 0d86fde19..fc5d57725 100644 Binary files a/cmd/clef/docs/qubes/qrexec-example.png and b/cmd/clef/docs/qubes/qrexec-example.png differ diff --git a/cmd/clef/docs/qubes/qubes_newaccount-1.png b/cmd/clef/docs/qubes/qubes_newaccount-1.png index 598dbbee7..3bfc8b5b7 100644 Binary files a/cmd/clef/docs/qubes/qubes_newaccount-1.png and b/cmd/clef/docs/qubes/qubes_newaccount-1.png differ diff --git a/cmd/clef/docs/qubes/qubes_newaccount-2.png b/cmd/clef/docs/qubes/qubes_newaccount-2.png index cd762a193..c6dbd535d 100644 Binary files a/cmd/clef/docs/qubes/qubes_newaccount-2.png and b/cmd/clef/docs/qubes/qubes_newaccount-2.png differ diff --git a/cmd/clef/sign_flow.png b/cmd/clef/sign_flow.png index 9c0f3cc5d..93ef81a32 100644 Binary files a/cmd/clef/sign_flow.png and b/cmd/clef/sign_flow.png differ -- cgit v1.2.3