Ich habe ein großes Datenarray im BC. Das Array umfasst 15.000.000 ElementeCar
struct
struct Car{
string tag;
uint mileage;
string make;
string model;
address address;
string country;
}
Ich muss nach einem suchen: bestimmtes Modell und
Millage zwischen X, Y und
Land gleich X und
Tag beginnt mit einem bestimmten Buchstaben
(es wird komplizierter).
Halten Sie es für eine gute Praxis, 15 Millionen Elemente an WEB3 zurückzugeben und in JS zu suchen?
Diese solide Suche wird viel Benzin kosten. und JS ist einfacher zu durchsuchen.
Wie schnell wird WEB3 diese Anzahl von Zeilen zurückgeben?
Danke
Das klingt haarig.
Hat die Car
Einfügung ein Ereignis mit den relevanten Informationen ausgegeben? Wenn ja, dann kannst du .watch
es ab dem Block der ersten Einfügung machen. Das würde:
Sehen Sie sich RxJs an, wie Sie einen Ereignisbeobachter in ein Observable verwandeln. Dann können Sie Filter und ähnliches anwenden, was Ihnen helfen würde.
So etwas nicht so Pseudo-Code:
Rx.Observable.create(observer => {
const filter = myContract.LogCar();
filter.watch((err, oneEvent) => {
if (err) observer.onError(err)
else observer.onNext(oneEvent);
});
// Cleanup logic
return () => filter.stopWatching(console.error);
})
.filter(oneEvent => oneEvent.args.mileage.atLeast(10))
.subscribe(
console.log,
console.error,
() => console.log("completed"));
SexyMF
Xavier Leprêtre B9lab