<div dir="ltr">Bill, <div><br></div><div>lftp, sftp, rsync, etc.  are viable alternatives. As usual, in my world, there's something that might work for sending data and allowing its request by multiple hosts, as well. It's used to push weather data all over the place and is widely used world-wide. Let's talk offline a little and let me get a slightly better sense of the data you're moving and if the LDM system might be useful or might just be, to borrow Phil's comment in another thread, a "hammer looking for a nail".</div><div><br></div><div>73</div><div>Gerry N5JXS</div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Jun 9, 2020 at 4:38 PM Engelke, Bill via TangerineSDR <<a href="mailto:tangerinesdr@lists.tapr.org">tangerinesdr@lists.tapr.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">





<div lang="EN-US">
<div class="gmail-m_-3467446938405794070WordSection1">
<p class="MsoNormal">Hello All:<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">I have a prototype of a process working for moving (raw) spectrum data from the TangerineSDR to the Central Host; I would like any interested colleagues to review and comment on it, since it is such an important piece of the system. I have
 a mockup running in Ubuntu on a virtual server, but the final Central Host process will run under CentOS and Django. Here’s how the process works:<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<ol style="margin-top:0in" start="1" type="1">
<li class="gmail-m_-3467446938405794070MsoListParagraph" style="margin-left:0in">When in Ringbuffer mode, the TangerineSDR collects one to 16 bands of spectrum data, saving it in a ring buffer in Digital RF format. (Typical actual use would probably be the ~ 5
 bands of WWV).<u></u><u></u></li><li class="gmail-m_-3467446938405794070MsoListParagraph" style="margin-left:0in">Every so often (say, 120 seconds), the TangerineSDR sends a heartbeat packet to the Central Host.
<u></u><u></u></li><li class="gmail-m_-3467446938405794070MsoListParagraph" style="margin-left:0in">If the Central Host has been given a data collection command (by a superuser), it will reply to the heartbeat with a Data Request that has a start and end time.<u></u><u></u></li><li class="gmail-m_-3467446938405794070MsoListParagraph" style="margin-left:0in">The TangerineSDR finds all the files and metadata collected during the requested time frame and uses tar to put into a single file (optionally compressed).
<u></u><u></u></li><li class="gmail-m_-3467446938405794070MsoListParagraph" style="margin-left:0in">The upload file gets named according to the (still being refined) CWRU naming convention (except that band info will not appear in the file name since a DRF file will usually contain
 multiple bands).<u></u><u></u></li><li class="gmail-m_-3467446938405794070MsoListParagraph" style="margin-left:0in">The TangerineSDR optionally sets the maximum upload rate (“throttle”) and uses the utility lftp to send the file to the sftp server running on the Central Host. Each user has their
 own “incoming” directory. <u></u><u></u></li><li class="gmail-m_-3467446938405794070MsoListParagraph" style="margin-left:0in">The Central Host checks the incoming directories at certain intervals; when it finds a file package, it moves it to a central collection and puts a cross-reference into the relational
 database.<u></u><u></u></li></ol>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">Notes: I thought about a number of different ways of moving the data from TangerineSDR to the Central Host; this way seems promising because it offers the following benefits –<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<ul style="margin-top:0in" type="disc">
<li class="gmail-m_-3467446938405794070MsoListParagraph" style="margin-left:0in"><span style="font-family:"Courier New"">lftp</span> is restartable in case the upload is interrupted. Some uploads will run for a long time.<u></u><u></u></li><li class="gmail-m_-3467446938405794070MsoListParagraph" style="margin-left:0in">Using sftp as the protocol protects the data in transit.<u></u><u></u></li><li class="gmail-m_-3467446938405794070MsoListParagraph" style="margin-left:0in">The Central Host can handle a lot of uploads at once without burdening the website.<u></u><u></u></li><li class="gmail-m_-3467446938405794070MsoListParagraph" style="margin-left:0in">Since each user has a unique UID and password, and data travels encrypted, we should be able to minimize hackers uploading garbage.<u></u><u></u></li><li class="gmail-m_-3467446938405794070MsoListParagraph" style="margin-left:0in">The TangerineSDR has another mode (“snapshotter”) which pre-processes raw spectrum into frequency domain data – this will be handled differently (more to come on that).<u></u><u></u></li></ul>
<p class="gmail-m_-3467446938405794070MsoListParagraph"><u></u> <u></u></p>
<p class="gmail-m_-3467446938405794070MsoListParagraph" style="margin-left:0.25in">I’m sure I have not thought of everything though;  if you have a suggestion on how to do this better, it is most welcome – thanks for your help!   -73- Bill  AB4EJ
<u></u><u></u></p>
</div>
</div>

-- <br>
TangerineSDR mailing list<br>
<a href="mailto:TangerineSDR@lists.tapr.org" target="_blank">TangerineSDR@lists.tapr.org</a><br>
<a href="http://lists.tapr.org/mailman/listinfo/tangerinesdr_lists.tapr.org" rel="noreferrer" target="_blank">http://lists.tapr.org/mailman/listinfo/tangerinesdr_lists.tapr.org</a><br>
</blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr" class="gmail_signature"><div dir="ltr"><div dir="ltr">Gerry Creager<div>NSSL/CIMMS</div><div>(C) 979.229.5301 <--- NOTE THAT MY OFFICE NUMBER HAS CHANGED</div><div></div><div>++++++++++++++++++++++<br></div><div><div><i>The way to get started is to quit talking and begin doing.</i></div><i>   Walt Disney<br></i></div></div></div></div>