1- use anyhow:: Result ;
1+ use anyhow:: { anyhow , Result } ;
22use clap:: Clap ;
33use elasticsearch:: auth:: Credentials ;
44use elasticsearch:: http:: transport:: SingleNodeConnectionPool ;
55use elasticsearch:: http:: Url ;
66use elasticsearch:: Elasticsearch ;
7- use failure:: Fail ;
87use futures_retry:: { FutureRetry , RetryPolicy } ;
98use futures_util:: TryFutureExt ;
109use jsonrpc_core_client:: transports:: http;
1110use starcoin_indexer:: { BlockClient , BlockData , EsSinker , IndexConfig } ;
1211use starcoin_logger:: prelude:: * ;
1312use starcoin_rpc_api:: chain:: ChainClient ;
1413use std:: time:: Duration ;
15- use tokio_compat :: runtime;
14+ use tokio :: runtime;
1615
1716#[ derive( Clap , Debug , Clone ) ]
1817#[ clap( version = "0.1.0" , author = "Starcoin Core Dev <dev@starcoin.org>" ) ]
@@ -38,7 +37,7 @@ async fn start_loop(block_client: BlockClient, sinker: EsSinker) -> Result<()> {
3837
3938 loop {
4039 let remote_tip_header = FutureRetry :: new (
41- || block_client. get_chain_head ( ) . map_err ( |e| e. compat ( ) ) ,
40+ || block_client. get_chain_head ( ) . map_err ( |e| e) ,
4241 |e| {
4342 warn ! ( "[Retry]: get chain head, err: {}" , & e) ;
4443 RetryPolicy :: < anyhow:: Error > :: WaitRetry ( Duration :: from_secs ( 1 ) )
@@ -68,9 +67,8 @@ async fn start_loop(block_client: BlockClient, sinker: EsSinker) -> Result<()> {
6867 } else {
6968 let next_block: BlockData = FutureRetry :: new (
7069 || {
71- block_client
72- . get_block_whole_by_height ( next_block_number)
73- . map_err ( |e| e. compat ( ) )
70+ block_client. get_block_whole_by_height ( next_block_number)
71+ //.map_err(|e| e.compat())
7472 } ,
7573 |e| {
7674 warn ! ( "[Retry]: get chain block data, err: {}" , & e) ;
@@ -125,11 +123,13 @@ fn main() -> anyhow::Result<()> {
125123 let opts: Options = Options :: parse ( ) ;
126124 info ! ( "opts: {:?}" , & opts) ;
127125 let mut rt = runtime:: Builder :: new ( )
128- . name_prefix ( "starcoin-indexer" )
126+ . thread_name ( "starcoin-indexer" )
127+ . threaded_scheduler ( )
128+ . enable_all ( )
129129 . build ( ) ?;
130130 let channel: ChainClient = rt
131131 . block_on ( http:: connect ( opts. node_url . as_str ( ) ) )
132- . map_err ( |e| e . compat ( ) ) ?;
132+ . map_err ( |e| anyhow ! ( format! ( "{}" , e ) ) ) ?;
133133 let block_client = BlockClient :: new ( channel) ;
134134 let mut transport = elasticsearch:: http:: transport:: TransportBuilder :: new (
135135 SingleNodeConnectionPool :: new ( opts. es_url ) ,
@@ -145,7 +145,7 @@ fn main() -> anyhow::Result<()> {
145145 let index_config = IndexConfig :: new_with_prefix ( opts. es_index_prefix . as_str ( ) ) ;
146146 let sinker = EsSinker :: new ( es, index_config) ;
147147
148- rt. block_on_std ( start_loop ( block_client, sinker) ) ?;
148+ rt. block_on ( start_loop ( block_client, sinker) ) ?;
149149
150150 Ok ( ( ) )
151151}
0 commit comments