Skip to content
Snippets Groups Projects
Commit 22ce9ccc authored by Hans Moog's avatar Hans Moog
Browse files

Feat: started to rework broadCastData webapi call

parent 11a24985
No related branches found
No related tags found
No related merge requests found
......@@ -22,6 +22,7 @@ import (
"github.com/iotaledger/goshimmer/plugins/spa"
"github.com/iotaledger/goshimmer/plugins/tangle"
"github.com/iotaledger/goshimmer/plugins/webapi"
webapi_broadcastData "github.com/iotaledger/goshimmer/plugins/webapi/broadcastData"
webapi_gtta "github.com/iotaledger/goshimmer/plugins/webapi/gtta"
webapi_spammer "github.com/iotaledger/goshimmer/plugins/webapi/spammer"
webapi_auth "github.com/iotaledger/goshimmer/plugins/webauth"
......@@ -60,11 +61,11 @@ func main() {
webapi_auth.PLUGIN,
webapi_gtta.PLUGIN,
webapi_spammer.PLUGIN,
webapi_broadcastData.PLUGIN,
spa.PLUGIN,
/*
webapi_broadcastData.PLUGIN,
webapi_getTransactionTrytesByHash.PLUGIN,
webapi_getTransactionObjectsByHash.PLUGIN,
webapi_findTransactionHashes.PLUGIN,
......
out.png

344 KiB | W: | H:

out.png

290 KiB | W: | H:

out.png
out.png
out.png
out.png
  • 2-up
  • Swipe
  • Onion skin
......@@ -14,7 +14,7 @@ var ErrReceivedDuplicateBytes = fmt.Errorf("received duplicate bytes")
type RecentlySeenBytesFilter struct {
bytesFilter *bytesfilter.BytesFilter
onAcceptCallback func(bytes []byte, peer *peer.Peer)
onRejectCallback func(bytes []byte, err error)
onRejectCallback func(bytes []byte, err error, peer *peer.Peer)
workerPool async.WorkerPool
onAcceptCallbackMutex sync.RWMutex
......@@ -34,7 +34,7 @@ func (filter *RecentlySeenBytesFilter) Filter(bytes []byte, peer *peer.Peer) {
if filter.bytesFilter.Add(bytes) {
filter.getAcceptCallback()(bytes, peer)
} else {
filter.getRejectCallback()(bytes, ErrReceivedDuplicateBytes)
filter.getRejectCallback()(bytes, ErrReceivedDuplicateBytes, peer)
}
})
}
......@@ -45,7 +45,7 @@ func (filter *RecentlySeenBytesFilter) OnAccept(callback func(bytes []byte, peer
filter.onAcceptCallbackMutex.Unlock()
}
func (filter *RecentlySeenBytesFilter) OnReject(callback func(bytes []byte, err error)) {
func (filter *RecentlySeenBytesFilter) OnReject(callback func(bytes []byte, err error, peer *peer.Peer)) {
filter.onRejectCallbackMutex.Lock()
filter.onRejectCallback = callback
filter.onRejectCallbackMutex.Unlock()
......@@ -59,7 +59,7 @@ func (filter *RecentlySeenBytesFilter) getAcceptCallback() (result func(bytes []
return
}
func (filter *RecentlySeenBytesFilter) getRejectCallback() (result func(bytes []byte, err error)) {
func (filter *RecentlySeenBytesFilter) getRejectCallback() (result func(bytes []byte, err error, peer *peer.Peer)) {
filter.onRejectCallbackMutex.Lock()
result = filter.onRejectCallback
filter.onRejectCallbackMutex.Unlock()
......
......@@ -14,7 +14,7 @@ var ErrInvalidSignature = fmt.Errorf("invalid signature")
type TransactionSignatureFilter struct {
onAcceptCallback func(tx *transaction.Transaction, peer *peer.Peer)
onRejectCallback func(tx *transaction.Transaction, err error)
onRejectCallback func(tx *transaction.Transaction, err error, peer *peer.Peer)
workerPool async.WorkerPool
onAcceptCallbackMutex sync.RWMutex
......@@ -32,7 +32,7 @@ func (filter *TransactionSignatureFilter) Filter(tx *transaction.Transaction, pe
if tx.VerifySignature() {
filter.getAcceptCallback()(tx, peer)
} else {
filter.getRejectCallback()(tx, ErrInvalidSignature)
filter.getRejectCallback()(tx, ErrInvalidSignature, peer)
}
})
}
......@@ -43,7 +43,7 @@ func (filter *TransactionSignatureFilter) OnAccept(callback func(tx *transaction
filter.onAcceptCallbackMutex.Unlock()
}
func (filter *TransactionSignatureFilter) OnReject(callback func(tx *transaction.Transaction, err error)) {
func (filter *TransactionSignatureFilter) OnReject(callback func(tx *transaction.Transaction, err error, peer *peer.Peer)) {
filter.onRejectCallbackMutex.Lock()
filter.onRejectCallback = callback
filter.onRejectCallbackMutex.Unlock()
......@@ -61,7 +61,7 @@ func (filter *TransactionSignatureFilter) getAcceptCallback() (result func(tx *t
return
}
func (filter *TransactionSignatureFilter) getRejectCallback() (result func(tx *transaction.Transaction, err error)) {
func (filter *TransactionSignatureFilter) getRejectCallback() (result func(tx *transaction.Transaction, err error, peer *peer.Peer)) {
filter.onRejectCallbackMutex.RLock()
result = filter.onRejectCallback
filter.onRejectCallbackMutex.RUnlock()
......
......@@ -7,6 +7,6 @@ import (
type BytesFilter interface {
Filter(bytes []byte, peer *peer.Peer)
OnAccept(callback func(bytes []byte, peer *peer.Peer))
OnReject(callback func(bytes []byte, err error))
OnReject(callback func(bytes []byte, err error, peer *peer.Peer))
Shutdown()
}
......@@ -9,6 +9,6 @@ import (
type TransactionFilter interface {
Filter(tx *transaction.Transaction, peer *peer.Peer)
OnAccept(callback func(tx *transaction.Transaction, peer *peer.Peer))
OnReject(callback func(tx *transaction.Transaction, err error))
OnReject(callback func(tx *transaction.Transaction, err error, peer *peer.Peer))
Shutdown()
}
......@@ -30,13 +30,13 @@ func New() (result *TransactionParser) {
Events: transactionParserEvents{
BytesRejected: events.NewEvent(func(handler interface{}, params ...interface{}) {
handler.(func([]byte, error))(params[0].([]byte), params[1].(error))
handler.(func([]byte, error, *peer.Peer))(params[0].([]byte), params[1].(error), params[2].(*peer.Peer))
}),
TransactionParsed: events.NewEvent(func(handler interface{}, params ...interface{}) {
handler.(func(*transaction.Transaction, *peer.Peer))(params[0].(*transaction.Transaction), params[1].(*peer.Peer))
}),
TransactionRejected: events.NewEvent(func(handler interface{}, params ...interface{}) {
handler.(func(*transaction.Transaction, error))(params[0].(*transaction.Transaction), params[1].(error))
handler.(func(*transaction.Transaction, error, *peer.Peer))(params[0].(*transaction.Transaction), params[1].(error), params[2].(*peer.Peer))
}),
},
}
......@@ -101,8 +101,8 @@ func (transactionParser *TransactionParser) setupBytesFilterDataFlow() {
} else {
transactionParser.bytesFilters[i].OnAccept(transactionParser.bytesFilters[i+1].Filter)
}
transactionParser.bytesFilters[i].OnReject(func(bytes []byte, err error) {
transactionParser.Events.BytesRejected.Trigger(bytes, err)
transactionParser.bytesFilters[i].OnReject(func(bytes []byte, err error, peer *peer.Peer) {
transactionParser.Events.BytesRejected.Trigger(bytes, err, peer)
})
}
}
......@@ -127,8 +127,8 @@ func (transactionParser *TransactionParser) setupTransactionsFilterDataFlow() {
} else {
transactionParser.transactionFilters[i].OnAccept(transactionParser.transactionFilters[i+1].Filter)
}
transactionParser.transactionFilters[i].OnReject(func(tx *transaction.Transaction, err error) {
transactionParser.Events.TransactionRejected.Trigger(tx, err)
transactionParser.transactionFilters[i].OnReject(func(tx *transaction.Transaction, err error, peer *peer.Peer) {
transactionParser.Events.TransactionRejected.Trigger(tx, err, peer)
})
}
}
......@@ -137,7 +137,7 @@ func (transactionParser *TransactionParser) setupTransactionsFilterDataFlow() {
func (transactionParser *TransactionParser) parseTransaction(bytes []byte, peer *peer.Peer) {
if parsedTransaction, err := transaction.FromBytes(bytes); err != nil {
transactionParser.Events.BytesRejected.Trigger(bytes, err)
transactionParser.Events.BytesRejected.Trigger(bytes, err, peer)
} else {
transactionParser.transactionFilters[0].Filter(parsedTransaction, peer)
}
......
......@@ -42,6 +42,7 @@ func configure(*node.Plugin) {
// setup TransactionParser
TransactionParser.Events.TransactionParsed.Attach(events.NewClosure(func(transaction *transaction.Transaction, peer *peer.Peer) {
peer.PublicKey()
// TODO: ADD PEER
Instance.AttachTransaction(transaction)
......
......@@ -29,7 +29,6 @@ func configure(plugin *node.Plugin) {
// broadcastData creates a data (0-value) transaction given an input of bytes and
// broadcasts it to the node's neighbors. It returns the transaction hash if successful.
func broadcastData(c echo.Context) error {
var request Request
if err := c.Bind(&request); err != nil {
log.Info(err.Error())
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment