All Projects → smartcontractkit → Chainlink Ruby

smartcontractkit / Chainlink Ruby

Licence: mit
Easily connect your applications to blockchains

Programming Languages

ruby
36898 projects - #4 most used programming language

Projects that are alternatives of or similar to Chainlink Ruby

My Token
📈Track token prices of your favorite exchanges in terminal!
Stars: ✭ 141 (-7.24%)
Mutual labels:  blockchain, ethereum, bitcoin
Blockapi
A general framework for blockchain analytics
Stars: ✭ 111 (-26.97%)
Mutual labels:  blockchain, ethereum, bitcoin
Masterblockchain
Stars: ✭ 100 (-34.21%)
Mutual labels:  blockchain, ethereum, bitcoin
Blockchainbooks.github.io
Blockchain Books
Stars: ✭ 139 (-8.55%)
Mutual labels:  blockchain, ethereum, bitcoin
Chainabstractionlayer
Blockchain abstraction layer
Stars: ✭ 131 (-13.82%)
Mutual labels:  blockchain, ethereum, bitcoin
Awesome Privacy On Blockchains
A curated list of privacy on blockchains resources
Stars: ✭ 86 (-43.42%)
Mutual labels:  blockchain, ethereum, bitcoin
Diadata
DIAdata.org platform
Stars: ✭ 103 (-32.24%)
Mutual labels:  blockchain, ethereum, bitcoin
Cryptolights
Live visualisation of blockchain transactions for popular cryptocurrencies
Stars: ✭ 54 (-64.47%)
Mutual labels:  blockchain, ethereum, bitcoin
Hadoopcryptoledger
Hadoop Crypto Ledger - Analyzing CryptoLedgers, such as Bitcoin Blockchain, on Big Data platforms, such as Hadoop/Spark/Flink/Hive
Stars: ✭ 126 (-17.11%)
Mutual labels:  blockchain, ethereum, bitcoin
Stocklook
crypto currency library for trading & market making bots, account management, and data analysis
Stars: ✭ 119 (-21.71%)
Mutual labels:  blockchain, ethereum, bitcoin
Ebtc
eBitcoin (eBTC) is an ERC20 token. Its primary utility is to provide an easy & fast payment solution. Its edge over other tokens is that it is capable of sending up to 255 payments in a single transaction.
Stars: ✭ 149 (-1.97%)
Mutual labels:  blockchain, ethereum, bitcoin
Chainlink
node of the decentralized oracle network, bridging on and off-chain computation
Stars: ✭ 2,680 (+1663.16%)
Mutual labels:  blockchain, ethereum, oracle
Whale
🐋 Show Ethereum and Bitcoin price in command line interface (CLI).
Stars: ✭ 81 (-46.71%)
Mutual labels:  blockchain, ethereum, bitcoin
Peatiocryptoexchange
An open-source Crypto-Currency exchange. Peatio v3.0 Coming Soon !
Stars: ✭ 141 (-7.24%)
Mutual labels:  blockchain, ethereum, bitcoin
The Journal Of Blockchain
区块链自媒体、专注区块链技术学习和实践、IPFS/Filecoin、Bitcoin、Ethereum、EOS、Cosmos、区块链、白皮书、Coinmarketcap、Coindesk、Safe Network、Telegram、Docker、社会治理、经济激励
Stars: ✭ 63 (-58.55%)
Mutual labels:  blockchain, ethereum, bitcoin
Awesome Cryptocurrency Security
😎 Curated list about cryptocurrency security (reverse / exploit / fuzz..)
Stars: ✭ 102 (-32.89%)
Mutual labels:  blockchain, ethereum, bitcoin
Blockchainage
「区块链技术指北」相关资料。
Stars: ✭ 51 (-66.45%)
Mutual labels:  blockchain, ethereum, bitcoin
Udacity Blockchain Developer Nanodegree
The road so far on Udacity Blockchain Developer Nanodegree
Stars: ✭ 53 (-65.13%)
Mutual labels:  blockchain, ethereum, bitcoin
Cryptocurrencyawesome
Cryptocurrency study materials resources
Stars: ✭ 118 (-22.37%)
Mutual labels:  blockchain, ethereum, bitcoin
Awdy
are we decentralized yet? an analysis of how truly decentralized cryptocurrency networks are
Stars: ✭ 133 (-12.5%)
Mutual labels:  blockchain, ethereum, bitcoin

