chainpoint 0.0.1 → 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ca102ab0e0bf21e5b5552e812422cf764d92e0f8
4
- data.tar.gz: b598527a3ab46d634d6fac275a90da91a7c3cb0b
3
+ metadata.gz: f82ef5623853c42fb82017bf04dbd39904e7ee6c
4
+ data.tar.gz: 7c8baf5626b821db7b3a7e77aac7b7e420992d06
5
5
  SHA512:
6
- metadata.gz: fff9306abe294da101ae3780e3de575f3fd417b52b3b5963208acc4a52f7afe2d14f032049e69c7314cb993b10eb5b8a2f38b97abaed54be6d9b523f21bb5611
7
- data.tar.gz: 7e99109c45d7a9a16ec4424d905aeab94bec41e1396bdf9a4ab0baf11e1f6610d0e621831e400775f110e4bed901473d659bb72a96c019dfdd2ead54423d7a3c
6
+ metadata.gz: 3b6c23e6b114af3ac5a18346f68e61c75b651222f08fc39ba2a795a96394e531d1b9f4b4022fc86ef1144320644e9a720ce127ab9b8e5f9be69fa7aad2f068d9
7
+ data.tar.gz: 9096d205c70469d98a2371209c55bcf27d194e9a68fea5c40108f740a5672f63f4e49287720e7b34e1facdd1231768b81f4d41753d1730d59bc5b477793d78c4
data/README.md CHANGED
@@ -22,23 +22,41 @@ Or install it yourself as:
22
22
 
23
23
  ## Usage
24
24
 
