Phoenix Global Oracle Development Plan & Status Report
Dear Phoenix Global Community:
As previously mentioned in the Phoenix Global Node Ecosystem, Oracles are a vital component of our overall platform, enabling real-time off-chain data feeds for both enterprise applications and the upcoming Horizon Protocol (DeFi).
Please find below the Phoenix Oracle development plan (mid-flight) with current progress updates:
Phoenix Global Oracle Development Plan
Timelines & Activities
1. Oracle architecture design (Complete)
- Organize and attend workshops for Oracle design
- Finalize architecture design and peer review
- Technology selection of project
2. Technology language selection and project framework (Complete)
- Choose Gin for http server framework.
- Add Model, DB, Logger, Cron jobs, Configuration modules
- Add UT framework
- Design the fields and structure of above modules
- Code review and refactor
3. Add receive and resolve request adapters from on-chain (Complete)
- Add http server router
- Add http get adapter and implement functions: receive request and get data by send http request
- Add adapter for sending Ethereum transactions
- Add adapter for json parse
4. Implement basic functionality and complete a simple interaction (In Progress — Q1 ‘21)
- Add a simple scheduler; automatically add job to scheduler and add cron jobs
- Implement http get request functionality and make mock test
- Resolve json result
- Introduce sugarlogger and lumberjack to manage logger module and test (log file location configuration, format, maxsize segment, etc.) in real running environment
- Code review and refactor
5. Implement off-chain service basic function: (Q1 ‘21)
Receive http request, parse and return result
- Add account authenticator
- Implement Ethereum adapter function, resolve Ethereum transactions message, receive requests, and get http result
- Implement json parse function, resolve the result field and return certain info
6. Implement on-chain service basic function (Q2 ‘21)
Create a simple consumer client and transfer a consumer message to off-chain
Off-chain backend
- Add a listener to receive requests from on-chain and parse them to different routers.
- List certain info by on-chain request endpoint
- List all jobs by GET /jobs interface
On-chain service:
- Create an Ethereum Consumer client
- Make a contract owned by an account and can fulfill data request
- Simple resolve response from off-chain server
Front-end:
- UI design
- Develop simple user interface
- Support third-party interface request service
Alpha Community Test
As a result of the above work, and as mentioned previously, we are anticipating an Alpha version being ready for community developer testing in the coming weeks. This will be geared towards more technical savvy community members to view and participate.
Additional details on the community test of our Alpha version will be made available closer to the release date.
Phoenix Oracle Nodes
Phoenix Global node operators in the Platinum (1m), Zirconium (5m) and Diamond (10m) tiers will function as Oracle nodes. Oracle node operators will play a role in:
- Data Source Connections — Data Connectors and APIs that will connect to off-chain data sources and feeds
- On-Chain Contract Execution — the middleware protocols in charge of responding to data queries from other requesting Apps and smart contracts
- Phoenix Oracle Client — the basic node client that acts as the fundamental bridge between the on-chain and off-chain environments
More details on Phoenix Global nodes and reward structures are available in our Phoenix Global Node Ecosystem article.