Comments (5)
Correction, SendMessages
should retain its sole purpose of sending out messages. The functions like sendrawtransaction
that already handle checks should take care of ensuring the correct nodes are sent the new transaction. Additionally, rpc functionality needs to have access to Dandelion structures and locks.
from bitcoin.
Good point, let's merge srya-b/bitcoin-dandelion@621667e but with the new approach
from bitcoin.
Yes, I'm going to go through the rpc calls and do the new inplementation.
from bitcoin.
If we can include the namespace'd items and the new maps we've introduced like mapEmbargo
in the net_processing
header file, then we can copy the implementation in the rpc calls. However, there is a lot of stuff included in the anon namespace in net_processing.cpp
and I don't know whether we want to expose all of those data structures to other parts of the code like rpc calls.
If that's the case maybe the best way would be just to create a new dandelion relaying function that can be called from rpc instead of doing the standard pnode->pushInventory(...)
.
from bitcoin.
Right, I wanted to hide as much as possible of those data structures since they need to be locked and maintained consistently. What I did was expose the RelayTransactionDandelion
function (it's declared in net.h
right now, although to be fair that's a little confusing since its implemented in net_processing.cpp
Line 2830 in 66d0cf2
from bitcoin.
Related Issues (17)
- Prevent mempool leaks HOT 5
- Garbage collect stemSet HOT 1
- Use sample messages instead of a protocol version. Or at least a temporary Service Flag. HOT 1
- Update the vStemNodes set when peers are added or removed
- Possible way for a supernode to learn the stem
- Delay disconnecting nodes that send invalid stem conflicts
- Is the work on Dandelion on hold? HOT 3
- When an active "stem node" disconnects, select a new stem node
- Add DoS protection to mapDandelionRelay
- Random number generation HOT 2
- Vector indexing HOT 1
- Use node IDs when processing node lists HOT 1
- Stemset access concurrency unsafe HOT 3
- Exclude candidate stem nodes that would reject the transaction anyway HOT 5
- Dandelion inv messages HOT 4
- Implement random timers HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from bitcoin.