25
- ```ruby
26
- # hash is SHA250
27
- # hash = '2fbe59be2be10a4fdeca9c6d3e9f56fc56fb3ee9a8ef2e9be37fced60c264681'
28
- ChainPoint.submit(hash)
29
- # => {"meta"=>{"submitted_at"=>"2018-07-24T13:04:35Z", "processing_hints"=>{"cal"=>"2018-07-24T13:04:50Z", "btc"=>"2018-07-24T14:05:35Z"}}, "hashes"=>[{"hash_id_node"=>"1d1aa8a0-8f42-11e8-967f-01a68adfc010", "hash"=>"2fbe59be2be10a4fdeca9c6d3e9f56fc56fb3ee9a8ef2e9be37fced60c264681"}]}
30
- ```
31
-
32
- ```ruby
33
- Chainpoint.get_proof(hash_id_node)
34
- # => [{"hash_id_node"=>"a50eb4d0-8f20-11e8-8da8-0133565a0e60", "proof"=>"eJyNVMGOHDUQ5SP4BI7MTpXLLtt9Wolf4JTLyC6XmZaWmdF0JyHHhAtH9hMgizYgLkgoR/5jJD6G6tlN0O6ClEN3q22/V69cr+qHd5ey38363fzXdp4P07Bev6SxXeyP36xlW8bdYT/u5vULuplfHfS3rz4u3WzLtD1dul415KquKkLxvamULNxIcw/cxZ5Kqrkk7U7tIMUu2hjEseeEvy80m7Ftdvumpy9KAK2+wSp1BytETavUSloBEgUOBZTh/RkyPa/fjvOsd8hNmf90gHYwrpz/GvIAYQB49pFe9seFPoEXCg/oMxSjl9icBldLeEy/IP+bPjx7V49lJ1udrt/8clWqXv0h5WqzLO2Pm7u9t/vD9Pdnn7/+6er05Vnp2IZPyfL1z/vD7bQtKxf4DD7rWMCfkMNj8I+7cZoHDOS8I/AwtBijbx08Bo1aNUPKDTxV7uQoOQ6JtFLqQcEqlynVXtmD1wa5umhlpViJXER2JTTA0JisotC8OKeVMVgmkaVnAUQObCCreQJK9nos8NJ7xS4ZmIu65ok8lALdfNMFU0mYkodmvkKq3jF5VukSu0fhQFEeEh5Pl4196GjZmi89InaS1LnZr7rQagWDmRhkAo5UpMZumwAVs4+a6hPCnDGbex1LK8Bm94TYcs/dW7ZCuWVEqAGc3S9HbdW4oPvlE13P/ISwphyyL+yT3Wlk5hwqhhTsvq0zavApaFMO6HO09J1a7fpC3RGaRH1CyLFbGTwZh6+lcGzeBIWUk5fMORfruu5IQgZXoZnPzNN9KfkSMj5xTbYUncvxg3GsjAMOH8aEXPw7H5ZxMZj1h3vEWY5YEPOzqki3wKU5cz0hSEiNkwjXDsRm/CKliSegiFhRTf9isPJAzu1dU03X358H0VsL9ut9n43t9j7szfPjOF2fLv5P4tpQumvluL4HrJde/wcFK5lW", "anchors_complete"=>["cal"]}]
35
- ```
36
-
37
- ```ruby
38
- Chainpoint.verify('eJyNVMGOHDUQ5SP4BI7MTpXLLtt9Wolf4JTLyC6XmZaWmdF0JyHHhAtH9hMgizYgLkgoR/5jJD6G6tlN0O6ClEN3q22/V69cr+qHd5ey38363fzXdp4P07Bev6SxXeyP36xlW8bdYT/u5vULuplfHfS3rz4u3WzLtD1dul415KquKkLxvamULNxIcw/cxZ5Kqrkk7U7tIMUu2hjEseeEvy80m7Ftdvumpy9KAK2+wSp1BytETavUSloBEgUOBZTh/RkyPa/fjvOsd8hNmf90gHYwrpz/GvIAYQB49pFe9seFPoEXCg/oMxSjl9icBldLeEy/IP+bPjx7V49lJ1udrt/8clWqXv0h5WqzLO2Pm7u9t/vD9Pdnn7/+6er05Vnp2IZPyfL1z/vD7bQtKxf4DD7rWMCfkMNj8I+7cZoHDOS8I/AwtBijbx08Bo1aNUPKDTxV7uQoOQ6JtFLqQcEqlynVXtmD1wa5umhlpViJXER2JTTA0JisotC8OKeVMVgmkaVnAUQObCCreQJK9nos8NJ7xS4ZmIu65ok8lALdfNMFU0mYkodmvkKq3jF5VukSu0fhQFEeEh5Pl4196GjZmi89InaS1LnZr7rQagWDmRhkAo5UpMZumwAVs4+a6hPCnDGbex1LK8Bm94TYcs/dW7ZCuWVEqAGc3S9HbdW4oPvlE13P/ISwphyyL+yT3Wlk5hwqhhTsvq0zavApaFMO6HO09J1a7fpC3RGaRH1CyLFbGTwZh6+lcGzeBIWUk5fMORfruu5IQgZXoZnPzNN9KfkSMj5xTbYUncvxg3GsjAMOH8aEXPw7H5ZxMZj1h3vEWY5YEPOzqki3wKU5cz0hSEiNkwjXDsRm/CKliSegiFhRTf9isPJAzu1dU03X358H0VsL9ut9n43t9j7szfPjOF2fLv5P4tpQumvluL4HrJde/wcFK5lW')
39
- # => [{"proof_index"=>0, "hash"=>"2fbe59be2be10a4fdeca9c6d3e9f56fc56fb3ee9a8ef2e9be37fced60c264681", "hash_id_node"=>"a50eb4d0-8f20-11e8-8da8-0133565a0e60", "hash_submitted_node_at"=>"2018-07-24T09:05:00Z", "hash_id_core"=>"a804c350-8f20-11e8-890a-01c7d2e52ba5", "hash_submitted_core_at"=>"2018-07-24T09:05:05Z", "anchors"=>[{"branch"=>"cal_anchor_branch", "type"=>"cal", "valid"=>true}], "status"=>"verified"}]
40
-
41
- ```
25
+ ### Create Instance
26
+
27
+ ```ruby
28
+ require 'checkpoint'
29
+ c = Checkpoint.new
30
+ ```
31
+
32
+ ### Submit Hash
33
+
34
+ ```ruby
35
+ # hash is SHA250
36
+ # hash = '2fbe59be2be10a4fdeca9c6d3e9f56fc56fb3ee9a8ef2e9be37fced60c264681'
37
+ c.submit(hash)
38
+ # => {"meta"=>{"submitted_at"=>"2018-07-24T13:04:35Z", "processing_hints"=>{"cal"=>"2018-07-24T13:04:50Z", "btc"=>"2018-07-24T14:05:35Z"}}, "hashes"=>[{"hash_id_node"=>"1d1aa8a0-8f42-11e8-967f-01a68adfc010", "hash"=>"2fbe59be2be10a4fdeca9c6d3e9f56fc56fb3ee9a8ef2e9be37fced60c264681"}]}
39
+ ```
40
+
41
+ Or, use `submit_data`:
42
+
43
+ ```ruby
44
+ c.submit("text")
45
+ ```
46
+
47
+ ### Get Proof
48
+
49
+ ```ruby
50
+ c.get_proof(hash_id_node)
51
+ # => [{"hash_id_node"=>"a50eb4d0-8f20-11e8-8da8-0133565a0e60", "proof"=>"eJyNVMGOHDUQ5SP4BI7MTpXLLtt9Wolf4JTLyC6XmZaWmdF0JyHHhAtH9hMgizYgLkgoR/5jJD6G6tlN0O6ClEN3q22/V69cr+qHd5ey38363fzXdp4P07Bev6SxXeyP36xlW8bdYT/u5vULuplfHfS3rz4u3WzLtD1dul415KquKkLxvamULNxIcw/cxZ5Kqrkk7U7tIMUu2hjEseeEvy80m7Ftdvumpy9KAK2+wSp1BytETavUSloBEgUOBZTh/RkyPa/fjvOsd8hNmf90gHYwrpz/GvIAYQB49pFe9seFPoEXCg/oMxSjl9icBldLeEy/IP+bPjx7V49lJ1udrt/8clWqXv0h5WqzLO2Pm7u9t/vD9Pdnn7/+6er05Vnp2IZPyfL1z/vD7bQtKxf4DD7rWMCfkMNj8I+7cZoHDOS8I/AwtBijbx08Bo1aNUPKDTxV7uQoOQ6JtFLqQcEqlynVXtmD1wa5umhlpViJXER2JTTA0JisotC8OKeVMVgmkaVnAUQObCCreQJK9nos8NJ7xS4ZmIu65ok8lALdfNMFU0mYkodmvkKq3jF5VukSu0fhQFEeEh5Pl4196GjZmi89InaS1LnZr7rQagWDmRhkAo5UpMZumwAVs4+a6hPCnDGbex1LK8Bm94TYcs/dW7ZCuWVEqAGc3S9HbdW4oPvlE13P/ISwphyyL+yT3Wlk5hwqhhTsvq0zavApaFMO6HO09J1a7fpC3RGaRH1CyLFbGTwZh6+lcGzeBIWUk5fMORfruu5IQgZXoZnPzNN9KfkSMj5xTbYUncvxg3GsjAMOH8aEXPw7H5ZxMZj1h3vEWY5YEPOzqki3wKU5cz0hSEiNkwjXDsRm/CKliSegiFhRTf9isPJAzu1dU03X358H0VsL9ut9n43t9j7szfPjOF2fLv5P4tpQumvluL4HrJde/wcFK5lW", "anchors_complete"=>["cal"]}]
52
+ ```
53
+
54
+ ### Verify
55
+
56
+ ```ruby
57
+ c.verify('eJyNVMGOHDUQ5SP4BI7MTpXLLtt9Wolf4JTLyC6XmZaWmdF0JyHHhAtH9hMgizYgLkgoR/5jJD6G6tlN0O6ClEN3q22/V69cr+qHd5ey38363fzXdp4P07Bev6SxXeyP36xlW8bdYT/u5vULuplfHfS3rz4u3WzLtD1dul415KquKkLxvamULNxIcw/cxZ5Kqrkk7U7tIMUu2hjEseeEvy80m7Ftdvumpy9KAK2+wSp1BytETavUSloBEgUOBZTh/RkyPa/fjvOsd8hNmf90gHYwrpz/GvIAYQB49pFe9seFPoEXCg/oMxSjl9icBldLeEy/IP+bPjx7V49lJ1udrt/8clWqXv0h5WqzLO2Pm7u9t/vD9Pdnn7/+6er05Vnp2IZPyfL1z/vD7bQtKxf4DD7rWMCfkMNj8I+7cZoHDOS8I/AwtBijbx08Bo1aNUPKDTxV7uQoOQ6JtFLqQcEqlynVXtmD1wa5umhlpViJXER2JTTA0JisotC8OKeVMVgmkaVnAUQObCCreQJK9nos8NJ7xS4ZmIu65ok8lALdfNMFU0mYkodmvkKq3jF5VukSu0fhQFEeEh5Pl4196GjZmi89InaS1LnZr7rQagWDmRhkAo5UpMZumwAVs4+a6hPCnDGbex1LK8Bm94TYcs/dW7ZCuWVEqAGc3S9HbdW4oPvlE13P/ISwphyyL+yT3Wlk5hwqhhTsvq0zavApaFMO6HO09J1a7fpC3RGaRH1CyLFbGTwZh6+lcGzeBIWUk5fMORfruu5IQgZXoZnPzNN9KfkSMj5xTbYUncvxg3GsjAMOH8aEXPw7H5ZxMZj1h3vEWY5YEPOzqki3wKU5cz0hSEiNkwjXDsRm/CKliSegiFhRTf9isPJAzu1dU03X358H0VsL9ut9n43t9j7szfPjOF2fLv5P4tpQumvluL4HrJde/wcFK5lW')
58
+ # => [{"proof_index"=>0, "hash"=>"2fbe59be2be10a4fdeca9c6d3e9f56fc56fb3ee9a8ef2e9be37fced60c264681", "hash_id_node"=>"a50eb4d0-8f20-11e8-8da8-0133565a0e60", "hash_submitted_node_at"=>"2018-07-24T09:05:00Z", "hash_id_core"=>"a804c350-8f20-11e8-890a-01c7d2e52ba5", "hash_submitted_core_at"=>"2018-07-24T09:05:05Z", "anchors"=>[{"branch"=>"cal_anchor_branch", "type"=>"cal", "valid"=>true}], "status"=>"verified"}]
59
+ ```
42
60
 
