Bitcoin Forum
May 25, 2024, 09:53:56 PM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
  Home Help Search Login Register More  
  Show Posts
Pages: « 1 ... 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 [205] 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 »
4081  Bitcoin / Armory / Re: Most Secure Bitcoin Wallet Armory Raises $600k on: October 01, 2013, 04:01:58 AM
(unless you're still working on a 32 bit version for Win XP?)

From what I've seen of the project, the current LevelDB reduced ram branch could be pretty functional in 32 bit Windows, including XP
4082  Bitcoin / Project Development / Re: [BOUNTY - 25 BTC] Audio/Modem-based communication library on: September 25, 2013, 09:53:37 PM
Attribution is fine.  Adding their logo and acknowledgment to our website would probably be fine, too, if we actually integrate the solution into Armory.  If that's easiest for you, do it. 

Sounds good. I will build the lib with ASIO and perform tests with and without. If it turns out to be significant in speed and/or portability, I will keep it.
4083  Bitcoin / Project Development / Re: [BOUNTY - 25 BTC] Audio/Modem-based communication library on: September 25, 2013, 06:01:52 PM
Quick Update:

OpenAL isn't open source anymore. It's mainly maintained under a proprietary license for Windows only. There is a fork of the original implementation that's somehow maintained but I've decided to move on to PortAudio, an open source cross platform audio library.

PortAudio comes with built in ASIO support, which is a low latency cross platform audio driver under a proprietary license. However the SDK and drivers are free to download and use, and the license is free of fees and royalties. They essentially only ask to be mentioned and have their logo added to product boxes and websites.

If that's not ok, I'll dump ASIO. However I think it would allow easier cross platform deployment to have a unified driver. Waiting on your input.
4084  Bitcoin / Project Development / Re: [BOUNTY - 25 BTC] Audio/Modem-based communication library on: September 25, 2013, 05:26:01 PM
It's entirely possible to secure the channel however. My primary intention was to compress the data to be sent and uncompress it on the other side, since the bottleneck is channel bandwidth rather than CPU cycles, however, it could be used without compression and a SSL handshake kind of setup to secure the channel. That would be kinda slow however.

I see no reason to spend any effort on securing the channel, beyond making sure that the offline device is getting data from the correct online device (no injection).  But given the SNR of a direct audio cable, I'm not concerned about that either.  This is purely a bandwidth issue.

Compression would be great, except I wouldn't count on it to help very much, since the transactions are mostly hashes which aren't compressible.  I would guess you'd get no more than 5%-10% compression.  So again, the real bottleneck here is how many bits-per-second you can reliably push over the audio channel.

5-10% would pay for the packet headers and CRC overheads, I'd be fine with that. Snappy is overly way too easy to implement to just pass on that.

Regarding bit rate, I just setup a second PC in my room. Expect some results in a week or 2, depending on my schedule.
4085  Bitcoin / Project Development / Re: [BOUNTY - 25 BTC] Audio/Modem-based communication library on: September 25, 2013, 04:03:00 PM
It's entirely possible to secure the channel however. My primary intention was to compress the data to be sent and uncompress it on the other side, since the bottleneck is channel bandwidth rather than CPU cycles, however, it could be used without compression and a SSL handshake kind of setup to secure the channel. That would be kinda slow however.
4086  Bitcoin / Project Development / Re: [BOUNTY - 25 BTC] Audio/Modem-based communication library on: September 25, 2013, 03:49:14 AM
I think we determined that over-the-air wasn't going to work.  If it did it would strictly be a bonus -- I intend to use/require the double-ended audio cables.

2 wires may not be necessary in some cases. I can reassign audio sockets on my sound card and this has been the case since quite a while with the advent of Realtek sound cards integrated to mobos. This is no priority of mine but I definitely intent to look into it.

It would allow for 2 ways simplex data transactions over a single line, and I think it will be feasible with most audio hardware. From my experience with MCUs, pins that are connected to the PWM output or the DAC can also be used as ADC, even on ancient 8 bit MCUs. It's only a matter of driver at this point. It would require some system calls which will result in portability nightmares but it's a viable long term goal.

I don't think the over the air data link is unfeasible, however it would be yet another nightmare to setup and way too much work when one can simply plug in a double ended wire across a couple PCs. All portable devices I've seen (tablets, smart phones, mp3 players, even portable gaming consoles) have an audio input and output port, so this approach fits long term, wide range portability as well. That and over the air would be considerably slower. I think people would prefer to take the 2 minutes it takes to plug a couple wires with an extra 5 minutes of transfers over instant setup and 30 minutes worth of audio torture.
4087  Bitcoin / Project Development / Re: [BOUNTY - 25 BTC] Audio/Modem-based communication library on: September 25, 2013, 02:21:59 AM
Let me get this clear, is this bounty for an open air audio data channel or a wired one? I only intent to develop one that works by plugging both computers sound cards to each over with a couple of double ended wires
4088  Bitcoin / Project Development / Re: [BOUNTY - 25 BTC] Audio/Modem-based communication library on: September 24, 2013, 07:34:06 PM
If the 25 BTC is still standing, I'd like to take a shot at this. I'm considering building a lib from the grounds up in C++ with OpenAL.
4089  Bitcoin / Armory / Re: RAM-Reduction & Backup Center Testing (version 0.89.99.3) on: September 24, 2013, 07:32:49 PM
I don't want to spend a ton of time on it... but now that the RAM issues are under control, and it previously worked on XP, I would be willing to spend a couple hours getting it work on XP.  Especially because some users might have old XP systems laying around they'd want to use for offline use (don't bash them, it's still better than an online computer Smiley)

You can't install msvc11 on WinXP, you need .NET Framework 4.0, which is only compatible with Windows 6.0 (Vista) and above. I have built the LevelDB port using the WinXP tool, but haven't tested it. There are instructions for WinXP deployment with the port I sent you.
4090  Bitcoin / Armory / Re: Armory - Discussion Thread on: September 23, 2013, 10:29:02 PM
Finished building armory with latest version of LevelDB on msvc11. There are code files and instruction files to pass on, as well as some implementation specifics to discuss, maybe we should proceed in private messages so as to not bloat this thread any further.
4091  Bitcoin / Armory / Re: Armory - Discussion Thread on: September 21, 2013, 02:56:48 AM
I've just successfully compiled my own take at LevelDB on MSVC. I need to bench it, test the x64 build and write a guide so that you can upgrade the project with newer versions as they come.

It's late now and I won't be around on Saturday nor for the best part of Sunday. Expect delivery at best on Sunday night.
4092  Bitcoin / Armory / Re: Armory - Discussion Thread on: September 19, 2013, 07:25:26 PM
I'm glad to hear the Windows build went through properly.

Regarding the speed issue and LevelDB: I suspect it's due to the implementation of atomic types and routines used in leveldbwin. That project is made for msvc 9 and 10, which don't support atomics and as such rely on full memory barriers and software mutexes, which are considerably slower than atomics. LevelDB is natively a C11 POSIX library.

I am going to try building the port folder on msvc11, with native atomics support. As I said before, I suspect compiling this part is all it'll take to get any version of LevelDB to build properly.

Regarding py2exe: I have no experience with Python, however Windows development is all about DLL compartmentalization, i.e. maintaining the armory core and the Python GUI part separately. I didn't get the impression that this is what SWIG does. I'd assume if there was a way to simply link the Python code to DLL binaries, it would considerably simplify the py2exe part, by limited its scope to the GUI code and an exporting header of sorts. Then again I may be totally out of my league and talking out of my a**.
4093  Bitcoin / Armory / Re: Armory - Discussion Thread on: September 17, 2013, 08:33:56 PM
I selected "Use of ATL -- Yes".  Maybe it figured it out based on that?

Possibly. I never do that, I just link the include folder.
4094  Bitcoin / Armory / Re: Armory - Discussion Thread on: September 17, 2013, 08:29:05 PM
You have to indicate both header and lib folder to msvc unless you install a pay version. You can register these folders globally in msvc options rather than just link them to each of your projects. Not sure how it's done is vc11 express. Ima look it up

It actually complied the leveldb.lib without linking the lib folder to the project.  I only included the header and it was happy.

That's odd, i had to link atl.lib to it. Regardless, as long as it's built, the rest is irrelevant.
4095  Bitcoin / Armory / Re: Armory - Discussion Thread on: September 17, 2013, 08:23:29 PM
Ok my bad the global include folder registering through msvc GUI seems to be limited to pay versions. Have to do it through the registry.
4096  Bitcoin / Armory / Re: Armory - Discussion Thread on: September 17, 2013, 08:23:19 PM

Ugh!  Why is Windows search so terrible?!  I did a full "search" of the C-drive and it came up with nothing.  But I just followed the path you mentioned and I found it.  Alright, I'll manually add that to the "Additional Include Directories" and see where that gets me.

Windows Search is based on preindexation performed by a back-end service. New folders may not be parsed right away in the temporary db.

You have to indicate both header and lib folder to msvc unless you install a pay version. You can register these folders globally in msvc options rather than just link them to each of your projects. Not sure how it's done is vc11 express. Ima look it up
4097  Bitcoin / Armory / Re: Armory - Discussion Thread on: September 17, 2013, 08:15:16 PM
@ goatpig

I am trying to follow your solution on Windows 7, 32-bit.  Everything has been smooth except for ATL.  I installed the 7.1.0 WDK, but it still can't find atlbase.h.  I have searched the entire harddrive looking for it, but can't find it.  I reinstalled the WDK and rebooted and it's nowhere to be found.  I did some googling and found posts telling me to install the 7.1.0 WDK... I wonder if it has to do with 32-bit OS?  I can't imagine the header file would, but I'm grasping at straws here...  any advice?



C:\WinDDK\7600.16385.1\inc\atl71 -> this is my include folder for all header files
C:\WinDDK\7600.16385.1\lib\ATL\i386 -> this is where the libs are. I picked i386 cause leveldbwin only support x86. However x64 binaries and libs are available if you wanna try a x64 compile.


I'm curious about your install folder, namely its build version (mine is 7600.16385.1 as you can see)

Edit: I'm redownloading the wdk iso to check the installation process. Did you perform a custom or full install? There's only one option needed to install ATL binaries and headers
4098  Bitcoin / Armory / Re: Armory Bitcoin Wallet Raises $600k led by Trace Mayer on: September 16, 2013, 10:06:37 PM
Thanks everyone, and you too goatpig!  Your help was actually tremendous.  Just because I have full time people helping doesn't mean that we no longer will need help from the community!  We actually have already tried out your solution and it appears to take us much further than we got before!  So I'm glad you helped, and I think you deserve the 2 BTC.  Though, I just realized that your solution uses a very old version of LevelDB ... I haven't tried merging that project with the latest LevelDB, but we will need to do that eventually.

Regarding LevelDB, I haven't looked at the source too much, however it seems evident that all the system resource and OS talking LevelDB requires is performed by a separate piece of code, confined to the "port" folder of LDB's source. Of what I've seen, it handles threading, atomicity, file access, getting the environment, setting variables and, I suspect, whatever else there is to do on that front. My intuition on this is that as long as you get a proper compile of "port", all the code inside the leveldb/leveldb folder (the db related classes) will compile without errors.

It is true that I don't like leveldbwin's approach, using ATL and  MS's interlocked memory functions to provide environment and atomicity. Ideally you'd like to compile a dll on MS systems, and support x64, so a in house compilation seems like a better long term option. LevelDB uses pthreads, which is easy to compile on msvc, as well as atomics, which vc11 supports natively. I think it won't be too hard to get a proper build going for Windows. I'll be around if you need assistance with that.

As for the bounty, this is my address: 1KPsKCA1VrGdnKqQgrSKZ5M2sEZRP1oUFX

Thank you for contributing to my hookers 'n blow fund =)
4099  Bitcoin / Armory / Re: Armory Bitcoin Wallet Raises $600k led by Trace Mayer on: September 16, 2013, 11:56:21 AM
Big news!  

https://bitcointalk.org/index.php?topic=56424.msg671650#msg671650

P.S. - This is still the Armory discussion thread, I just changed the topic temporarily to draw attention to the big news!

@goatpig -- thanks!  you may yet get the bounty.  But I'll be back to you later after the media storm subsides Smiley

Gratz on the investor, I hope armory will grow into an even better wallet software. I personally hope you'll implement a mod/add-on system to allow side devs to bing in their own small contribution.

I ended up helping at the very moment my help wasn't required anymore. Story of my life =P.
4100  Bitcoin / Armory / Re: Armory - Discussion Thread on: September 13, 2013, 07:32:20 PM
I have successfully compiled the ramreduceleveldb branch on vc11 x86 (msvs2012 express). The method outlined can be reproduced on vc9/10 (msvs 2008/2010) with no extra changes to either projects (leveldbwin and armoryengine_msvs2005). Keep in mind that to since the compile relies on a library compilation of leveldbwin, you need to compile armory with the same compiler as you used for leveldb. (Don't go around building leveldb with vc9 and then linking it to an armory project built with vc11)

Note: this is a compile of armoryengine_msvs2005 project only, not the SWIG to python part, which is trivial in this case from what I understand of the project (i don't know squat about python and swig). The compile is untested, I simply went as far as yielding a ArmoryEngine_MSVS2005.dll (no main declared in this branch)

Step #1: leveldb

Grab leveldbwin from the google project page: https://code.google.com/p/leveldbwin/

1) Pick the project of your liking in the build folder (msvc9 or msvc10). I used msvc10 and converted the project to msvc11 since this is my compiler.

1.a) To compile you need ATL. If you're using an express version of msvc, you'll have to install WinDDK 7.1 (Driver Development Kit): http://www.microsoft.com/en-us/download/details.aspx?id=11800. Make sure you grab 7.1 and not 8.0 or WinSDK as those do not support ATL anymore. Skip this step if you have a pay version of msvs.

2) In the configuration manager, pick Release (for the static lib compilation). Don't bother compiling test, you don't need it. I used snappy for compilation, so no defines to drop at this point.

