From 263a8d9a14af935443b18ca0bc753cc6ac361378 Mon Sep 17 00:00:00 2001 From: zhangyaning Date: Mon, 27 Oct 2025 13:50:38 +0800 Subject: [PATCH] remove remove_dao_tx_count_of_address and remove_dao_tx_count_of_address --- app/models/address.rb | 1 - app/models/address_block_snapshot.rb | 22 ------ app/workers/calculate_address_info_worker.rb | 2 - app/workers/update_address_info_worker.rb | 2 - ...27053353_remove_dao_tx_count_of_address.rb | 5 ++ ...027054232_remove_address_block_snapshot.rb | 5 ++ db/structure.sql | 73 +------------------ lib/tasks/migration/check_address_info.rake | 1 - ...ill_dao_transactions_count_to_address.rake | 21 ------ lib/tasks/migration/fix_address_tx_count.rake | 1 - .../migration/update_addresses_info.rake | 5 +- lib/tasks/migration/update_miner_balance.rake | 2 +- ...ddress_dao_transactions_controller_test.rb | 4 - test/factories/address_block_snapshot.rb | 16 ---- test/jobs/revert_block_job_test.rb | 5 +- test/test_helper.rb | 1 - ...lean_address_block_snapshot_worker_test.rb | 11 --- 17 files changed, 19 insertions(+), 158 deletions(-) delete mode 100644 app/models/address_block_snapshot.rb create mode 100644 db/migrate/20251027053353_remove_dao_tx_count_of_address.rb create mode 100644 db/migrate/20251027054232_remove_address_block_snapshot.rb delete mode 100644 lib/tasks/migration/fill_dao_transactions_count_to_address.rake delete mode 100644 test/factories/address_block_snapshot.rb delete mode 100644 test/workers/clean_address_block_snapshot_worker_test.rb diff --git a/app/models/address.rb b/app/models/address.rb index 02e0ba3bf..c827abb39 100644 --- a/app/models/address.rb +++ b/app/models/address.rb @@ -222,7 +222,6 @@ def unmade_dao_interests # average_deposit_time :bigint # unclaimed_compensation :decimal(30, ) # is_depositor :boolean default(FALSE) -# dao_transactions_count :bigint default(0) # lock_script_id :bigint # balance_occupied :decimal(30, ) default(0) # last_updated_block_number :bigint diff --git a/app/models/address_block_snapshot.rb b/app/models/address_block_snapshot.rb deleted file mode 100644 index 6379d5fe7..000000000 --- a/app/models/address_block_snapshot.rb +++ /dev/null @@ -1,22 +0,0 @@ -# save the relationship of dao transactions in address -class AddressBlockSnapshot < ApplicationRecord - belongs_to :block - belongs_to :address -end - -# == Schema Information -# -# Table name: address_block_snapshots -# -# id :bigint not null, primary key -# address_id :bigint -# block_id :bigint -# block_number :bigint -# final_state :jsonb -# -# Indexes -# -# index_address_block_snapshots_on_address_id (address_id) -# index_address_block_snapshots_on_block_id (block_id) -# index_address_block_snapshots_on_block_id_and_address_id (block_id,address_id) UNIQUE -# diff --git a/app/workers/calculate_address_info_worker.rb b/app/workers/calculate_address_info_worker.rb index 779b4f529..676ad5161 100644 --- a/app/workers/calculate_address_info_worker.rb +++ b/app/workers/calculate_address_info_worker.rb @@ -29,8 +29,6 @@ def perform() balance_occupied: balance_occupied, ckb_transactions_count: AccountBook.where(address_id: addr.id).count, live_cells_count: addr.cell_outputs.live.count, - dao_transactions_count: addr.ckb_dao_transactions.count, - created_at: addr.created_at, updated_at: Time.current } diff --git a/app/workers/update_address_info_worker.rb b/app/workers/update_address_info_worker.rb index 4e0b33b8c..32ee821ee 100644 --- a/app/workers/update_address_info_worker.rb +++ b/app/workers/update_address_info_worker.rb @@ -15,8 +15,6 @@ def perform(block_number) balance_occupied: balance_occupied, ckb_transactions_count: AccountBook.where(address_id: addr.id).count, live_cells_count: addr.cell_outputs.live.count, - dao_transactions_count: addr.ckb_dao_transactions.count, - created_at: addr.created_at, updated_at: Time.current } end diff --git a/db/migrate/20251027053353_remove_dao_tx_count_of_address.rb b/db/migrate/20251027053353_remove_dao_tx_count_of_address.rb new file mode 100644 index 000000000..09b79b5ab --- /dev/null +++ b/db/migrate/20251027053353_remove_dao_tx_count_of_address.rb @@ -0,0 +1,5 @@ +class RemoveDaoTxCountOfAddress < ActiveRecord::Migration[7.0] + def change + remove_columns :addresses, :dao_transactions_count, type: :bigint + end +end diff --git a/db/migrate/20251027054232_remove_address_block_snapshot.rb b/db/migrate/20251027054232_remove_address_block_snapshot.rb new file mode 100644 index 000000000..107947eb3 --- /dev/null +++ b/db/migrate/20251027054232_remove_address_block_snapshot.rb @@ -0,0 +1,5 @@ +class RemoveAddressBlockSnapshot < ActiveRecord::Migration[7.0] + def change + drop_table :address_block_snapshots, if_exists: true + end +end diff --git a/db/structure.sql b/db/structure.sql index 56c458ff8..749f89024 100644 --- a/db/structure.sql +++ b/db/structure.sql @@ -60,38 +60,6 @@ CREATE SEQUENCE public.account_books_id_seq ALTER SEQUENCE public.account_books_id_seq OWNED BY public.account_books.id; --- --- Name: address_block_snapshots; Type: TABLE; Schema: public; Owner: - --- - -CREATE TABLE public.address_block_snapshots ( - id bigint NOT NULL, - address_id bigint, - block_id bigint, - block_number bigint, - final_state jsonb -); - - --- --- Name: address_block_snapshots_id_seq; Type: SEQUENCE; Schema: public; Owner: - --- - -CREATE SEQUENCE public.address_block_snapshots_id_seq - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - --- --- Name: address_block_snapshots_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - --- - -ALTER SEQUENCE public.address_block_snapshots_id_seq OWNED BY public.address_block_snapshots.id; - - -- -- Name: address_udt_transactions; Type: TABLE; Schema: public; Owner: - -- @@ -123,7 +91,6 @@ CREATE TABLE public.addresses ( average_deposit_time bigint, unclaimed_compensation numeric(30,0), is_depositor boolean DEFAULT false, - dao_transactions_count bigint DEFAULT 0.0, lock_script_id bigint, balance_occupied numeric(30,0) DEFAULT 0.0, last_updated_block_number bigint @@ -2771,13 +2738,6 @@ ALTER TABLE ONLY public.ckb_transactions ATTACH PARTITION public.ckb_transaction ALTER TABLE ONLY public.account_books ALTER COLUMN id SET DEFAULT nextval('public.account_books_id_seq'::regclass); --- --- Name: address_block_snapshots id; Type: DEFAULT; Schema: public; Owner: - --- - -ALTER TABLE ONLY public.address_block_snapshots ALTER COLUMN id SET DEFAULT nextval('public.address_block_snapshots_id_seq'::regclass); - - -- -- Name: addresses id; Type: DEFAULT; Schema: public; Owner: - -- @@ -3199,14 +3159,6 @@ ALTER TABLE ONLY public.account_books ADD CONSTRAINT account_books_pkey PRIMARY KEY (id); --- --- Name: address_block_snapshots address_block_snapshots_pkey; Type: CONSTRAINT; Schema: public; Owner: - --- - -ALTER TABLE ONLY public.address_block_snapshots - ADD CONSTRAINT address_block_snapshots_pkey PRIMARY KEY (id); - - -- -- Name: addresses addresses_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- @@ -4362,27 +4314,6 @@ CREATE INDEX index_account_books_on_block_number_and_tx_index ON public.account_ CREATE INDEX index_account_books_on_ckb_transaction_id ON public.account_books USING btree (ckb_transaction_id); --- --- Name: index_address_block_snapshots_on_address_id; Type: INDEX; Schema: public; Owner: - --- - -CREATE INDEX index_address_block_snapshots_on_address_id ON public.address_block_snapshots USING btree (address_id); - - --- --- Name: index_address_block_snapshots_on_block_id; Type: INDEX; Schema: public; Owner: - --- - -CREATE INDEX index_address_block_snapshots_on_block_id ON public.address_block_snapshots USING btree (block_id); - - --- --- Name: index_address_block_snapshots_on_block_id_and_address_id; Type: INDEX; Schema: public; Owner: - --- - -CREATE UNIQUE INDEX index_address_block_snapshots_on_block_id_and_address_id ON public.address_block_snapshots USING btree (block_id, address_id); - - -- -- Name: index_address_udt_transactions_on_ckb_transaction_id; Type: INDEX; Schema: public; Owner: - -- @@ -6005,6 +5936,8 @@ INSERT INTO "schema_migrations" (version) VALUES ('20250827065749'), ('20250930015526'), ('20251011011714'), -('20251013082609'); +('20251013082609'), +('20251027053353'), +('20251027054232'); diff --git a/lib/tasks/migration/check_address_info.rake b/lib/tasks/migration/check_address_info.rake index 51148a4f2..da0e5b17c 100644 --- a/lib/tasks/migration/check_address_info.rake +++ b/lib/tasks/migration/check_address_info.rake @@ -9,7 +9,6 @@ namespace :migration do address.last_updated_block_number = local_tip_block.number address.live_cells_count = address.cell_outputs.live.where("block_timestamp <= ?", local_tip_block.timestamp).count address.ckb_transactions_count = AccountBook.where(address_id: address.id).where("block_number <= ?", local_tip_block.number).count - address.dao_transactions_count = DaoEvent.processed.where(address_id: address.id).where("block_timestamp <= ?", local_tip_block.timestamp).distinct.count(:ckb_transaction_id) address.cal_balance! address.save! end diff --git a/lib/tasks/migration/fill_dao_transactions_count_to_address.rake b/lib/tasks/migration/fill_dao_transactions_count_to_address.rake deleted file mode 100644 index 5d0480a2d..000000000 --- a/lib/tasks/migration/fill_dao_transactions_count_to_address.rake +++ /dev/null @@ -1,21 +0,0 @@ -namespace :migration do - desc "Usage: RAILS_ENV=production bundle exec rake migration:fill_dao_transactions_count_to_address" - task fill_dao_transactions_count_to_address: :environment do - progress_bar = ProgressBar.create({ - total: Address.count, - format: "%e %B %p%% %c/%C" - }) - - values = - Address.all.map do |address| - progress_bar.increment - dao_transactions_count = address.ckb_dao_transactions.count - - { id: address.id, dao_transactions_count: dao_transactions_count, created_at: address.created_at, updated_at: Time.current } - end - - Address.upsert_all(values) if values.present? - - puts "done" - end -end diff --git a/lib/tasks/migration/fix_address_tx_count.rake b/lib/tasks/migration/fix_address_tx_count.rake index 7167b26af..478f1f642 100644 --- a/lib/tasks/migration/fix_address_tx_count.rake +++ b/lib/tasks/migration/fix_address_tx_count.rake @@ -8,7 +8,6 @@ namespace :migration do local_tip_block = Block.recent.first address.update( ckb_transactions_count: AccountBook.where(address_id: address.id).where("block_number <= ?", local_tip_block.number).count, - dao_transactions_count: DaoEvent.processed.where(address_id: address.id).where("block_timestamp <= ?", local_tip_block.timestamp).distinct.count(:ckb_transaction_id), last_updated_block_number: local_tip_block.number, ) AddressBlockSnapshot.where(address_id: address.id).delete_all diff --git a/lib/tasks/migration/update_addresses_info.rake b/lib/tasks/migration/update_addresses_info.rake index 7783ae2f8..a8f10bb8d 100644 --- a/lib/tasks/migration/update_addresses_info.rake +++ b/lib/tasks/migration/update_addresses_info.rake @@ -5,8 +5,9 @@ namespace :migration do addr_attrs = [] Address.where(id: block.address_ids).select(:id, :mined_blocks_count, :created_at).each do |addr| next if addr.mined_blocks_count > 0 - addr_attrs << { id: addr.id, balance: addr.cell_outputs.live.sum(:capacity),ckb_transactions_count: addr.custom_ckb_transactions.count, live_cells_count: addr.cell_outputs.live.count, - dao_transactions_count: addr.ckb_dao_transactions.count, created_at: addr.created_at, updated_at: Time.current } + addr_attrs << { id: addr.id, balance: addr.cell_outputs.live.sum(:capacity), + ckb_transactions_count: addr.custom_ckb_transactions.count, live_cells_count: addr.cell_outputs.live.count, + updated_at: Time.current } end Address.upsert_all(addr_attrs) puts "#{local_tip_block.number - block.number} blocks left" diff --git a/lib/tasks/migration/update_miner_balance.rake b/lib/tasks/migration/update_miner_balance.rake index 3ab0fe337..28c82215f 100644 --- a/lib/tasks/migration/update_miner_balance.rake +++ b/lib/tasks/migration/update_miner_balance.rake @@ -7,7 +7,7 @@ namespace :migration do Address.find_each do |addr| addr.update(balance: addr.cell_outputs.live.sum(:capacity), ckb_transactions_count: addr.custom_ckb_transactions.count, - live_cells_count: addr.cell_outputs.live.count, dao_transactions_count: addr.ckb_dao_transactions.count) + live_cells_count: addr.cell_outputs.live.count) progress_bar.increment end diff --git a/test/controllers/api/v1/address_dao_transactions_controller_test.rb b/test/controllers/api/v1/address_dao_transactions_controller_test.rb index 4998d53c2..e0ff1f98b 100644 --- a/test/controllers/api/v1/address_dao_transactions_controller_test.rb +++ b/test/controllers/api/v1/address_dao_transactions_controller_test.rb @@ -153,7 +153,6 @@ class AddressDaoTransactionsControllerTest < ActionDispatch::IntegrationTest address_dao_transactions = address.ckb_dao_transactions.recent.page(page).per(page_size) valid_get api_v1_address_dao_transaction_url(address.address_hash), params: { page: } - address.dao_transactions_count options = FastJsonapi::PaginationMetaGenerator.new(request:, records: address_dao_transactions, page:, page_size:).call response_transaction = CkbTransactionsSerializer.new(address_dao_transactions, options.merge(params: { previews: true })).serialized_json @@ -170,7 +169,6 @@ class AddressDaoTransactionsControllerTest < ActionDispatch::IntegrationTest valid_get api_v1_address_dao_transaction_url(address.address_hash), params: { page_size: } - address.dao_transactions_count options = FastJsonapi::PaginationMetaGenerator.new(request:, records: address_dao_transactions, page:, page_size:).call response_transaction = CkbTransactionsSerializer.new(address_dao_transactions, options.merge(params: { previews: true })).serialized_json @@ -187,7 +185,6 @@ class AddressDaoTransactionsControllerTest < ActionDispatch::IntegrationTest valid_get api_v1_address_dao_transaction_url(address.address_hash), params: { page:, page_size: } - address.dao_transactions_count options = FastJsonapi::PaginationMetaGenerator.new(request:, records: address_dao_transactions, page:, page_size:).call response_transaction = CkbTransactionsSerializer.new(address_dao_transactions, options.merge(params: { previews: true })).serialized_json @@ -203,7 +200,6 @@ class AddressDaoTransactionsControllerTest < ActionDispatch::IntegrationTest valid_get api_v1_address_dao_transaction_url(address.address_hash), params: { page:, page_size: } - address.dao_transactions_count options = FastJsonapi::PaginationMetaGenerator.new(request:, records: address_dao_transactions, page:, page_size:).call response_transaction = CkbTransactionsSerializer.new(address_dao_transactions, options.merge(params: { previews: true })).serialized_json diff --git a/test/factories/address_block_snapshot.rb b/test/factories/address_block_snapshot.rb deleted file mode 100644 index f8c88735e..000000000 --- a/test/factories/address_block_snapshot.rb +++ /dev/null @@ -1,16 +0,0 @@ -FactoryBot.define do - factory :address_block_snapshot do - final_state do - { - balance: rand(10_000_000..20_000_000) * 10**8, - balance_occupied: rand(1_000_000..2_000_000) * 10**8, - live_cells_count: rand(10..100), - ckb_transactions_count: rand(100..200), - dao_transactions_count: rand(10..50), - last_updated_block_number: block.number - } - end - address - block - end -end diff --git a/test/jobs/revert_block_job_test.rb b/test/jobs/revert_block_job_test.rb index 960b46acf..3d668dcd1 100644 --- a/test/jobs/revert_block_job_test.rb +++ b/test/jobs/revert_block_job_test.rb @@ -15,7 +15,7 @@ class RevertBlockJobTest < ActiveJob::TestCase deposit_dao_event = create(:dao_event, block_id: first_block.id, block_timestamp: first_block.timestamp, ckb_transaction_id: tx.id, address_id: @address.id, value: 3000 * (10**8), event_type: "deposit_to_dao") - @address.update(balance: 6000 * (10**8), balance_occupied: 3000 * (10**8), live_cells_count: 4, ckb_transactions_count: 1, last_updated_block_number: first_block.number, dao_transactions_count: 1) + @address.update(balance: 6000 * (10**8), balance_occupied: 3000 * (10**8), live_cells_count: 4, ckb_transactions_count: 1, last_updated_block_number: first_block.number) @parent_block = create(:block, parent_hash: first_block.hash, address_ids: [@address.id], number: 11) parent_tx = create(:ckb_transaction, block: @parent_block) create(:cell_input, block_id: @parent_block.id, ckb_transaction: parent_tx, previous_cell_output_id: previous_cell_output1.id, index: 0) @@ -31,7 +31,6 @@ class RevertBlockJobTest < ActiveJob::TestCase deposit_dao_event.update(consumed_block_timestamp: @parent_block.timestamp, consumed_transaction_id: parent_tx.id) create(:dao_event, block_id: @parent_block.id, block_timestamp: @parent_block.timestamp, ckb_transaction_id: parent_tx.id, address_id: @address.id, value: 3000 * (10**8), event_type: "withdraw_from_dao") - @address.update(balance: 5000 * (10**8), balance_occupied: 3000 * (10**8), live_cells_count: 2, ckb_transactions_count: 2, last_updated_block_number: @parent_block.number, - dao_transactions_count: 2) + @address.update(balance: 5000 * (10**8), balance_occupied: 3000 * (10**8), live_cells_count: 2, ckb_transactions_count: 2, last_updated_block_number: @parent_block.number) end end diff --git a/test/test_helper.rb b/test/test_helper.rb index d9be854d9..46effcbb4 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -402,7 +402,6 @@ def expected_ranking(address1, address2, address3) def fake_dao_deposit_transaction(dao_cell_count, address) block = create(:block, :with_block_hash) - address.update(dao_transactions_count: dao_cell_count) dao_cell_count.times do |number| if number % 2 == 0 ckb_transaction1 = create(:ckb_transaction, diff --git a/test/workers/clean_address_block_snapshot_worker_test.rb b/test/workers/clean_address_block_snapshot_worker_test.rb deleted file mode 100644 index 1a345edb7..000000000 --- a/test/workers/clean_address_block_snapshot_worker_test.rb +++ /dev/null @@ -1,11 +0,0 @@ -require "test_helper" - -class CleanAddressBlockSnapshotWorkerTest < ActiveJob::TestCase - test "clean addrss block snapshot successfully" do - address = create(:address) - create_list(:address_block_snapshot, 60, address: address) - assert_changes -> { AddressBlockSnapshot.count }, from: 60, to: 30 do - CleanAddressBlockSnapshotWorker.new.perform - end - end -end