Module: Drand

Defined in:
lib/drand.rb,
lib/drand/chain.rb,
lib/drand/errors.rb,
lib/drand/version.rb,
lib/drand/verifier.rb,
lib/drand/http_client.rb

Defined Under Namespace

Modules: Verifier Classes: ArgumentError, Chain, Error, HttpClient, NetworkError, RoundError, VerificationError

Constant Summary collapse

OFFICIAL_ENDPOINTS =
[
  "https://api.drand.sh",
  "https://api2.drand.sh",
  "https://api3.drand.sh",
  "https://drand.cloudflare.com"
].freeze
CHAINS =
{
  quicknet: {
    chain_hash: "52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",
    genesis_time: 1_692_803_367,
    period: 3,
    endpoints: OFFICIAL_ENDPOINTS,
    scheme: Verifier::UNCHAINED_G1,
    public_key: "83cf0f2896adee7eb8b5f01fcad3912212c437e0073e911fb90022d3e760183c" \
                "8c4b450b6a0a6c3ac6a5776a2d1064510d1fec758c921cc22b0e17e63aaf4bcb" \
                "5ed66304de9cf809bd274ca73bab4af5a6e9c76a4bc09e76eae8991ef5ece45a"
  },
  default: {
    chain_hash: "8990e7a9aaed2ffed73dbd7092123d6f289930540d7651336225dc172e51b2ce",
    genesis_time: 1_595_431_050,
    period: 30,
    endpoints: OFFICIAL_ENDPOINTS,
    scheme: Verifier::CHAINED_G2,
    public_key: "868f005eb8e6e4ca0a47c8a77ceaa5309a47978a7c71bc5cce96366b5d7a5699" \
                "37c529eeda66c7293784a9402801af31"
  }
}.freeze
VERSION =
"0.3.0"

Class Method Summary collapse

Class Method Details

.chain(name = :quicknet, base_url: nil, endpoints: nil) ⇒ Object

Raises:



39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
# File 'lib/drand.rb', line 39

def self.chain(name = :quicknet, base_url: nil, endpoints: nil)
  config = CHAINS[name.to_sym]
  raise ArgumentError, "unknown chain #{name.inspect}" unless config

  final_endpoints =
    if endpoints
      Array(endpoints)
    elsif base_url
      [base_url]
    else
      config[:endpoints]
    end

  Chain.new(
    chain_hash: config[:chain_hash],
    genesis_time: config[:genesis_time],
    period: config[:period],
    endpoints: final_endpoints,
    name: name.to_s,
    scheme: config[:scheme],
    public_key: config[:public_key]
  )
end