3) Right click each project (leveldb and snappy), go to "Config properties -> C/C++ -> Code generation". Make sure Runtime Library is set as Multi Threader (/MT). This defines whether the C librairies used to compile are statically or dynamically linked. My understanding of this project is that you'd rather not distribute msvc runtime binaries so stick to static compile.

4) Rebuild the project, pick up leveldb.lib in ./_exports/Release and shove it where you want to have it for the armory compile (either make a new folder for it or directly link to it from the project)

Step #2: Armory

Here is the list of all the modifications I did to the code and the project to get it to compile:

Quote
changes to armory bitcoin for msvc compilation:

# added compiler directives in binarydata.h to not manually define int types on vc10+

# added compiler directives in log.h to not overload logstream and children class >> operator with
both size_t and unsigned int arguments in msvc. They're considered the same and the compiler will
complain about method redefinition.

# added leveldb include folder to msvc project

# excluded FileDataPtr and BlockUtilsTest from msvc project (not in the branch but in the msvc project)

# added leveldb_wrapper.cpp to project

# added StoreBlockObj.cpp to project

# NowTimeInt wasn't defined for win32 (log.h). Defined it by copying the non win32 code and including
<time.h>. This version of time returns the amount of seconds since the unix epoch on my machine
(win7 x64 sp1). It's safe to assume all version of windows will behave in such fashion as this library is
wrapped around a WinAPI call on Windows.

# added new folder to hold static leveldb.lib

# added leveldb.lib to addional dependencies

# changed project from .exe to .dll as there is no main defined (probably cause there is no test code)

# got rid of build events for armoryengine_msvs2005.sln

# make sure you're using Multi Threaded (/MT) for the runtime library.

# rebuild only the armoryengine_msvs2005 project so that it doesn't trigger errors with the custom build events failing to grab guardian or py2exe.

voila


Note: I first tried to dynamically link leveldb to armory, but it failed to export leveldb::DestroyDB properly. The issue disappeared with the static link so I stuck to that for now. On top of that leveldbwin has no x64 build setup, so I'll consider making my own compile of leveldb to allow for dynamic linking and x64 releases.

There are about 100 warnings, 90% of them are related to possible data loss due to assignment without type casting. The rest seems to be msvc complaining about unsafe routines. Both cases are irrelevant.
Pages: « 1 ... 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 [205] 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 »
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!