ChainLink Code Climate Join the chat at https://gitter.im/smartcontractkit-chainlink/Lobby

API

See the API documentation for more details about the API.

Overview

Assignments

Assignments are the main model for defining work to be done by ChainLink. An Assignment specifies a series of processing steps, Subtasks, which form a processing pipeline. Assignments include up front configuration for the Subtask pipeline, as well as instructions on when and how the Assignment can be triggered to run.

Snapshots

Whenever an Assignment is triggered to run, a Snapshot is created. The Snapshot is the record of the work that was done, and the steps taken along the way to reach the final Snapshot result.

Snapshots can be triggered either through upfront scheduling of the Assignment and/or by on demand requests through any of the Adapters.

Subtasks

Assignments are made up of a sequence of Subtasks. Subtasks are small specialized processes, designed to be modular and reusable with many other types of Subtasks.

Every time a Snapshot is created it starts by processing the first Subtask. The result of each Subtask is fed into the next Subtask, until the final Subtask is processed. The result of the final Subtask becomes the result of the entire Snapshot.

Data is passed between Subtasks as a JSON payload. By convention the main field that information is read from is stored as the top level key value, but other keys can be used and additional information can be stored in their payload.

Subtasks are initially configured when an assignment is defined, but they can also be dynamically configured with the data passed in from previous Subtasks.

Adapters

The processing work for each Subtask is handled by its Adapter. Adapters are where the processing and communication with external services happens. Subtasks are specific configurations of how work is to be handled by an Adapter.

ChainLink ships with a few adapters built in, but additional External Adapters can be created to add custom functionality. External Adapters are external services, which are communicated with via HTTP. External Adapters allow for functionality of ChainLink to be easily extended and can be written in which ever language is best suited. Conforming to a minimal HTTP interface is the only requirement for creating your custom External Adapters.

The Adapters that ship with ChainLink core are:

  • bitcoinComparisonJSON Returns a signed Bitcoin transaction. Signs either a completion transaction or a failure transaction based on a value comparison of the input.
  • ethereumBytes32 Formats the input as Ethereum bytes32 value and writes it into the specified contract. Returns the unformatted value that was provided as input.
  • ethereumInt256 Formats the input as Ethereum int256 value and writes it into the specified contract. Returns the unformatted value that was provided as input.
  • ethereumUint256 Formats the input as Ethereum uint256 value and writes it into the specified contract. Returns the unformatted value that was provided as input.
  • ethereumFormatted Writes a preformatted Ethereum hexadecimal value into the blockchain as configured. Returns the preformatted value that was provided as input.
  • ethereumLogWatcher Returns the data field of an Ethereum event log, if one is provided. Otherwise, returns the value that was provided as the input. (Requires WeiWatchers integration.)
  • httpGetJSON Retrieves JSON and returns the specific field selected in the configuration.
  • jsonReceiver Generates a URL for the oracle to receive JSON push notifications. Parses the pushed JSON and returns the specific field selected in the configuration.

If you are interested in other types of Adapters feel free to reach out.

Adapter Schemas

Adapter Schemas allow for Adapters to be modular enough to be used with many types of Adapters, but still remain reliable when used with other Adapters that may not even be defined yet. Adapter Schemas are JSON Schemas that specify the input requirements and output formats of each adapter. For more information on the various schemas used by ChainLink check out the Schemas repo.

Development

Requirements

  • ruby(v2.0.0+)
  • postgres(v9.3+)

Install

git clone https://github.com/oraclekit/chainlink && cd chainlink
gem install bundler && bundle
rake db:create db:migrate

Start

foreman start

Testing

To run the full test suite, including integration tests, you need an instance of DevNet running on your machine. This requires first installing Parity. Once Parity is installed, run the following commands:

git clone https://github.com/oraclekit/devnet.git
cd devnet
./start

Then to run the full test suite run:

rake

Or test a specific test:

rspec spec/models/assignment_spec.rb:57
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].