From a8b5ee8efc34bff8140c84a8b5a61a1d238d4ce1 Mon Sep 17 00:00:00 2001 From: Ed Bruck Date: Thu, 20 Dec 2018 12:46:06 -0800 Subject: [PATCH] KEP-921, KEP-923 Readme updates --- README.md | 279 ++++++++++++++++++++++++++------------------------- scripts/crud | 4 +- 2 files changed, 142 insertions(+), 141 deletions(-) diff --git a/README.md b/README.md index d58a3fa8..97cec297 100644 --- a/README.md +++ b/README.md @@ -378,97 +378,131 @@ Follow instructions in readme.md #### Connectivity Test ```text -$ ./crud -n localhost:50000 status -Sending : -{ - "transaction_id": 4283375944065669395, - "bzn-api": "status" -} +$ ./crud -p -n localhost:50000 status + +Client: crud-script-0 +Sending: +sender: "crud-script-0" +status_request: "" + ------------------------------------------------------------ +Response: + +swarm_version: "0.3.1443" +swarm_git_commit: "0.3.1096-41-g91cef89" +uptime: "1 days, 17 hours, 29 minutes" +module_status_json: ... +pbft_enabled: true + Response: { - "bzn-api" : "status", - "module" : - [ - { - "name" : "raft", - "status" : - { - "state" : "candidate" - } - } - ], - "transaction_id" : 4283375944065669395, - "version" : "0.0.0-desk" + "module" : + [ + { + "name" : "pbft", + "status" : + { + "is_primary" : false, + "latest_checkpoint" : + { + "hash" : "", + "sequence_number" : 3800 + }, + "latest_stable_checkpoint" : + { + "hash" : "", + "sequence_number" : 3800 + }, + "next_issued_sequence_number" : 1, + "outstanding_operations_count" : 98, + "peer_index" : + [ + { + "host" : "127.0.0.1", + "name" : "node_0", + "port" : 50000, + "uuid" : "MFYwEAYHKoZIzj0CAQYFK4EEAAoDQgAE/HIPqL97zXbPN8CW609Dddu4vSKx/xnS1sle0FTgyzaDil1UmmQkrlTsQQqpU7N/kVMbAY+/la3Rawfw6VjVpA==" + }, + { + "host" : "127.0.0.1", + "name" : "node_1", + "port" : 50001, + "uuid" : "MFYwEAYHKoZIzj0CAQYFK4EEAAoDQgAELUJ3AivScRn6sfBgBsBi3I18mpOC5NZ552ma0QTFSHVdPGj98OBMhxMkyKRI6UhAeuUTDf/mCFM5EqsSRelSQw==" + }, + { + "host" : "127.0.0.1", + "name" : "node_2", + "port" : 50002, + "uuid" : "MFYwEAYHKoZIzj0CAQYFK4EEAAoDQgAEg+lS+GZNEOqhftj041jCjLabPrOxkkpTHSWgf6RNjyGKenwlsdYF9Xg1UH1FZCpNVkHhCLi2PZGk6EYMQDXqUg==" + } + ], + "primary" : + { + "host" : "127.0.0.1", + "host_port" : 50001, + "name" : "node_1", + "uuid" : "MFYwEAYHKoZIzj0CAQYFK4EEAAoDQgAELUJ3AivScRn6sfBgBsBi3I18mpOC5NZ552ma0QTFSHVdPGj98OBMhxMkyKRI6UhAeuUTDf/mCFM5EqsSRelSQw==" + }, + "unstable_checkpoints_count" : 0, + "view" : 1 + } + } + ] } ------------------------------------------------------------ ``` -#### Create - +#### Create database ```text -$ ./crud -n localhost:50000 create -u myuuid -k mykey -v myvalue - Sending: db { - header { - db_uuid: "myuuid" - transaction_id: 1149205427773053859 - } - create { - key: "mykey" - value: "myvalue" - } - } - ------------------------------------------------------------ +./crud -p -n localhost:50000 create-db -u myuuid - redirecting to leader at 127.0.0.1:50002... +Client: crud-script-0 +------------------------------------------------------------ - Sending: db { - header { - db_uuid: "myuuid" - transaction_id: 8606810256052859786 - } - create { - key: "mykey" - value: "myvalue" - } - } +Response: +header { + db_uuid: "myuuid" + nonce: 2998754133578549919 +} - ------------------------------------------------------------ +------------------------------------------------------------ +``` + +#### Create - Response: - header { - db_uuid: "myuuid" - transaction_id: 8606810256052859786 - } +```text +$ ./crud -p -n localhost:50000 create -u myuuid -k mykey -v myvalue - ------------------------------------------------------------ +Client: crud-script-0 +------------------------------------------------------------ + +Response: +header { + db_uuid: "myuuid" + nonce: 9167923913779064632 +} + +------------------------------------------------------------ ``` #### Read ```text -$ ./crud -n localhost:50000 read -u myuuid -k mykey -Sending: db { - header { - db_uuid: "myuuid" - transaction_id: 638497919636113033 - } - read { - key: "mykey" - } -} +$ ./crud -p -n localhost:50000 read -u myuuid -k mykey +Client: crud-script-0 ------------------------------------------------------------ Response: header { db_uuid: "myuuid" - transaction_id: 638497919636113033 + nonce: 1298794800698891064 } -resp { +read { + key: "mykey" value: "myvalue" } @@ -478,39 +512,15 @@ resp { #### Update ```text -$ ./crud -n localhost:50000 update -u myuuid -k mykey -v mynewvalue -Sending: db { - header { - db_uuid: "myuuid" - transaction_id: 7847882878681328930 - } - update { - key: "mykey" - value: "mynewvalue" - } -} - ------------------------------------------------------------- - -redirecting to leader at 127.0.0.1:50002... - -Sending: db { - header { - db_uuid: "myuuid" - transaction_id: 2491234936151888566 - } - update { - key: "mykey" - value: "mynewvalue" - } -} +$ ./crud -p -n localhost:50000 update -u myuuid -k mykey -v mynewvalue +Client: crud-script-0 ------------------------------------------------------------ Response: header { db_uuid: "myuuid" - transaction_id: 2491234936151888566 + nonce: 9006453024945657757 } ------------------------------------------------------------ @@ -519,63 +529,32 @@ header { #### Delete ```text -$ ./crud -n localhost:50000 delete -u myuuid -k mykey -Sending: db { - header { - db_uuid: "myuuid" - transaction_id: 8470321215009858819 - } - delete { - key: "mykey" - } -} - ------------------------------------------------------------- - -redirecting to leader at 127.0.0.1:50002... - -Sending: db { - header { - db_uuid: "myuuid" - transaction_id: 8085312586421869529 - } - delete { - key: "mykey" - } -} +$ ./crud -p -n localhost:50000 delete -u myuuid -k mykey +Client: crud-script-0 ------------------------------------------------------------ Response: header { db_uuid: "myuuid" - transaction_id: 8085312586421869529 + nonce: 7190311901863172254 } ------------------------------------------------------------ ``` + #### Subscribe + ```text -$ ./crud -n localhost:50000 subscribe -u myuuid -k mykey -Sending: -db { - header { - db_uuid: "myuuid" - transaction_id: 2808384922078102053 - } - subscribe { - key: "mykey" - } -} +$ ./crud -p -n localhost:50000 subscribe -u myuuid -k mykey +Client: crud-script-0 ------------------------------------------------------------ Response: header { db_uuid: "myuuid" - transaction_id: 2808384922078102053 -} -resp { + nonce: 8777225851310409007 } ------------------------------------------------------------ @@ -585,19 +564,34 @@ Waiting.... Response: header { db_uuid: "myuuid" - transaction_id: 2808384922078102053 + nonce: 8777225851310409007 } -resp { - update { - key: "mykey" - value: "mynewvalue" - } +subscription_update { + key: "mykey" + value: "myvalue" } ------------------------------------------------------------ Waiting.... ``` + +#### Delete database +```text +./crud -p -n localhost:50000 delete-db -u myuuid + +Client: crud-script-0 +------------------------------------------------------------ + +Response: +header { + db_uuid: "myuuid" + nonce: 1540670102065057350 +} + +------------------------------------------------------------ +``` + #### Adding or Removing A Peer Please note that RAFT nodes automatically add themselves to a RAFT swarm on @@ -750,14 +744,21 @@ and you can resend the request to the leader. ```text $ ./crud --help -usage: crud [-h] [-p] -n NODE - {status,create,read,update,delete,has,keys,size,subscribe} ... +usage: crud [-h] [-p] [-i ID] -n NODE + {status,create-db,delete-db,has-db,writers,add-writer,remove-writer,create,read,update,delete,has,keys,size,subscribe} + ... crud positional arguments: - {status,create,read,update,delete,has,keys,size,subscribe} + {status,create-db,delete-db,has-db,writers,add-writer,remove-writer,create,read,update,delete,has,keys,size,subscribe} status Status + create-db Create database + delete-db Delete database + has-db Has database + writers Database writers + add-writer Add database writers + remove-writer Remove database writers create Create k/v read Read k/v update Update k/v @@ -770,7 +771,7 @@ positional arguments: optional arguments: -h, --help show this help message and exit -p, --use_pbft Direct message to pbft instead of raft + -i ID, --id ID Crud script sender id (default 0) required arguments: -n NODE, --node NODE node's address (ex. 127.0.0.1:51010) -``` diff --git a/scripts/crud b/scripts/crud index 10ebb8f6..13a8f95a 100755 --- a/scripts/crud +++ b/scripts/crud @@ -315,7 +315,7 @@ if __name__ == "__main__": parser.add_argument("-p", "--use_pbft", action="store_true", help="Direct message to pbft instead of raft") - parser.add_argument("-i", "--id", type=str, default="0", help="Crud script sender id", required=False) + parser.add_argument("-i", "--id", type=str, default="0", help="Crud script sender id (default 0)", required=False) required = parser.add_argument_group('required arguments') @@ -440,7 +440,7 @@ if __name__ == "__main__": pass CRUD_SCRIPT_SENDER_ID += "-" + args.id - print("Client: " + CRUD_SCRIPT_SENDER_ID) + print("\nClient: " + CRUD_SCRIPT_SENDER_ID) resp = args.func(args)