Skip to content

Commit a8fa6e3

Browse files
authored
Merge pull request #2606 from nervosnetwork/testnet
Deploy to mainnet
2 parents cf0c141 + d7760ba commit a8fa6e3

File tree

5 files changed

+58
-18
lines changed

5 files changed

+58
-18
lines changed

app/models/ckb_sync/api.rb

Lines changed: 18 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ class Api
1010
@@latest_json_rpc_id = 0
1111

1212
def initialize
13-
@api = CKB::API.new(host: ENV["CKB_NODE_URL"],
13+
@api = CKB::API.new(host: ENV.fetch("CKB_NODE_URL", nil),
1414
timeout_config: {
1515
open_timeout: 1, read_timeout: 3,
1616
write_timeout: 1
@@ -28,7 +28,15 @@ def mode
2828
# CKB::MODE::TESTNET
2929
# end
3030

31-
ENV["CKB_NET_MODE"]
31+
ENV.fetch("CKB_NET_MODE", nil)
32+
end
33+
34+
def genesis_block_timestamp
35+
if mode == CKB::MODE::MAINNET
36+
DailyStatistic::GENESIS_TIMESTAMP
37+
else
38+
DailyStatistic::TESTNET_GENESIS_TIMESTAMP
39+
end
3240
end
3341

3442
def issuer_script_code_hash
@@ -158,13 +166,13 @@ def generate_json_rpc_id
158166
# parsed json, e.g. `{"jsonrpc":"2.0","result":"0x1842749a5c0","id":1}`
159167
def directly_single_call_rpc(options)
160168
payload = {
161-
"id": generate_json_rpc_id,
162-
"jsonrpc": "2.0",
163-
"method": options[:method],
164-
"params": options[:params],
169+
id: generate_json_rpc_id,
170+
jsonrpc: "2.0",
171+
method: options[:method],
172+
params: options[:params],
165173
}
166174

167-
url = ENV["CKB_NODE_URL"]
175+
url = ENV.fetch("CKB_NODE_URL", nil)
168176

169177
# Rails.logger.debug "== in directly_call_rpc, url: #{url}, payload: #{payload}"
170178

@@ -190,12 +198,12 @@ def directly_single_call_rpc(options)
190198
# {"jsonrpc":"2.0","result":"0x16e81010c18","id":4997}
191199
# ]`
192200
def directly_batch_call_rpc(payload)
193-
url = ENV["CKB_NODE_URL"]
194-
Rails.logger.debug "== in directly_batch_call_rpc, url: #{url}, payload: #{payload}"
201+
url = ENV.fetch("CKB_NODE_URL", nil)
202+
Rails.logger.debug { "== in directly_batch_call_rpc, url: #{url}, payload: #{payload}" }
195203

196204
res = HTTP.post(url, json: payload)
197205
result = JSON.parse res.to_s
198-
Rails.logger.debug "== in directly_batch_call_rpc result: #{result.inspect}"
206+
Rails.logger.debug { "== in directly_batch_call_rpc result: #{result.inspect}" }
199207

200208
result
201209
end

app/models/concerns/ckb_transactions/display_cells.rb

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ def cellbase_display_outputs
4545
cellbase = Cellbase.new(block)
4646
cell_outputs_for_display.map do |output|
4747
consumed_tx_hash = output.live? ? nil : output.consumed_by.tx_hash
48+
tags = output.block_timestamp == CkbSync::Api.instance.genesis_block_timestamp ? output.tags : []
4849
CkbUtils.hash_value_to_s(
4950
id: output.id,
5051
capacity: output.capacity,
@@ -59,6 +60,7 @@ def cellbase_display_outputs
5960
consumed_tx_hash:,
6061
generated_tx_hash: output.tx_hash,
6162
cell_index: output.cell_index,
63+
tags:,
6264
)
6365
end
6466
end
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
require "benchmark"
2+
namespace :repair do
3+
desc "Usage: RAILS_ENV=production bundle exec rake repair:reset_daily_statistic[1000]"
4+
task :reset_daily_statistic, %i[start_ds_id] => :environment do |_, args|
5+
ActiveRecord::Base.connection.execute("SET statement_timeout = 0")
6+
7+
def updated_attrs
8+
# next attrs were generated by before attrs, so they should have an order to reset
9+
established_order = %i{
10+
daily_dao_depositors_count total_depositors_count unclaimed_compensation claimed_compensation deposit_compensation daily_dao_deposit total_dao_deposit circulating_supply circulation_ratio
11+
}
12+
others = %i{
13+
dao_depositors_count block_timestamp transactions_count addresses_count
14+
average_deposit_time mining_reward knowledge_size
15+
treasury_amount estimated_apc live_cells_count dead_cells_count avg_hash_rate
16+
avg_difficulty uncle_rate address_balance_distribution
17+
total_tx_fee occupied_capacity total_supply block_time_distribution
18+
epoch_time_distribution epoch_length_distribution locked_capacity ckb_hodl_wave holder_count activity_address_contract_distribution
19+
}
20+
21+
established_order + others
22+
end
23+
24+
DailyStatistic.where("id >= ?", args[:start_ds_id].to_i).order("id ASC").each do |ds|
25+
time = Benchmark.realtime do
26+
ds.reset!(updated_attrs)
27+
end
28+
puts "Reset DailyStatistic ##{ds.id} took #{(time * 1000).round(2)} ms"
29+
end
30+
end
31+
end

test/models/ckb_sync/node_data_processor_test.rb

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1466,6 +1466,7 @@ class NodeDataProcessorTest < ActiveSupport::TestCase
14661466
consumed_tx_hash: nil,
14671467
generated_tx_hash: output.tx_hash,
14681468
cell_index: output.cell_index,
1469+
tags: [],
14691470
),
14701471
]
14711472

@@ -1512,7 +1513,7 @@ class NodeDataProcessorTest < ActiveSupport::TestCase
15121513
address_hash: cell_output.address_hash, target_block_number: cellbase.target_block_number,
15131514
base_reward: cellbase.base_reward, commit_reward: cellbase.commit_reward, proposal_reward: cellbase.proposal_reward,
15141515
secondary_reward: cellbase.secondary_reward, status: cell_output.status, consumed_tx_hash:, generated_tx_hash: cell_output.tx_hash,
1515-
cell_index: cell_output.cell_index)
1516+
cell_index: cell_output.cell_index, tags: [])
15161517
end
15171518
assert_equal expected_cellbase_display_outputs,
15181519
block.cellbase.display_outputs
@@ -1560,7 +1561,7 @@ class NodeDataProcessorTest < ActiveSupport::TestCase
15601561
address_hash: cell_output.address_hash, target_block_number: cellbase.target_block_number,
15611562
base_reward: cellbase.base_reward, commit_reward: cellbase.commit_reward, proposal_reward: cellbase.proposal_reward,
15621563
secondary_reward: cellbase.secondary_reward, status: "live", consumed_tx_hash: nil, generated_tx_hash: cell_output.tx_hash,
1563-
cell_index: cell_output.cell_index),
1564+
cell_index: cell_output.cell_index, tags: []),
15641565
]
15651566