43
61
  ## Development
44
62
 
@@ -12,7 +12,7 @@ Gem::Specification.new do |spec|
12
12
 
13
13
  spec.summary = "Chainpoint request library"
14
14
  #spec.description = %q{TODO: Write a longer description or delete this line.}
15
- #spec.homepage = "TODO: Put your gem's website or public repo URL here."
15
+ spec.homepage = "https://github.com/KenjiOhtsuka/chainpoint_gem"
16
16
 
17
17
  spec.add_runtime_dependency "json"
18
18
 
@@ -21,11 +21,11 @@ Gem::Specification.new do |spec|
21
21
  spec.files = `git ls-files -z`.split("\x0").reject do |f|
22
22
  f.match(%r{^(test|spec|features)/})
23
23
  end
24
- #spec.bindir = "exe"
25
- #spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
26
- #spec.require_paths = ["lib"]
24
+ spec.bindir = "exe"
25
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
26
+ spec.require_paths = ["lib"]
27
27
 
28
- #spec.add_development_dependency "bundler", "~> 1.16"
29
- #spec.add_development_dependency "rake", "~> 10.0"
30
- #spec.add_development_dependency "rspec", "~> 3.0"
28
+ spec.add_development_dependency "bundler", "~> 1.16"
29
+ spec.add_development_dependency "rake", "~> 10.0"
30
+ spec.add_development_dependency "rspec", "~> 3.0"
31
31
  end
