Compare commits

...

4 commits

Author SHA1 Message Date
Srdjan Obucina
0524c0c216 Fix build error after merging with develop branch 2019-09-03 14:01:31 +02:00
Srdjan Obucina
6743860f42 Merge branch 'develop' into rng_api 2019-09-03 13:57:56 +02:00
Srdjan Obucina
fa5d3eccdf Merge branch 'qa_gpos_18.04_gcc7_fix' into rng_api 2019-08-22 17:08:00 +02:00
Srdjan Obucina
654e998d89 API endpoint for reading random numbers from the witness
Test cmd:
curl --data '{"method": "call", "params": ["database", "get_random_number", [1000]], "jsonrpc": "2.0", "id": 1}' http://127.0.0.1:8090/ws
curl --data '{"method": "call", "params": ["database", "get_random_number", [5000]], "jsonrpc": "2.0", "id": 1}' http://127.0.0.1:8090/ws
curl --data '{"method": "call", "params": ["database", "get_random_number", [1000000]], "jsonrpc": "2.0", "id": 1}' http://127.0.0.1:8090/ws
2019-08-19 19:55:26 +02:00
2 changed files with 31 additions and 1 deletions

View file

@ -173,6 +173,8 @@ class database_api_impl : public std::enable_shared_from_this<database_api_impl>
vector<tournament_object> get_tournaments_by_state(tournament_id_type stop, unsigned limit, tournament_id_type start, tournament_state state); vector<tournament_object> get_tournaments_by_state(tournament_id_type stop, unsigned limit, tournament_id_type start, tournament_state state);
vector<tournament_id_type> get_registered_tournaments(account_id_type account_filter, uint32_t limit) const; vector<tournament_id_type> get_registered_tournaments(account_id_type account_filter, uint32_t limit) const;
// rng
int64_t get_random_number(uint64_t bound) const;
//private: //private:
template<typename T> template<typename T>
@ -2128,6 +2130,22 @@ vector<tournament_id_type> database_api_impl::get_registered_tournaments(account
return tournament_ids; return tournament_ids;
} }
//////////////////////////////////////////////////////////////////////
// //
// Random numbers //
// //
//////////////////////////////////////////////////////////////////////
int64_t database_api::get_random_number(uint64_t bound) const
{
return my->get_random_number(bound);
}
int64_t database_api_impl::get_random_number(uint64_t bound) const {
int64_t result = _db.get_random_bits(bound);
return result;
}
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
// // // //
// Private methods // // Private methods //

View file

@ -667,7 +667,16 @@ class database_api
*/ */
vector<tournament_id_type> get_registered_tournaments(account_id_type account_filter, uint32_t limit) const; vector<tournament_id_type> get_registered_tournaments(account_id_type account_filter, uint32_t limit) const;
private: //////////
// RNG //
//////////
/**
* @return Current Random number
*/
int64_t get_random_number(uint64_t bound) const;
private:
std::shared_ptr< database_api_impl > my; std::shared_ptr< database_api_impl > my;
}; };
@ -794,4 +803,7 @@ FC_API(graphene::app::database_api,
(get_tournaments_by_state) (get_tournaments_by_state)
(get_tournaments ) (get_tournaments )
(get_registered_tournaments) (get_registered_tournaments)
// rngs
(get_random_number)
) )