15661567
assert_equal expected_cellbase_display_outputs,

test/models/ckb_transaction_test.rb

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ class CkbTransactionTest < ActiveSupport::TestCase
118118
expected_attributes = %i(
119119
id capacity occupied_capacity address_hash target_block_number
120120
base_reward commit_reward proposal_reward secondary_reward status
121-
consumed_tx_hash generated_tx_hash cell_index
121+
consumed_tx_hash generated_tx_hash cell_index tags
122122
)
123123

124124
assert_equal [expected_attributes],
@@ -163,9 +163,7 @@ class CkbTransactionTest < ActiveSupport::TestCase
163163
ckb_transaction = create(:ckb_transaction,
164164
:with_multiple_inputs_and_outputs)
165165
expected_output_is = ckb_transaction.cell_inputs.map(&:previous_cell_output).map(&:id).sort
166-
assert_equal expected_output_is.map(&:to_s), ckb_transaction.display_inputs.map { |display_input|
167-
display_input[:id]
168-
}
166+
assert_equal(expected_output_is.map(&:to_s), ckb_transaction.display_inputs.pluck(:id))
169167
end
170168

171169
test "#display_inputs should return dao display input when cell type is nervos_dao_withdrawing" do
@@ -186,7 +184,7 @@ class CkbTransactionTest < ActiveSupport::TestCase
186184
consumed_by: nervos_dao_withdrawing_cell.ckb_transaction,
187185
status: "dead",
188186
cell_type: "nervos_dao_deposit",
189-
capacity: 10**8 * 1000,
187+
capacity: (10**8) * 1000,
190188
data: CKB::Utils.bin_to_hex("\x00" * 8))
191189
nervos_dao_deposit_cell = nervos_dao_withdrawing_cell_generated_tx.inputs.nervos_dao_deposit.first
192190
create(:cell_input, block: nervos_dao_withdrawing_cell_generated_tx.block,
@@ -235,7 +233,7 @@ class CkbTransactionTest < ActiveSupport::TestCase
235233
ckb_transaction = create(:ckb_transaction, block:,
236234
tx_hash: "0xe8a116ec65f7d2d0d4748ba2bbcf8691cbd31202908ccfa3a975414fef801042")
237235
deposit_output_cell = create(:cell_output, block: ckb_transaction.block,
238-
capacity: 138 * 10**8,
236+
capacity: 138 * (10**8),
239237
tx_hash: "0xe8a116ec65f7d2d0d4748ba2bbcf8691cbd31202908ccfa3a975414fef801042",
240238
cell_index: 0,
241239
ckb_transaction:,

0 commit comments

Comments
 (0)