@@ -3,21 +3,30 @@ require "net/https"
3
3
  require "json"
4
4
  require "digest"
5
5
 
6
- module Chainpoint
7
- def self.pickup_server()
8
- uri = URI(pickup_node_list_server)
9
- r = Net::HTTP.get(uri)
10
- j = JSON.parse(r)
11
- return j[rand(j.length)]["public_uri"]
6
+ class Chainpoint
7
+ def initialize(server_url = nil)
8
+ if server_url.nil?
9
+ @server_url = self.class.pickup_server
10
+ return
11
+ end
12
+ @server_url = server_url
12
13
  end
13
14
 
14
15
  def self.submit_data(data)
16
+ self.new().submit_data(data)
17
+ end
18
+
19
+ def submit_data(data)
15
20
  hash = Digest::SHA256.digest(data).unpack('H*')[0]
16
21
  return submit(hash)
17
22
  end
18
23
 
19
24
  def self.submit(hash)
20
- uri = URI(pickup_server + "/hashes")
25
+ self.new().submit(hash)
26
+ end
27
+
28
+ def submit(hash)
29
+ uri = URI(@server_url + "/hashes")
21
30
  req = Net::HTTP::Post.new(uri, 'Content-Type' => 'application/json')
22
31
  req.body = {hashes: [hash]}.to_json
