Bitcoin Forum
June 17, 2024, 04:05:02 PM
Welcome,
Guest
. Please
login
or
register
.
News
:
Voting for pizza day contest
Home
Help
Search
Login
Register
More
Bitcoin Forum
>
Bitcoin
>
Development & Technical Discussion
>
Optimize checkblock transaction checking on Bitcoin Core
Pages: [
1
]
« previous topic
next topic »
Print
Author
Topic: Optimize checkblock transaction checking on Bitcoin Core (Read 1401 times)
namecoin
(OP)
Newbie
Offline
Activity: 38
Merit: 0
Optimize checkblock transaction checking on Bitcoin Core
September 09, 2015, 07:53:41 AM
#1
It seems that we might be able to optimize some transaction checkings.
Many checkings are done twice:
1. when the transaction is placed into the pool
2. when verifying validity of the transaction in a block
Why don't we simply check if the transaction in a block is already in the memory pool? The transaction is already verified when it is placed into the pool.
Does this makes sense? If so, is there a reason that bitcoind does not want to do this?
Thank you very much for your review.
amaclin
Legendary
Offline
Activity: 1260
Merit: 1019
Re: Optimize checkblock transaction checking on Bitcoin Core
September 09, 2015, 08:18:59 AM
#2
Quote from: namecoin on September 09, 2015, 07:53:41 AM
It seems that we might be able to optimize some transaction checkings.
Many checkings are done twice:
1. when the transaction is placed into the pool
2. when verifying validity of the transaction in a block
Yes, may be some checks can be skipped (if not already)
But.
1) What do you want to achieve?
2) Can you calculate (in btc or bucks or kwh) the benefits of this refactoring?
3) Can you rewrite code yourself and submit a pull-request?
DannyHamilton
Legendary
Offline
Activity: 3430
Merit: 4668
Re: Optimize checkblock transaction checking on Bitcoin Core
September 09, 2015, 11:30:17 AM
#3
I think it would be a problem to just check if the transaction is already in the memory pool, wouldn't it?
Isn't it possible for other transactions that are already in the block to make some transactions in the memory pool invalid?
amaclin
Legendary
Offline
Activity: 1260
Merit: 1019
Re: Optimize checkblock transaction checking on Bitcoin Core
September 09, 2015, 11:59:05 AM
#4
It is possible to skip ECDSA signature verification if it was passed before.
As far as I remember Bitcoin Core Client caches valid signatures (but I do not know the size of this LRU cache).
Anyway, one is able to make any changes in code and add/remove any checks.
Just do it yourself and tell us about the results.
namecoin
(OP)
Newbie
Offline
Activity: 38
Merit: 0
Re: Optimize checkblock transaction checking on Bitcoin Core
September 10, 2015, 10:25:02 AM
Last edit: September 11, 2015, 06:20:26 AM by namecoin
#5
Quote from: amaclin on September 09, 2015, 08:18:59 AM
Quote from: namecoin on September 09, 2015, 07:53:41 AM
It seems that we might be able to optimize some transaction checkings.
Many checkings are done twice:
1. when the transaction is placed into the pool
2. when verifying validity of the transaction in a block
Yes, may be some checks can be skipped (if not already)
But.
1) What do you want to achieve?
2) Can you calculate (in btc or bucks or kwh) the benefits of this refactoring?
3) Can you rewrite code yourself and submit a pull-request?
Thanks for the inputs, amaclin and DannyHamilton.
1) Increase the tps that a node can process. It seems that our test machine cannot process more than 15 transactions per seconds (not talking about mining or blocksize).
3) My friend has the change already and can submit a pull-request.
namecoin
(OP)
Newbie
Offline
Activity: 38
Merit: 0
Re: Optimize checkblock transaction checking on Bitcoin Core
September 17, 2015, 06:58:32 AM
#6
FYI. The pull request filed earlier.
https://github.com/bitcoin/bitcoin/pull/6659
Pages: [
1
]
Print
Bitcoin Forum
>
Bitcoin
>
Development & Technical Discussion
>
Optimize checkblock transaction checking on Bitcoin Core
« previous topic
next topic »
Jump to:
Please select a destination:
-----------------------------
Bitcoin
-----------------------------
=> Bitcoin Discussion
===> Legal
===> Press
===> Meetups
===> Important Announcements
=> Development & Technical Discussion
===> Wallet software
=====> Electrum
=====> Bitcoin Wallet for Android
=====> BitcoinJ
=====> Armory
=====> Mycelium
=====> Hardware wallets
=> Mining
===> Mining support
===> Pools
===> Mining software (miners)
===> Hardware
=====> Group buys
===> Mining speculation
=> Bitcoin Technical Support
=> Project Development
-----------------------------
Economy
-----------------------------
=> Economics
===> Speculation
=> Marketplace
===> Goods
=====> Computer hardware
=====> Digital goods
=======> Invites & Accounts
=====> Collectibles
===> Services
===> Currency exchange
===> Gambling
=====> Games and rounds
=====> Investor-based games
=====> Gambling discussion
===> Lending
=====> Long-term offers
===> Securities
===> Auctions
===> Service Announcements
=====> Micro Earnings
===> Service Discussion
=====> Web Wallets
=====> Exchanges
=> Trading Discussion
===> Scam Accusations
===> Reputation
-----------------------------
Other
-----------------------------
=> Meta
===> New forum software
===> Bitcoin Wiki
=> Politics & Society
=> Beginners & Help
=> Off-topic
=> Serious discussion
===> Ivory Tower
=> Archival
===> Корзина
===> CPU/GPU Bitcoin mining hardware
===> Chinese students
===> Obsolete (buying)
===> Obsolete (selling)
===> MultiBit
-----------------------------
Alternate cryptocurrencies
-----------------------------
=> Altcoin Discussion
=> Announcements (Altcoins)
===> Tokens (Altcoins)
=> Mining (Altcoins)
===> Pools (Altcoins)
=> Marketplace (Altcoins)
===> Service Announcements (Altcoins)
===> Service Discussion (Altcoins)
===> Bounties (Altcoins)
=> Speculation (Altcoins)
-----------------------------
Local
-----------------------------
=> العربية (Arabic)
===> العملات البديلة (Altcoins)
=====> النقاشات
===> إستفسارات و أسئلة المبتدئين
===> التعدين
===> النقاشات الأخرى
===> منصات التبادل
=> Bahasa Indonesia (Indonesian)
===> Marketplace (Bahasa Indonesia)
===> Mining (Bahasa Indonesia)
===> Altcoins (Bahasa Indonesia)
===> Trading dan Spekulasi
===> Ekonomi, Politik, dan Budaya
===> Topik Lainnya
=> Español (Spanish)
===> Mercado y Economía
=====> Servicios
=====> Trading y especulación
===> Hardware y Minería
===> Esquina Libre
===> Mercadillo
=====> Mexico
=====> Argentina
=====> España
=====> Centroamerica y Caribe
===> Primeros pasos y ayuda
===> Altcoins (criptomonedas alternativas)
=====> Minería de altcoins
=====> Servicios
=====> Tokens (Español)
=> 中文 (Chinese)
===> 跳蚤市场
===> 山寨币
===> 媒体
===> 挖矿
===> 离题万里
=> Hrvatski (Croatian)
===> Trgovina
===> Altcoins (Hrvatski)
=====> Announcements (Hrvatski)
===> Off-topic (Hrvatski)
=> Deutsch (German)
===> Anfänger und Hilfe
===> Mining (Deutsch)
===> Trading und Spekulation
===> Projektentwicklung
===> Off-Topic (Deutsch)
===> Treffen
===> Presse
===> Altcoins (Deutsch)
=====> Announcements (Deutsch)
===> Marktplatz
=====> Auktionen
=====> Suche
=====> Biete
=> Ελληνικά (Greek)
===> Αγορά
===> Mining Discussion (Ελληνικά)
===> Altcoins (Ελληνικά)
=====> Altcoin Announcements (Ελληνικά)
=====> Altcoin Mining (Ελληνικά)
=> עברית (Hebrew)
=> Français
===> Actualité et News
===> Débutants
===> Discussions générales et utilisation du Bitcoin
===> Mining et Hardware
===> Économie et spéculation
===> Place de marché
=====> Échanges
=====> Produits et services
=====> Petites annonces
===> Le Bitcoin et la loi
===> Wiki, documentation et traduction
===> Développement et technique
===> Vos sites et projets
===> Hors-sujet
===> Altcoins (Français)
=====> Annonces
=> India
===> Mining (India)
===> Marketplace (India)
===> Regional Languages (India)
===> Press & News from India
===> Alt Coins (India)
===> Buyer/ Seller Reputations (India)
===> Off-Topic (India)
=> Italiano (Italian)
===> Guide (Italiano)
===> Progetti
===> Discussioni avanzate e sviluppo
===> Trading, analisi e speculazione
===> Mercato
=====> Mercato valute
=====> Beni
=====> Servizi
=====> Esercizi commerciali
=====> Hardware/Mining (Italiano)
=====> Gambling (Italiano)
===> Accuse scam/truffe
===> Mining (Italiano)
===> Alt-Currencies (Italiano)
=====> Annunci
===> Raduni/Meeting (Italiano)
===> Crittografia e decentralizzazione
===> Off-Topic (Italiano)
=> 日本語 (Japanese)
===> アルトコイン
=> Nederlands (Dutch)
===> Markt
===> Gokken/lotterijen
===> Mining (Nederlands)
===> Beurzen
===> Alt Coins (Nederlands)
===> Off-topic (Nederlands)
===> Meetings (Nederlands)
=> Nigeria (Naija)
===> Politics and society (Naija)
===> Off-topic (Naija)
=> 한국어 (Korean)
===> 대체코인 Alt Coins (한국어)
=> Pilipinas
===> Altcoins (Pilipinas)
=====> Altcoin Announcements (Pilipinas)
===> Pamilihan
===> Others (Pilipinas)
=> Polski
===> Tablica ogłoszeń
===> Alternatywne kryptowaluty
=====> Nowe kryptowaluty i tokeny
=====> Tablica ogłoszeń (altcoiny)
=> Português (Portuguese)
===> Primeiros Passos (Iniciantes)
===> Economia & Mercado
===> Mineração em Geral
===> Desenvolvimento & Discussões Técnicas
===> Criptomoedas Alternativas
===> Brasil
===> Portugal
=> Русский (Russian)
===> Новички
===> Бизнес
=====> Барахолка
=====> Обменники
===> Идеи
===> Кодеры
===> Майнеры
===> Политика
===> Трейдеры
===> Альтернативные криптовалюты
=====> Токены
=====> Бayнти и aиpдpoпы
===> Хайпы
===> Работа
===> Разное
===> Oбcyждeниe Bitcoin
=====> Новости
=====> Юристы
=> Română (Romanian)
===> Anunturi importante
===> Offtopic
===> Market
=====> Discutii Servicii
===> Minerit
===> Tutoriale
===> Bine ai venit!
===> Presa
===> Altcoins (Monede Alternative)
=====> Anunturi Monede Alternative
=> Skandinavisk
=> Türkçe (Turkish)
===> Bitcoin Haberleri
===> Pazar Alanı
===> Madencilik
===> Ekonomi
===> Servisler
=====> Fonlar
===> Proje Geliştirme
===> Alternatif Kripto-Paralar
=====> Madencilik (Alternatif Kripto-Paralar)
=====> Duyurular (Alternatif Kripto-Paralar)
===> Konu Dışı
===> Yeni Başlayanlar & Yardım
===> Buluşmalar
=> Other languages/locations
Loading...