23
32
  res = Net::HTTP.start(
@@ -29,13 +38,21 @@ module Chainpoint
29
38
  end
30
39
 
31
40
  def self.get_proof(hash_id_node)
32
- uri = URI(pickup_server + '/proofs/' + hash_id_node)
41
+ self.new().get_proof(hash_id_node)
42
+ end
43
+
44
+ def get_proof(hash_id_node)
45
+ uri = URI(@server_url + '/proofs/' + hash_id_node)
33
46
  r = Net::HTTP.get(uri)
34
47
  return JSON.parse(r)
35
48
  end
36
49
 
37
50
  def self.verify(proof)
38
- uri = URI(pickup_server + "/verify")
51
+ self.new().verify(proof)
52
+ end
53
+
54
+ def verify(proof)
55
+ uri = URI(@server_url + "/verify")
39
56
  req = Net::HTTP::Post.new(uri, 'Content-Type' => 'application/json')
40
57
  req.body = {proofs: [proof]}.to_json
41
58
  res = Net::HTTP.start(
@@ -47,6 +64,13 @@ module Chainpoint
47
64
  end
48
65
 
49
66
  private
67
+ def self.pickup_server()
68
+ uri = URI(pickup_node_list_server)
69
+ r = Net::HTTP.get(uri)
70
+ j = JSON.parse(r)
71
+ return j[rand(j.length)]["public_uri"]
72
+ end
73
+
50
74
  def self.pickup_node_list_server
51
75
  endpoint_array = [
52
76
  'https://a.chainpoint.org/nodes/random',
@@ -1,3 +1,3 @@
1
- module Chainpoint
2
- VERSION = "0.0.1"
1
+ class Chainpoint
2
+ VERSION = "0.0.2"
3
3
  end
metadata CHANGED
@@ -1,12 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: chainpoint
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kenji Ohtsuka
8
8
  autorequire:
9
- bindir: bin
9
+ bindir: exe
10
10
  cert_chain: []
11
11
  date: 2018-07-24 00:00:00.000000000 Z
12
12
  dependencies:
@@ -24,6 +24,48 @@ dependencies:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: bundler
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '1.16'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '1.16'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rake
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '10.0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '10.0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rspec
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '3.0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '3.0'
27
69
  description:
28
70
  email:
29
71
  - kok.fdcm@gmail.com
@@ -42,7 +84,7 @@ files:
42
84
  - chainpoint.gemspec
43
85
  - lib/chainpoint.rb
44
86
  - lib/chainpoint/version.rb
45
- homepage:
87
+ homepage: https://github.com/KenjiOhtsuka/chainpoint_gem
46
88
  licenses:
47
89
  - GPL-3.0
48
90
  metadata: {}