7 Binary Options – GTOptions

A place to help anyone who has a uterus

This sub is dedicated to providing information and resources to those in need of services in states that have passed the heartbeat bill. Please read the info in the sidebar 💖

# /r/Peloton Pre-TDF Survey 2020

Gentlemen, Ladies and those otherwise addressed - we know you've been waiting for a good thing, and the survey results are finally ready!
The answers were collected from you all during August 2020 with 1428 unique replies. That's a participation of 0.5% of all subscribers! That's really not too bad, when you keep in mind how popular these kind of surveys are. But we here at /peloton want to show you that this is all about presenting the information in the subreddit to cater better to our audience!
Updated after a few hours to include some more historical data the final edit that for some reason wasn't copied properly
Year 2013 2014 2015 2016 2018 Mar 2018 Aug 2019 2020
Results 2013-06-12 2014-06-25 2015-08-07 2016-11-17 2018-03-06 2018-08-20 2019-07-22 2020-10-12
Replies 351 598 1395 892 630 928 986 1428
Without further ado, let's get cracking on the response

You and Cycling

1. Where do you live?

Country 2015 2016 2018 Mar 2018 Aug 2019 2020
USA 32% 28.3% 22.84% 25.32% 20.23% 24.59%
UK 18.6% 17.6% 14.70% 20.13% 15.48% 14.80%
Netherlands 6.4% 9.4% 11.50% 11.58% 10.01% 11.01%
Germany 3.73% 3.4% 4.95% 6.39% 7.84% 6.65%
Denmark 3.9% 3.6% 4.31% 3.79% 7.64% 5.79%
Belgium 3.8% 2.7% 8.15% 3.57% 5.78% 5.36%
France 2.01% 1.08% 2.88% 2.27% 5.26% 3.50%
Canada 4.9% 7% 6.39% 4.22% 4.95% 4.50%
Australia 5.2% 4.7% 3.83% 4.00% 4.33% 3.93%
Slovenia 0.73% 0.32% 1.30% 1.14% 2.14%
Norway 2.58% 1.8% 1.60% 1.95% 2.58% 1.86%
Sweden 1.08% 1.09% 1.44% 1.41% 1.75% 1.43%
Ireland 1.00% 1.09% 1.44% 1.19% 0.72% 1.36%
Portugal 1.65% 1.8% 2.40% 1.52% 1.34% 1.14%
Italy 1.45% 1.44% 0.65% 1.03% 1.07%
Largely the same picture as ever, with the US leading the way, the UK in second and then a sliding scale of Europeans countries. Slovenia continues to pick its way up the pile for obvious reasons!
World Map to demonstrate

2. What's your age?

u17 17-19 20-25 26-30 31-35 36-40 41-50 51+ Total
2015 2.22% 12.04% 41.51% 24.66% 10.68% 4.87% 2.94% 1.08% 1395
2016 1.5% 8.9% 40.8% 24% 12% 5.4% 5.2% 2% 887
2018 Mar 1% 7.1% 33.5% 27.4% 16.2% 7% 5.7% 2.1% 617
2018 Aug 1.7% 9% 33.9% 26.4% 15.5% 7% 5% 1.5% 905
2019 1.5% 6.6% 33.2% 27.5% 16.4% 7.1% 5.8% 2% 972
2020 1.3% 6.8% 31.7% 28% 16.6% 7.2% 5% 2.5% 1420
Pretty much the same as last year, with the usual reddit demographics of majority 20 somethings dominating.

3. What's your gender?

'13 '14 '15 '16 '18 (1) '18 (2) '19 '20
Male 97.2% 97% 94.9% 93.4% 93.3% 93.6% 95.1% 94.9%
Female 2.8% 2.7% 4.8% 5.3% 5.3% 5.4% 3.7% 4.8%
Other - 0.33% 0.29% 0.78% 0.76% - -
Non-Binary - - - - 0.64% 0.99% 1.2% 0.4%
More normality here for reddit.

4. How much of the men's season do you watch/follow?

Type March '18 (%) August '18 (%) 2019 (%) 2020 (%)
Grand Tours 84.7 92.0 90.2 87.3
Monuments 79.1 74.9 79 75.9
WT Stage races 67.4 62.4 70.5 71.7
WT One day races 73.3 59.8 62.3 60.7
Non WT Stage races 32.6 16.7 17.4 25
Non WT One day races 34.8 13.7 17.4 20.7
Literally everything I can consume 35.9 18.1 21.1 27.1
Whilst GT following may be down (somehow), all the lower level stuff is up, which makes sense considering how desperate we have been for any racing during the season shutdown.

5. Do you maintain an interest in women's professional road racing?

Do you maintain an interest in women's professional road racing? '19 '20
Yes 49.8 49.2
No 50.2 50.8
Still very much a half/half interest in women's cycling on the subreddit.

6. How much of the women's season do you follow?

The following is true for the half of you that follows womens cycling.
How Much %
Just the biggest televised events 63.15%
Most of the live televised/delayed coverage stuff 29.08%
All televised racing 5.09%
Down to .Pro & beyond 2.69%

7. How long have you been watching cycling?

How Long %
Under a year 2,95%
1-3 years 19,50%
4-6 years 19,85%
7-9 years 14,10%
10-12 years 13,81%
13-15 years 7,15%
15-20 years 10,73%
20-25 years 6,17%
25 years + 5,75%
Simplified the years a little this time, but whilst we have a fair number of newbies, most people have picked the sport up since around 2013/14.

Sporting Favourites

8. Do you have like/dislike feelings about WT teams?

Once more, 14.4% of people really don't have feelings on the subject.
Of those that do:
AG2R Astana Bahrain Bora CCC Cofidis Quick-Step EF FDJ
Like 352 213 127 770 156 116 847 724 423
Meh 775 620 773 415 889 896 310 448 700
Dislike 52 356 263 31 112 141 71 37 53
Karma 300 -143 -70 739 44 -25 776 677 370
Israel Lotto Michelton Movistar NTT Ineos Jumbo Sunweb Trek UAE
Like 135 364 517 231 101 304 925 279 383 118
Meh 740 764 626 646 931 414 282 805 765 734
Dislike 302 40 52 326 121 562 53 97 42 331
Karma -167 324 465 -95 -20 -258 872 182 341 -213
So, the most popular team this year is Jumbo-Visma, followed by Quick-Step & Bora-hansgrohe. Least popular are Ineos & UAE.
As per usual, no one cares about NTT & CCC, with nearly 81% of users rating NTT as meh. Pretty damning stuff.
Lastly, we have the usual historical comparison of how teams have fared over time, normalised to respondents to that question on the survey.
Things to note then, firstly that the Astana redemption arc is over, seeing them back in the negative, maybe Fulgsangs spring issues helped aid that? The petrodollar teams of UAE & Bahrain are stubbornly negative too, with Israel keeping up the Katusha negative streak. Meanwhile, at the top end, EF & Jumbo go from strength to strength, whilst some others like Sunweb are sliding over time - their transfer policies no doubt helping that.

10. Do you ride a bike regularly?

Answer 2018Mar 2018Aug 2019 2020
For fun 61.5% 63.4% 59.9% 62.9%
For fitness 59.3% 59.6% 54.8% 59.8%
For commuting 46% 46% 45.6% 40%
For racing 20.6% 20.6% 15.9% 17.7%
No, I don't 14.2% 12.9% 14.8% 13.6%
Still a fairly small group of racers out of all of us

11. Out of the sports you practice, is cycling your favourite?

Yes No
58,29% 41,71%
A new addition to the survey prompted by a good point last time, just over half of us rate cycling as the favourite sport we actually do.

12. What other sports do you follow?

Sport #
Association Football / Soccer 50.78%
Formula 1 35.81%
American Football 26.27%
Basketball 22.46%
Track & Field 17.58%
Esports (yes, this includes DotA) 17.30%
Rugby 14.27%
Skiing 14.12%
Ice Hockey 13.63%
Baseball 12.15%
Motorsports (Not including F1) 10.59%
Cricket 10.52%
Tennis 9.53%
Chess 8.97%
Triathlon 8.69%
Biathlon 8.12%
Snooker 7.06%
Golf 6.92%
Swimming 6.85%
Ski Jumping 6.78%
Climbing 5.72%
Martial Arts 5.65%
Handball 5.44%
Darts 5.01%
Speed Skating 5.01%
Football always tops the charts, and Formula 1 continues to rank extremely highly among our userbase. Those who have a little following below 5% include Sailing, Fencing, Surfing, Boxing & Ultra-Running.
Other cycling disciplines
Sport #
Cyclocross 22.10%
Track Cycling 14.34%
MTB 8.97%
BMX 1.20%

13. Out of the sports you follow, is cycling your favourite sport?

Yes No
61.79% 38,21%
Good. Makes sense if you hang out here.

Subreddit stats

14. How often do you participate in a /Peloton Race Thread whilst watching a race?

2015 2016 2018Mar 2018Aug 2019 2020
I always participate in Race Threads during races 2.8% 2% 2.2% 4% 2.5% 3%
I follow Race Threads during races 41.7% 36.7% 38.1% 42.1% 42.5% 38.9%
I often participate in Race Threads during races 16.8% 19% 16.5% 18.9% 15.2% 13%
I rarely/never participate in Race Threads during races 38.7% 41.3% 43.1% 35% 39.8% 45.1%
Slightly less invested than before, reverting back to an older trade.

15. How do you watch Races?

Method 2018Mar 2018Aug 2019 2020
Pirate Streams 62% 46.5% 50.2% 47.9%
Free Local TV 55.7% 64.5% 59.6% 53.9%
Desperately scrabbling for Youtube highlights 37.9% 30.2% 28.2% 24.9%
Paid Streaming services 32.3% 35.4% 38.3% 46.3%
Year on year, paid streaming services go up - the increasing availability of live content legally continues to improve, and so do the numbers on the survey.

16. Where else do you follow races live (in addition to watching them)?

Type 2018Mar 2018Aug 2019 2020
/Peloton race threads 86.2% 83.4% 80.2% 76.9%
Twitter 30.5% 34.7% 33.3% 38.3%
PCS Liveticker - - 30.2% 32%
Official tracker (if available) 24%
The Cyclingnews liveticker 26% 23.5% 21.5% 18.9%
Sporza (site/ticker) 1.89% 9.5% 10.8% 10.8%
NOS Liveblog - 6.8% 7% 9.2%
Steephill 0.52% 13.5% 10.2% 8.2%
/Peloton discord 6.5% 5.4% 7.5% 7.2%
Other cycling forums 15.1% 8.1% 7.6% 7%
feltet.dk - 2.2% 5.4% 5.2%
Facebook 3.8% 5.4% 4% 4.2%
BBC Ticker - 3.5% 2.1% 4.1%
DirectVelo - 1.3% 1.6% 1.8%
Non Cycling Forums - 1.3% 1.2% 1.2%
/cyc/ - 1.3% 1% 0.6%
/peloton IRC ~0 0.8% 0.4% 0.5%
The PCS liveticker continues to have a strong following, whilst the cyclingnews ticker slowly slides into less usage over time.

17. Do you use /Peloton mostly in classic reddit or redesign when on the desktop?

Type 2018 Aug 2019 2020
Classic 75.1% 67.2% 46.2%
Redesign 24.9% 32.8% 53.8%
Time to abandon ship. The end has come.

18. With what version of reddit do you browse the sub?

Version 2019 2020
Official App 17.9 31.1
Desktop Classic 37.8 25.8
3rd Party App 18.3 17.2
Mobile Web 12.4 14.7
Desktop Redesign 13.7 11.2
Phone browsing is very much in vogue.

19. How did you find the sub?

How %
Through other forms of reddit, f.e. /bicycling 48.33%
Too long - can't remember 38.65%
Google search 9,11%
My friend told me 2,28%
I wanted to talk about my exercise bike 0.78%
Twitter 0.5%
Lantern Rouge Youtube 0.28%

Other bits and bobs

20. Did you think back in March we would see any more racing this year?

Yes No
52,81% 47,19%
Despite the threat, we have seen racing again

21. Will we manage to fulfill the rest of the UCI calendar without further Covid-19 issues postponing more races?

Yes No
25.3% 74.7%
Sorry to you 25%, Amstel, Roubaix & a bunch of other races have falled foul of COVID-19 related cancellations.

22. When did you become aware of Alexander Foliforov?

When %
Before the 2016 Giro 3,25%
22nd May, 2016 15,55%
On /pelotonmemes in 2020 21,13%
Who? 60,07%
If you didn't know of the man, watching him demolish the Giro field in 2016 on the stage 15 ITT should help to gain understanding

23. Who will win the 2020 Tour de France?

Rider %
Roglic 52,12%
Bernal 16,57%
Pinot 9,24%
Dumoulin 7,9%
N.Quintana 2,82%
Pogacar 1,41%
Richie Porte 0,35%
We can safely say that most of us were wrong about this one.
That's not a lot of confidence in Richie Porte either, the man who was to finish on the third spot of the podium. Alexander Foliforov (0,23%) had just a tiny number of votes less, and that man wasn't even in the race.

24. What for you was the defining cycling moment of the previous decade?

We had a lot of brilliant suggestions, but these were the clear five favourites when we tabulated the results.
Honorable mentions go to the Giro 2018, which had Tom Dumoulin winning, and of almost identical fascination to many of you - Tom Dumoulin going on someones porta-potty in the middle of the stage.
Little bit of recency bias perhaps, but that's better than ignoring that this was for the last decade and firmly insisting Tom Boonens 2005 WC win was the biggest thing. Special shoutout to almost all the Danes present in /peloton who voted for Mads Pedersens WC win last year. It's an understandable reaction.

25. Any suggestions for the Survey?

New Questions
We promise to feature one of these suggestions in the next survey
We will try to implement this. But it will also skew results.
About the Survey
The subscribers are torn on Women's cycling, nearly a 50/50 split there as the survey showed - The moderators at /peloton are firmly in the "more cycling is better" basket, and we will continue to get as good coverage of womens cycling as possible.
Are you trying to give the moderators PTSD? Because this is how you give the moderators PTSD.

26. Any suggestions for the sub?

ALSJFLKAJSLDKJAØLSJKD:M:CSAM)=#/()=#=/")¤=/)! - Your moderator seems to be out of function. Please stand by while we find you a new moderator
The Weekly threads are great for these types of questions, where several people can contribute and build up once it is understood which information is relevant.
Our experience is that "limited" will never be so, if we're going to moderate it fairly. Moderating is not a popularity contest, but believe it or not, we're actually trying to be as fair as possible. and for that, we need rules that are not subjective. Unless you have a stationary exercise bike.
All of these are good suggestions, but remember that all of you can also contribute - The mods are sometimes stretched thin, specially in the middle of hectic race schedules. It's easier if one of you has a way to contact a rider or a person of interest and can facilitate the initial communication.
We've worked on this! The Official Standard is now as follows: [Race Thread] 202x Race Name – Stage X (Class)
This sounds as a nice community project for the after-season, and hopefully many of you subscribers can contribute.
Come with suggestions on how to tidy it up!
We have chastised all the mods. They are now perfectly trained in gender-neutral pronouns. Be well, fellow being.
If we can implement this for hard liquor, you know we will.
The spoiler rule is one that is discussed frequently - in general - some users absolutely hate it, but a majority love it. Perhaps we'll include a question in the next survey to see how this divide is exactly.
We actually do - whenever there is a matter of life or death, we think public information is more important than a spoiler rule. But at the same time, we try to collect all the different posts into one main thread, so to keep things focused and letting very speculative posts meet with hard evidence from other sources.
This is a tough ask of the internet. While we can agree that voting should be done accordingly to what insights they bring, not subjective opinions, it is very hard to turn that type of thinking around. We can ask of you, our subscribers, that you please think twice about hitting that downvote button, and only do so because of you think a post is factually incorrect, not because it differs with your own subjective opinion.
That's the primary analysis of the survey! Feel free to contribute with how you experience things here!
submitted by PelotonMod to peloton [link] [comments]

I have no idea how this is going to work

Press J to jump to the feed. Press question mark to learn the rest of the keyboard shortcutsJUMP TO CONTENTOneWordBan📷103Get Coins📷iliekcats-57.9k karma5User account menu📷

A Word A Day Gets Banned



Which dead person you want to come back alive, and why?

📷Posted byu/LoopedForever0,245 minutes ago2 CommentsGive AwardShareSaveHideReport22

Have you recently built a new gaming PC or upgraded your GPU? Run 3DMark Stress Tests to check the reliability & stability of your system.

📷PROMOTED•Posted byu/UL_Benchmarks1 month agostore.steampowered.com/3DMark/SHOP NOW0 CommentsGive AwardShareSave1

You all had the energy last week

📷Posted byu/JamesMBuddy123Ban Machine Overlord 13 hours ago4 CommentsGive AwardShareSaveHideReport2


📷Posted byu/Fourmizzz02,1215 hours ago3 CommentsGive AwardShareSaveHideReport12

N r g

📷Posted byu/absol201919,816 hours ago3 CommentsGive AwardShareSaveHideReport12

What is the "E" in E = mc^2?

📷Posted byu/Bradley_Auerbach9,619 hours ago15 CommentsGive AwardShareSaveHideReport1

Definition of Battery

📷Posted byu/BinaryOrbitals0,323 hours ago2 CommentsGive AwardShareSaveHideReport2

Anyone heard of Everybody Edits?

📷Posted byu/iliekcats-6,101 day ago3 CommentsShareEdit PostSaveHide29

Anyone else like this year has sucked all their energy out?

📷Posted byu/cakesquadgames0,31 day ago31 CommentsGive AwardShareSaveHideReport11

What you should know about drinking water (but probably don't)

📷Posted byu/MikeKM0,21 day ago8 CommentsGive AwardShareSaveHideReport24


📷Posted byu/GlaciatedNorth2,22 days ago41 CommentsGive AwardShareSaveHideReport6


📷Posted byu/lucadudav5,26 days ago2 CommentsGive AwardShareSaveHideReport2

Who Likes Kraftwerk?

📷Posted byu/TriangularSheep2,16 days ago0 CommentsGive AwardShareSaveHideReport1

New here

📷Posted byu/markscamilleri1,06 days ago0 CommentsGive AwardShareSaveHideReport23

My Cat Franki

📷Posted byu/MikeKM0,27 days ago2 CommentsGive AwardShareSaveHideReport1.9k

As a result of online school, I've finally had time to pursue my passion for game development and my first game is coming to Steam! RoboSkate is a silly yet difficult physics based game, where you master the controls of a robotic arm attached to a skateboard and overcome a challenging journey.

📷PROMOTED•Posted byu/Shabap1 month agostore.steampowered.com/app/1404530192 CommentsGive AwardShareSave1

So uh, can we try and find the next banned word as soon as possible?

📷Posted byu/Augie2798,67 days ago0 CommentsGive AwardShareSaveHideReport2


📷Posted byu/absol201919,87 days ago1 CommentGive AwardShareSaveHideReport17

We had a shorter week, because Tuesday was the new day, but people definitely found the word

📷Posted byu/JamesMBuddy123Ban Machine Overlord 7 days ago8 CommentsGive AwardShareSaveHideReport1

*NEW NEW* Meta discussion thread

📷Posted byu/JamesMBuddy123Ban Machine Overlord 7 days ago0 CommentsGive AwardShareSaveHideReport18

Auto mod from copypasta’s copypasta

📷Posted byu/Hiking-Biking-Viking4,69 days ago4 CommentsGive AwardShareSaveHideReport22

The Croods 2 has taken over my life, and I love it.

📷Posted byu/n1komcfly1,010 days ago4 CommentsGive AwardShareSaveHideReport14

Get Out of My Swamp!

📷Posted byu/GlaciatedNorth2,212 days ago3 CommentsGive AwardShareSaveHideReport19


📷Posted byu/t0ast3rl0v3r561,214 days ago6 CommentsGive AwardShareSaveHideReport11


📷Posted byu/Icecream3281,016 days ago9 CommentsGive AwardShareSaveHideReport1


📷Posted byu/9999999999999999998958,016 days ago4 CommentsGive AwardShareSaveHideReport8

Y’all don’t know what word is banned?

📷Posted byu/t0ast3rl0v3r561,216 days ago27 CommentsGive AwardShareSaveHideReport

About Community

Destroying the English language, day by day.6.1k
Potential Bans
About to sacrifice themselves

OneWordBan Rules

1.Banned Word2.Attempting To Imitate Banned Word3.Spam4.Keeping Discussions Civil and Appropriate5.Using a non-English language


MESSAGE THE MODSu/AstroFIJIWORDMASTERu/ShiruetEnforceru/HellaHotLancelotEnforceru/MrCleansBleachEnforceru/AutoModeratorRobo Overlordu/windforce2Enforceru/OneWordBotThe Reaper u/JamesMBuddy123Ban Machine Overlord VIEW ALL MODERATORSHelpReddit AppReddit CoinsReddit PremiumReddit GiftsAboutCareersPressAdvertiseBlogTermsContent PolicyPrivacy PolicyMod PolicyReddit Inc © 2020. All rights reservedBACK TO TOP
submitted by iliekcats- to OneWordBan [link] [comments]

Samsung Galaxy Tab 2 10.1 (SG-P5113) stuck at Samsung logo

EDIT: I can't change the title, but it should read GT-P5113 instead of SG-P5113).
I was passed down this tablet that I was told doesn't work. I started it up and noticed it's stuck at the Samsung logo. I wanted to factory reset the device, but I can't seem to do so. I immediately noticed upon entering Recovery that there are issues with the /cache partition as well as /data. My first thought was perhaps a butchered update.
I downloaded Odin 3.x and the latest firmware online, which is 4.2.2. My first attempts were unsuccessful. Not too long after it started, the tablet would reboot and start looping, only displaying the battery icon every few seconds. I assumed the battery was too low or could not hold a charge long-enough. I left it to charge over night. I should also note I'm not using the manufacturer cable. I had to get one off of Amazon. I also noticed that Auto Reboot was enabled, which I disabled. I figured turning that off would help my case, since rebooting was messing up the process.
Today, it's charged up and I tried flashing it again with auto reboot off. It does stay in Download Mode, while Odin flashes the firmware. Buuuuuuut, it still fails to flash all the .img files. I can't tell if it's failing to flash system.img, or the one that comes after it.
Here is the Odin output log:
 Added!!  Odin engine v(ID:3.1301)..  File analysis..  Total Binary size: 1491 M  SetupConnection..  Initialzation..  Get PIT for mapping..  Firmware update start..  NAND Write Start!!  SingleDownload.  Sbl.bin  system.img  Complete(Write) operation failed.  All threads completed. (succeed 0 / failed 1) 
I also tried flashing it with Auto Reboot on, because I wanted to find out if it would still reboot like it did yesterday. It didn't. That tells me the battery is charged enough and that it was most likely the battery causing the reboots. Unfortunately, it still didn't work and the log output is identical.
The last ditch effort I'm willing to try now is to update the firmware via MicroSD card. There is an option in Recovery to do such a thing, but I have no idea how this works, since Samsung does things their own way. Samsung uses Odin and as such, their firmware files are formatted differently. I'm trying to find out how to go about this. Do I extract the .img files to the root of the card? Or do I simply copy the md5.tar file instead?
If this fails, than that tells me it's not the computer, Odin, the USB cable or the firmware. If it's also failing directly on the device, it's probably a hardware failure.
If anyone is knowledgeable in older Samsung devices, leave a comment below.
submitted by PegCity95 to AndroidHelp [link] [comments]

[TUTORIAL] How to use Multi-Monitors with Hybrid Graphics Card Intel-Nvidia in notebooks (tried with: Asus Rog Strix G531-GT) - DEBIAN BUSTER

Hello guys! I`m going to do this tutorial because i tried to use multi-monitor in my laptop for a long time and that was a big problem for my case.
This tutorial is for people who have a hybrid graphics card and bumblebee in debian.
My case:
- Rog Strix G531-GT (notebook)
- Intel® UHD Graphics 630
- GTX 1650

So, to it work, first you need to install all the NVIDIA drivers and get it working with the optirun command.
In my case i tried stable nvidia drivers which was Version 418.152, but it have some bugs after install when i tried to configure the xorg.conf file, which when start says something about missing device "mouse0". I reinstall all the debian and tried to use the backports, which have the Version 440.100 (via buster-backports) of nvidia drivers, and it installed well.
FIRST, VERY IMPORTANT: You should check which driver is okay for you, maybe trying one, if that is good and u dont see "bugs" when trying to configure, use it... In my case 418.152 give me a lot of bugs... i tried 440.100 and it worked ok. If you are using backports, try to download everything at the BACKPORTS, and not the STABLE one! If u are using the STABLE one, continues using the STABLE
To do it, first add the backport repository to /etc/apt/sources.list, which actually is
deb http://deb.debian.org/debian buster-backports main contrib non-free
deb-src http://deb.debian.org/debian buster-backports main contrib non-free

After that, to install linux headers and nvidia-driver do:
- apt update
- apt install -t buster-backports linux-headers-amd64
- apt install -t buster-backports nvidia-driver

Reboot and after that u already have the nvidia-drivers installed, BUT not working because the system dont use the nvidia driver by default. Next step is installation of two packages: bumblebee-nvidia and primus. So now you need to install bumblebee:
- apt install -t buster-backports bumblebee-nvidia primus
- apt install -t buster-backports mesa-utils \you will need the) mesa-utils too for some commands
I didnt need permissions to use the bumblebee commands, but if you need, follow that Post-installation

You may need to blacklist the nouveau drivers, because we are using the nvidia proprietary drivers. To do it, run:
- $ sudo bash -c "echo blacklist nouveau > /etc/modprobe.d/blacklist-nvidia-nouveau.conf"
- $ sudo bash -c "echo options nouveau modeset=0 >> /etc/modprobe.d/blacklist-nvidia-nouveau.conf"
then run
- $ cat /etc/modprobe.d/blacklist-nvidia-nouveau.conf
And the output should be like that:
blacklist nouveau
options nouveau modeset=0
The nouveau drivers are blacklisted successfully!

Now we have a lot of configurations to do.
The next thing to do is go to /etc/bumblebee/bumblebee.conf and open with nano.
add - Driver=nvidia
it should looks like:
# Configuration file for Bumblebee. Values should **not** be put between quotes ## Server options. Any change made in this section will need a server restart # to take effect. [bumblebeed] # The secondary Xorg server DISPLAY number VirtualDisplay=:8 # Should the unused Xorg server be kept running? Set this to true if waiting # for X to be ready is too long and don't need power management at all. KeepUnusedXServer=false # The name of the Bumbleblee server group name (GID name) ServerGroup=bumblebee # Card power state at exit. Set to false if the card shoud be ON when Bumblebee # server exits. TurnCardOffAtExit=false # The default behavior of '-f' option on optirun. If set to "true", '-f' will # be ignored. NoEcoModeOverride=false # The Driver used by Bumblebee server. If this value is not set (or empty), # auto-detection is performed. The available drivers are nvidia and nouveau # (See also the driver-specific sections below) Driver=nvidia # Directory with a dummy config file to pass as a -configdir to secondary X XorgConfDir=/etc/bumblebee/xorg.conf.d # Xorg binary to run XorgBinary=/uslib/xorg/Xorg ## Client options. Will take effect on the next optirun executed. [optirun] # Acceleration/ rendering bridge, possible values are auto, virtualgl and # primus. Bridge=auto # The method used for VirtualGL to transport frames between X servers. # Possible values are proxy, jpeg, rgb, xv and yuv. VGLTransport=proxy # List of paths which are searched for the primus libGL.so.1 when using # the primus bridge PrimusLibraryPath=/uslib/x86_64-linux-gnu/primus:/uslib/i386-linux-gnu/primus # Should the program run under optirun even if Bumblebee server or nvidia card # is not available? AllowFallbackToIGC=false # Driver-specific settings are grouped under [driver-NAME]. The sections are # parsed if the Driver setting in [bumblebeed] is set to NAME (or if auto- # detection resolves to NAME). # PMMethod: method to use for saving power by disabling the nvidia card, valid # values are: auto - automatically detect which PM method to use # bbswitch - new in BB 3, recommended if available 

After that, go to /etc/bumblebee/xorg.conf.nouveau and open with nano.
add - BusID "", ex. BusID "PCI:00:02:0" in the Section "Device" \ to see the ID of your graphic cards, run in console: lspci | egrep 'VGA|3D')
it should looks like:
# Configuration file for Bumblebee. Values should **not** be put between quotes ## Server options. Any change made in this section will need a server restart # to take effect. [bumblebeed] # The secondary Xorg server DISPLAY number VirtualDisplay=:8 # Should the unused Xorg server be kept running? Set this to true if waiting # for X to be ready is too long and don't need power management at all. KeepUnusedXServer=false # The name of the Bumbleblee server group name (GID name) ServerGroup=bumblebee # Card power state at exit. Set to false if the card shoud be ON when Bumblebee # server exits. TurnCardOffAtExit=false # The default behavior of '-f' option on optirun. If set to "true", '-f' will # be ignored. NoEcoModeOverride=false # The Driver used by Bumblebee server. If this value is not set (or empty), # auto-detection is performed. The available drivers are nvidia and nouveau # (See also the driver-specific sections below) Driver=nvidia # Directory with a dummy config file to pass as a -configdir to secondary X XorgConfDir=/etc/bumblebee/xorg.conf.d # Xorg binary to run XorgBinary=/uslib/xorg/Xorg ## Client options. Will take effect on the next optirun executed. [optirun] # Acceleration/ rendering bridge, possible values are auto, virtualgl and # primus. Bridge=auto # The method used for VirtualGL to transport frames between X servers. # Possible values are proxy, jpeg, rgb, xv and yuv. VGLTransport=proxy # List of paths which are searched for the primus libGL.so.1 when using # the primus bridge PrimusLibraryPath=/uslib/x86_64-linux-gnu/primus:/uslib/i386-linux-gnu/primus # Should the program run under optirun even if Bumblebee server or nvidia card # is not available? AllowFallbackToIGC=false # Driver-specific settings are grouped under [driver-NAME]. The sections are # parsed if the Driver setting in [bumblebeed] is set to NAME (or if auto- # detection resolves to NAME). # PMMethod: method to use for saving power by disabling the nvidia card, valid # values are: auto - automatically detect which PM method to use # bbswitch - new in BB 3, recommended if available # switcheroo - vga_switcheroo method, use at your own risk # none - disable PM completely # https://github.com/Bumblebee-Project/Bumblebee/wiki/Comparison-of-PM-methods ## Section with nvidia driver specific options, only parsed if Driver=nvidia [driver-nvidia] # Module name to load, defaults to Driver if empty or unset KernelDriver=nvidia PMMethod=auto # colon-separated path to the nvidia libraries LibraryPath=/uslib/x86_64-linux-gnu/nvidia:/uslib/i386-linux-gnu/nvidia:/uslib/x86_64-linux-gnu:/uslib/i386-linux-gnu # comma-separated path of the directory containing nvidia_drv.so and the # default Xorg modules path XorgModulePath=/uslib/nvidia,/uslib/xorg/modules XorgConfFile=/etc/bumblebee/xorg.conf.nvidia # If set to true, will always unload the kernel module(s) even with # PMMethod=none - useful for newer Optimus models on which the kernel power # management works out of the box to power the card on/off without bbswitch. AlwaysUnloadKernelDriver=false ## Section with nouveau driver specific options, only parsed if Driver=nouveau [driver-nouveau] KernelDriver=nouveau PMMethod=auto XorgConfFile=/etc/bumblebee/xorg.conf.nouveau 

Do the same in /etc/bumblebee/xorg.conf.nvidia, and put the ID of the Discrete Nvidia Card.
add - BusID ""
add - Option "AllowEmptyInitialConfiguration" "true"
and at the END of the file, add
Section "Screen" Identifier "Screen0" Device "DiscreteNVidia" EndSection 
it should look like:
Section "ServerLayout" Identifier "Layout0" Option "AutoAddDevices" "true" Option "AutoAddGPU" "false" EndSection Section "Device" Identifier "DiscreteNvidia" Driver "nvidia" VendorName "NVIDIA Corporation" # If the X server does not automatically detect your VGA device, # you can manually set it here. # To get the BusID prop, run `lspci | egrep 'VGA|3D'` and input the data # as you see in the commented example. # This Setting may be needed in some platforms with more than one # nvidia card, which may confuse the proprietary driver (e.g., # trying to take ownership of the wrong device). Also needed on Ubuntu 13.04. BusID "PCI:01:00:0" # Setting ProbeAllGpus to false prevents the new proprietary driver # instance spawned to try to control the integrated graphics card, # which is already being managed outside bumblebee. # This option doesn't hurt and it is required on platforms running # more than one nvidia graphics card with the proprietary driver. # (E.g. Macbook Pro pre-2010 with nVidia 9400M + 9600M GT). # If this option is not set, the new Xorg may blacken the screen and # render it unusable (unless you have some way to run killall Xorg). Option "ProbeAllGpus" "false" Option "AllowEmptyInitialConfiguration" "true" Option "NoLogo" "true" Option "UseEDID" "true" # Option "UseDisplayDevice" "none" EndSection Section "Screen" Identifier "Screen0" Device "DiscreteNVidia" EndSection 

At this point, the TEST for bumblebee should be working!
Install mesa-demos and use glxgears to test if if Bumblebee works with your Optimus system:
$ optirun glxgears -info
If it fails, try the following commands:
64 bit system:
$ optirun glxspheres64
32 bit system:
$ optirun glxspheres32
If the window with animation shows up, Optimus with Bumblebee is working.
Note: If glxgears failed, but glxspheresXX worked, always replace "glxgears" with "glxspheresXX" in all cases.
If the bumblebee still not working, you should look why isnt it working. You can ask me maybe i can help with some information! I tried a lot of things and maybe i can help.
now finally, you can run anything with the optirun command, like: optirun virtualbox... or optirun (a game) and it will work with you graphic card.
But still, when you connect a monitor at the HDMI output, the monitor will not work...
For that, finnaly, we can do that:
To use multi monitors, we need to see this section, which is what happen to me: Output wired to the NVIDIA chip
At this point, you may need to configure the /etc/X11/xorg.conf.d/20-intel.conf
and /etc/bumblebee/xorg.conf.nvidia, as it says in the tutorial. After that reboot your system and try again the command: optirun intel-virtual-output
It should finally works, if you have connected another monitor in HDMI output and try the command optirun intel-virtual-output, it will start in the monitor a continuation for the X session, which works pretty well!!

Well, that was hard to do for me, and i hope that information can help someone. If something is confusing or you cant do the second monitor work, just type in comments, i will try to help...

One important thing to do is: do not try to use xorg.conf file, just delete it and keep the linux to do it by itself. Every time which i tried to use the xorg.conf file it broke my gnome startup and i need to start debian in recovery mode and go to /etc/X11, and run rm -R xorg.conf (which delete the xorg file), or rename it to the linux do not read the informations there.
#TIPS: For a good use of that, you can go to debian keyboard configuration, and configure a new shortcut with the command optirun intel-virtual-output.
When you press ctrl+alt+y that will start the second monitor for you :D
so that is #learning_with_linux

submitted by MrMineToons to debian [link] [comments]

[Fanatical] New Week Game Deals (Including The Jackbox Party Pack 5 (-40%), Dreamcast Collection (-85%), Alien: Isolation Collection (-78%), Sonic & All-Stars Racing Transformed (-77%), Motorsport Manager (-77%) & More)

Hi Reddit, be the early bird and check out our early week gaming deals in the tables below.
Title Steam Fanatical Discount USD GBP EUR
Alien: Isolation Steam 77% $9.19 £6.89 €8.50
Alien: Isolation - Season Pass DLC Steam 77% $4.59 £3.44 €4.59
Alien: Isolation Collection Steam 78% $10.99 £7.69 €10.11
Aliens vs. Predator - Collection Steam 81% $4.55 £3.03 €4.17
Aliens: Colonial Marines Collection Steam 81% $5.69 £4.74 €5.69
Assetto Corsa Competizione - Intercontinental GT Pack Steam 10% $13.39 £11.15 €13.39
Barony Steam 10% $13.49 £10.25 €11.24
Binary Domain Collection Steam 81% $3.03 £2.08 €3.03
Borderlands 3 - Super Deluxe Edition N/A 10% $89.24 £75.85 €89.24
Cities: Skylines Deluxe Edition Steam 10% $35.69 £26.76 €33.01
CONTROL EXPANSION 1 "THE FOUNDATION" N/A 10% $13.49 £10.79 €13.49
Crazy Taxi Steam 85% $1.19 £0.83 €1.19
Dangerous Golf Steam 16% $16.79 £12.59 €16.79
Dragon Ball FighterZ Steam 15% $50.88 £38.16 €50.88
DRAGON BALL XENOVERSE 2 Steam 15% $42.39 £33.91 €42.39
Dreamcast Collection N/A 85% $4.49 £2.99 €4.49
Dying Light Season Pass DLC Steam 26% $22.04 £17.63 €22.04
Encased: A Sci-Fi Post-Apocalyptic RPG Steam 20% $23.99 £19.03 €19.99
Endless Space 2 - Awakening N/A 54% $5.97 £5.05 €5.97
Endless Space 2 - Penumbra Steam 68% $4.15 £3.51 €4.15
Endless Space 2 - Vaulters DLC Steam 77% $2.52 £2.06 €2.52
Endless Space 2 - Vaulters DLC Steam 77% $2.52 £2.06 €2.52
Endless Space® 2 - Supremacy Steam 77% $2.98 £2.52 €2.98
Farming Simulator 19 Steam 10% $22.39 £19.70 €22.39
Monster Sanctuary Steam 16% $15.11 £11.75 €13.43
Moto Racer 4 Steam 26% $11.01 £8.37 €11.01
Motorsport Manager Steam 77% $8.04 £5.74 €8.04
Motorsport Manager - Challenge Pack Steam 77% $1.83 £1.37 €1.83
Motorsport Manager - Endurance Series DLC Steam 77% $1.83 £1.37 €1.83
Motorsport Manager - GT Series DLC Steam 77% $1.83 £1.37 €1.83
Neon Abyss Steam 15% $16.99 £13.59 €16.99
ONE PIECE: PIRATE WARRIORS 4 Steam 15% $50.87 £33.91 €42.39
Puyo Puyo Tetris Steam 20% $15.95 £11.96 €15.95
Quiplash Steam 45% $5.49 £3.84 €5.49
Re:Legend Steam 10% $17.88 £13.86 €17.88
Sid Meier's Civilization® V Steam 10% $26.99 £17.99 €26.99
SolSeraph Steam 20% $11.96 £9.56 €11.96
Sonic & All-Stars Racing Transformed Steam 77% $4.59 £3.44 €4.59
Sonic & SEGA All-Stars Racing Steam 77% $2.29 £1.14 €2.29
Sonic Mania Steam 15% $16.88 £12.66 €16.88
Syndicate N/A 10% $17.99 £8.99 €8.99
Tabletop Simulator 4 Pack Steam 10% $53.99 £40.49 €49.49
The Elder Scrolls Online N/A 10% $17.99 £13.49 €17.99
The Elder Scrolls® Online: Greymoor Digital Collector's Edition Upgrade N/A 10% $44.89 £40.40 €49.38
The Incredible Adventures of Van Helsing Steam 10% $13.39 £9.81 €13.39
The Jackbox Party Pack Steam 45% $13.74 £10.44 €12.64
The Jackbox Party Pack 2 Steam 45% $13.74 £10.44 €12.64
The Jackbox Party Pack 3 Steam 35% $16.24 £12.34 €14.94
The Jackbox Party Pack 4 Steam 40% $14.99 £11.39 €13.79
The Jackbox Party Pack 5 Steam 40% $17.99 £14.27 €14.99
The Jackbox Party Pack 6 Steam 25% $22.49 £17.84 €18.74
The Jackbox Party Quadpack N/A 51% $48.69 £36.99 €44.79
The Jackbox Party Trilogy N/A 48% $38.95 £29.59 €35.85
The Jackbox Quintpack N/A 50% $64.19 £49.25 €57.75
The Sims 4 Outdoor Retreat N/A 30% $13.99 £12.59 €13.99
Total War: THREE KINGDOMS Steam 15% $50.88 £38.16 €50.88
Total War: WARHAMMER II - Curse of the Vampire Coast Steam 15% $16.04 £12.66 €16.04
Train Simulator 2020 Steam 20% $23.89 £19.90 €23.89
Train Simulator 2020 Steam 20% $13.13 £19.90 €23.89
Transport Fever 2 Steam 12% $34.89 £27.91 €34.89
Worms Armageddon Steam 16% $12.59 £9.23 €12.59
Yakuza 0 Steam 20% $15.95 £11.96 €15.95
Yakuza Kiwami Steam 20% $15.95 £11.96 €15.95
Title Steam Fanatical Discount USD GBP EUR
Assassin’s Creed Build your own Bundle N/A N/A $9.99 £8.59 €9.99
MONSTER HUNTER: WORLD Steam 40% $17.99 £14.99 €17.99
Sid Meier's Civilization VI: Gathering Storm Steam 50% $19.99 £17.49 €19.99
RESIDENT EVIL 2 / BIOHAZARD RE:2 Steam 55% $17.99 £15.74 €17.99
RESIDENT EVIL 3 Steam 42% $34.79 £28.99 €34.79
RESIDENT EVIL 2 / BIOHAZARD RE:2 - Deluxe Edition N/A 55% $22.49 £20.24 €22.49
Devil May Cry 5: Deluxe Edition Steam 53% $23.49 £21.14 €23.49
Sid Meier's Civilization VI: Rise and Fall DLC Steam 50% $14.99 £12.49 €14.99
Monster Hunter World: Iceborne Steam 33% $26.79 £23.44 €26.79
Outward Steam 60% $15.99 £13.99 €15.99
Devil May Cry 5 Steam 53% $18.79 £16.44 €18.79
Sid Meier's Civilization VI Steam 70% $17.99 £14.99 €17.99
GUILTY GEAR Xrd -REVELATOR- (+DLC Characters) + REV 2 All-in-One (does not include optional DLCs) N/A 80% $8.99 £5.99 €8.39
Shadow of the Tomb Raider: Definitive Edition Steam 70% $17.99 £13.49 €17.99
Sid Meier's Civilization VI Platinum Edition N/A 60% $47.68 £41.15 €47.68
Borderlands: The Handsome Collection N/A 67% $19.79 £16.49 €19.79
Conan Exiles Steam 64% $14.39 £12.23 €14.39
Persona 4 Golden - Digital Deluxe Edition N/A 17% $20.74 £16.59 €20.74
SUPERHOT VR Steam 32% $16.99 £12.91 €15.63
Reaper Bundle 4 N/A 97% $4.99 £4.75 €5.29
submitted by WeAreFanatical to GameDeals [link] [comments]

T440p: vbios for enabling Nvidia dGPU?

I have a corebooted t440p (4.11, used this guide edit: I didn't use the Archfan coreboot repo, I used upstream Coreboot) that I run Arch Linux on. This machine has an Nvidia GT 730M on-board as a discrete option from the integrated Intel card. I've used nvramtool -w enable_dual_graphics=Enable to enable the Nvidia card, and it shows up in lspci output, but I can't get it to work. While working on this I've realized I likely didn't include the correct vbios blob:
[ 417.966203] NVRM: GPU 0000:02:00.0: Failed to copy vbios to system memory. [ 417.966351] NVRM: GPU 0000:02:00.0: RmInitAdapter failed! (0x30:0xffff:755) [ 417.966423] NVRM: GPU 0000:02:00.0: rm_init_adapter failed, device minor number 0 
I've looked through the subreddit and found some references to this (such as this post about VBiosFinder), and this makes it pretty clear to me how I'd go about extracting the vbios.
However it's not clear to me how I'm supposed to put this into my Coreboot config. For instance, I have the following options in my Coreboot config for existing binaries:
But I'm not seeing any option for vbios paths? I might assume it would be CONFIG_VBIOS_BIN_PATH, but I don't know that: the closest I think I've come is perhaps this post, but it's not super clear that this is what I should be doing. Are the cbfstool commands at this link the correct way of doing this?
Update: i've extracted the vbios file that corresponds to the correct vendor and device IDs, I'm just not really sure where to go from here. My guess is that I'd take my full coreboot rom, and then run the following command?
cbfstool build/coreboot.rom add -f /path/to/nvidia-vgabios.bin -n pci10de,1290.rom -t optionrom 
submitted by JackDostoevsky to coreboot [link] [comments]

what is this i just downloaded (youtube code?)

so this is kinda a wierd story. I was planning to restart my computer. (cant remember why) I spend most of my time watching youtube videos so i had alot of tabs open. So i was watching the videos then deleting the tab but not opening new tabs. So i was down 2 i think 1 it was a pretty long video so i tried to open a youtube home page tab just to look while i listened to the video. And this is a short exerp of what i got.


submitted by inhuman7773 to techsupport [link] [comments]

Deltas awarded in "CMV: There is no need for other new pronouns outside of the ones we use now. ESPE...

Below is a list of the deltas awarded in this post.
Please note that a change of view is not necessarily a reversal, and that OP awarding a delta doesn't mean the conversation has ended.
For a full explanation of the delta system, see here.

Deltas from OP madjokezzz

I think I could’ve phrased the bit about language describing your gender identity a bit better..."](/changemyview/comments/ifavi2/cmv_there_is_no_need_for_other_new_pronouns/g2n8p61/?context=3)

Deltas from Other Users

None yet.
submitted by DeltaBot to DeltaLog [link] [comments]

Introduction to AssemblyScript (Part 2)

This article is written by the CoinEx Chain lab. CoinEx Chain is the world’s first public chain exclusively designed for DEX, and will also include a Smart Chain supporting smart contracts and a Privacy Chain protecting users’ privacy.
In the last article we discussed how AssemblyScript (hereinafter referred to as AS) programs are compiled into WebAssembly (hereinafter referred to as Wasm) modules as a whole, and introduced in detail how various elements of the AS language are mapped to each section of the Wasm binary module. This article will go into functions, and we will discuss how the AS compiler uses the Wasm instruction set to implement grammatical elements. Before we start, let's briefly review the Wasm instruction set (for a detailed introduction to the Wasm module and instruction set, please refer to the previous articles):
Wasm uses stack-based virtual machine and bytecode, and its instructions can be divided into five categories:
Next, we will introduce details about how the AS compiler uses these five types of instructions through examples. For the convenience of testing, part of the sample codes given below call external functions for assistance of which implementation is not important. The declarations of these external functions are shown as below:
declare function printI32(n: i32): void; declare function printI64(n: i64): void; declare function printF32(n: f32): void; declare function printF64(n: f64): void; declare function randomI32(): i32; 

Control Instructions

As mentioned earlier, Wasm control instructions include structured control instructions (block, loop, and if-else), jump instructions (br, br_if, br_table, and return), function call instructions (call and call_indirerct), plus nop and unreachable. Among them, structured control instructions and jump instructions together can be used to implement various control structures of the AS language, such as the if-else statement, for loop statement, and switch-case statement. The call instruction can be used to implement AS function calls, and the call_indirerct instruction can be used to support first-class functions.
The if-else statement of the AS language can be directly implemented using Wasm's if-else instruction. Here is an example:
export function printEven(n: i32): void { if (n % 2 == 0) { printI32(1); } else { printI32(0); } } 
The following is the compilation result (the compiled function bytecode has been decompiled into WAT. The same below):
(func $printEven (type 0) (param i32) (if (i32.rem_s (local.get 0) (i32.const 2)) (then (call $printI32 (i32.const 0))) (else (call $printI32 (i32.const 1))) ) ) 
The above example also shows the usage of the call instruction, which will not be described separately later. By the way, some simple if-else statements will be optimized by the AS compiler into select instructions. Here is an example:
export function max(a: i32, b: i32): i32 { if (a > b) { return a; } else { return b; } } 
The following is the compilation result:
(func $max (type 2) (param i32 i32) (result i32) (select (local.get 0) (local.get 1) (i32.gt_s (local.get 0) (local.get 1)) ) ) 
Loop statements such as for, while, and do-while in the AS language can be implemented with Wasm's loop instruction. Note that the loop instruction cannot automatically form a loop, so it must be used with jump instructions like br, br_if or br_table. Let's look at a slightly more complicated example:
export function printNums(n: i32): void { for (let i: i32 = 0; i < n; i++) { printI32(i); if (i == 100) { break; } } } 
This example shows the usage of loop, block, br, and br_if instructions. Here is the compilation result:
(func $printNums (type 0) (param i32) (local i32) (loop ;; label = @1 (if ;; label = @2 (i32.lt_s (local.get 1) (local.get 0)) (then (block ;; label = @3 (call $printI32 (local.get 1)) (br_if 0 (;@3;) (i32.eq (local.get 1) (i32.const 100))) (local.set 1 (i32.add (local.get 1) (i32.const 1))) (br 2 (;@1;)) ) ;; end of block ) ;; end of then ) ;; end of if ) ;; end of loop ) 
The switch-case statement of the AS language can be implemented with Wasm's br_table instruction. The following is an example:
export function mul100(n: i32): i32 { switch (n) { case 1: return 100; case 2: return 200; case 3: return 300; default: return n * 100; } } 
In addition to the br_table instruction, this example also shows the usage of the return instruction. Here is the compilation result:
(func $mul100 (type 1) (param i32) (result i32) (block ;; label = @1 (block ;; label = @2 (block ;; label = @3 (block ;; label = @4 (br_table 0 (;@4;) 1 (;@3;) 2 (;@2;) 3 (;@1;) (i32.sub (local.get 0) (i32.const 1)))) (return (i32.const 100))) (return (i32.const 200))) (return (i32.const 300))) (i32.mul (local.get 0) (i32.const 100)) ) 
The first-class functions in the AS language are similar to the function pointers in languages such as C/C++, and can be implemented with the call_indirect instruction. Let's look at this example:
type OP = (a: i32, b: i32) => i32; function add(a: i32, b: i32): i32 { return a + b; } function sub(a: i32, b: i32): i32 { return a - b; } function mul(a: i32, b: i32): i32 { return a * b; } function div(a: i32, b: i32): i32 { return a / b; } export function calc(a: i32, b: i32, op: i32): i32 { return getOp(op)(a, b); } function getOp(op: i32): OP { switch (op) { case 1: return add; case 2: return sub; case 3: return mul; case 4: return div; default: return add; } } 
The compilation result is shown as below. Please pay attention to the table, elem fields, as well as the instructions of the calc() function:
(module (type (;0;) (func (param i32 i32) (result i32))) (type (;1;) (func (param i32) (result i32))) (type (;2;) (func (param i32 i32 i32) (result i32))) (func $add (type 0) (i32.add (local.get 0) (local.get 1))) (func $sub (type 0) (i32.sub (local.get 0) (local.get 1))) (func $mul (type 0) (i32.mul (local.get 0) (local.get 1))) (func $div (type 0) (i32.div_s (local.get 0) (local.get 1))) (func $getOp (type 1) (param i32) (result i32) (;; ommitted ;;)) (func $calc (type 2) (param i32 i32 i32) (result i32) (call_indirect (type 0) (local.get 0) (local.get 1) (call $getOp (local.get 2)) ) ) (table (;0;) 5 funcref) (memory (;0;) 0) (export "memory" (memory 0)) (export "calc" (func $calc)) (export "getOp" (func $getOp)) (elem (;0;) (i32.const 1) func $add $sub $mul $div) ) 
In the end of this section, let's talk about the unreachable instruction. AS is designed to support exceptions after the Wasm exception handling proposal is passed. For the time being, an exception thrown will cause the abort() function to be called. We can disable abort by adding the compiler option --use abort= so that the compiler will replace the abort() function call with an unreachable instruction. In addition, we can also explicitly insert an unreachable instruction by directly calling the low-level built-in unreachable() function. Here is an example:
export function crash2(): void { unreachable(); } 
The compilation result is also simple:
(func $crash2 (type 1) (unreachable) ) 

Parametric Instructions

The parametric instructions are relatively simple, with only drop and select. We’ve mentioned the select instruction in the introduction of the if-else statement, so will be no more details here. The drop instruction can be used to pop the extra operands at the top of the operand stack and throw them away. Let's look at a simple example:
export function dropRandom(): void { randomI32(); } 
The compilation result is also very simple:
(func $dropRandom (type 0) (drop (call $randomI32)) ) 

Variable Instructions

There are three local variable instructions: local.get, local.set, and local.tee. If optimization is not considered, every AS function can be compiled into a Wasm function by the compiler. Both reading and writing of function parameters and local variables can be completed by local variable instructions. Let's look at an example:
export function addLocals(a: i32, b: i32): i32 { let c: i32 = a + b; return c; } 
The following is the compilation result (for better observation of the result, the compiler optimization is turned off during the compiling of part of the sample code. The same below):
(func $addLocals (type 1) (param i32 i32) (result i32) (local i32) (local.set 2 (i32.add (local.get 0) (local.get 1))) (local.get 2) ) 
There are only two global variable instructions: global.get and global.set. The global variables of the AS language can be directly implemented using Wasm global variables, and they can be read and write through global variable instructions. Let’s look at an example:
let a: i32; let b: i32; let c: i32; export function addGlobals(): void { c = a + b; } 
The complete compilation result is as shown below:
(module (type (;0;) (func)) (func $addGlobals (type 0) (global.set 2 (i32.add (global.get 0) (global.get 1))) ) (global (;0;) (mut i32) (i32.const 0)) (global (;1;) (mut i32) (i32.const 0)) (global (;2;) (mut i32) (i32.const 0)) (export "addGlobals" (func $addGlobals)) ) 

Memory Instructions

The Wasm virtual machine can carry a piece of virtual memory, with many instructions to operate this memory. Among these instructions, the load instructions can load data from the memory and put it into the operand stack. The store instructions can take data out of the operand stack and store it in memory. In addition, the current number of memory can be obtained through the memory.size instruction, and the memory can be expanded by page through the memory.grow instruction. We will use a simple structure to better observe the usage of memory instructions. Below is the definition of this structure:
class S { a: i8; b: u8; c: i16; d: u16; e: i32; f: u32; g: i64; h: u64; i: f32; j: f64; } 
The following function shows the usage of load instructions for i32 type:
export function loadI32(s: S): void { printI32(s.a as i32); // i32.load8_s printI32(s.b as i32); // i32.load8_u printI32(s.c as i32); // i32.load16_s printI32(s.d as i32); // i32.load16_u printI32(s.e as i32); // i32.load printI32(s.f as i32); // i32.load } 
The following is the compilation result. It can be seen from the offset immediate operand of the load instruction that the AS compiler has not rearranged the structure fields, but has performed proper alignment.
(func $loadI32 (type 0) (param i32) (call $printI32 (i32.load8_s (local.get 0))) (call $printI32 (i32.load8_u offset=1 (local.get 0))) (call $printI32 (i32.load16_s offset=2 (local.get 0))) (call $printI32 (i32.load16_u offset=4 (local.get 0))) (call $printI32 (i32.load offset=8 (local.get 0))) (call $printI32 (i32.load offset=12 (local.get 0))) ) 
The following function shows the usage of load instructions for i64 type:
export function loadI64(s: S): void { printI64(s.a as i64); // i64.load8_s? printI64(s.b as i64); // i64.load8_u? printI64(s.c as i64); // i64.load16_s? printI64(s.d as i64); // i64.load16_u? printI64(s.e as i64); // i64.load32_s? printI64(s.f as i64); // i64.load32_u? printI64(s.g as i64); // i64.load printI64(s.h as i64); // i64.load } 
The compilation result is as shown below. It can be seen that, in some cases, where the i64 load instructions are expected, the AS compiler uses i32 load instructions with the help of extend instructions.
(func $loadI64 (type 0) (param i32) (call $printI64 (i64.extend_i32_s (i32.load8_s (local.get 0)))) (call $printI64 (i64.extend_i32_u (i32.load8_u offset=1 (local.get 0)))) (call $printI64 (i64.extend_i32_s (i32.load16_s offset=2 (local.get 0)))) (call $printI64 (i64.extend_i32_u (i32.load16_u offset=4 (local.get 0)))) (call $printI64 (i64.extend_i32_s (i32.load offset=8 (local.get 0)))) (call $printI64 (i64.extend_i32_u (i32.load offset=12 (local.get 0)))) (call $printI64 (i64.load offset=16 (local.get 0))) (call $printI64 (i64.load offset=24 (local.get 0))) ) 
The following function shows the usage of load instructions for float type:
export function loadF(s: S): void { printF32(s.i); // f32.load printF64(s.j); // f64.load } 
The compilation result is as shown below:
(func $loadF (type 0) (param i32) (call $printF32 (f32.load offset=32 (local.get 0))) (call $printF64 (f64.load offset=40 (local.get 0))) ) 
The store instructions are simpler than load instructions. The following example shows the usage of store instructions:
export function store(s: S, v: i64): void { s.a = v as i8; // i32.store8 s.b = v as u8; // i32.store8 s.c = v as i16; // i32.store16 s.d = v as u16; // i32.store16 s.e = v as i32; // i32.store s.f = v as u32; // i32.store s.g = v as i64; // i64.store s.h = v as u64; // i64.store s.i = v as f32; // f32.store s.j = v as f64; // f64.store } 
The compilation result is as shown below:
(func $store (type 1) (param i32 i64) (i32.store8 (local.get 0) (i32.wrap_i64 (local.get 1))) (i32.store8 offset=1 (local.get 0) (i32.wrap_i64 (local.get 1))) (i32.store16 offset=2 (local.get 0) (i32.wrap_i64 (local.get 1))) (i32.store16 offset=4 (local.get 0) (i32.wrap_i64 (local.get 1))) (i32.store offset=8 (local.get 0) (i32.wrap_i64 (local.get 1))) (i32.store offset=12 (local.get 0) (i32.wrap_i64 (local.get 1))) (i64.store offset=16 (local.get 0) (local.get 1)) (i64.store offset=24 (local.get 0) (local.get 1)) (f32.store offset=32 (local.get 0) (f32.convert_i64_s (local.get 1))) (f64.store offset=40 (local.get 0) (f64.convert_i64_s (local.get 1))) ) 
Like the unreachable instruction introduced earlier, the memory.size and memory.grow instructions can also be generated by built-in functions. The following is a simple example:
export function sizeAndGrow(n: i32): void { printI32(memory.size()); printI32(memory.grow(n)); } 
The compilation result is as shown below:
(func $sizeAndGrow (type 0) (param i32) (call $printI32 (memory.size)) (call $printI32 (memory.grow (local.get 0))) ) 

Numeric Instructions

As mentioned earlier, numerical instructions can be divided into constant instructions, test instructions, comparison instructions, unary and binary arithmetic instructions, and type conversion instructions.
Specifically, there are four constant instructions in total. Numerical literals in the AS language can be implemented with constant instructions. Here is an example:
export function consts(): void { printI32(1234); // i32.const printI64(5678); // i64.const printF32(3.14); // f32.const printF64(2.71); // f64.const } 
Below is the compilation result:
(func consts (type 1) (call $printI32 (i32.const 1234)) (call $printI64 (i64.const 5678)) (call $printF32 (f32.const 0x1.91eb86p+1 (;=3.14;))) (call $printF64 (f64.const 0x1.5ae147ae147aep+1 (;=2.71;))) ) 
There are only two test instructions: i32.eqz and i64.eqz. The following example shows the usage of i32.eqz instruction:
export function testOps(a: i32): void { if (a == 0) { // i32.eqz printI32(123); } } 
The following is the compilation result:
(func $testOps (type 0) (param i32) (if (i32.eqz (local.get 0)) (then (call $printI32 (i32.const 123))) ) ) 
The relational operators supported by the AS language can be implemented with comparison instructions. The following example shows the usage of comparison instructions for i32 type:
export function relOps(a: i32, b: i32, c: u32, d: u32): void { if (a == b) { printI32(0); } // i32.eq if (a != b) { printI32(1); } // i32.ne if (a < b) { printI32(2); } // i32.lt_s if (c < d) { printI32(3); } // i32.lt_u if (a > b) { printI32(4); } // i32.gt_s if (c > d) { printI32(5); } // i32.gt_u if (a <= b) { printI32(6); } // i32.le_s if (c <= d) { printI32(7); } // i32.le_u if (a >= b) { printI32(8); } // i32.ge_s if (c >= d) { printI32(9); } // i32.ge_u } 
Here is the compilation result:
(func relOps (type 2) (param i32 i32 i32 i32) (if (i32.eq (local.get 0) (local.get 1)) (then (call $printI32 (i32.const 0)))) (if (i32.ne (local.get 0) (local.get 1)) (then (call $printI32 (i32.const 1)))) (if (i32.lt_s (local.get 0) (local.get 1)) (then (call $printI32 (i32.const 2)))) (if (i32.lt_u (local.get 2) (local.get 3)) (then (call $printI32 (i32.const 3)))) (if (i32.gt_s (local.get 0) (local.get 1)) (then (call $printI32 (i32.const 4)))) (if (i32.gt_u (local.get 2) (local.get 3)) (then (call $printI32 (i32.const 5)))) (if (i32.le_s (local.get 0) (local.get 1)) (then (call $printI32 (i32.const 6)))) (if (i32.le_u (local.get 2) (local.get 3)) (then (call $printI32 (i32.const 7)))) (if (i32.ge_s (local.get 0) (local.get 1)) (then (call $printI32 (i32.const 8)))) (if (i32.ge_u (local.get 2) (local.get 3)) (then (call $printI32 (i32.const 9)))) ) 
Except for the negate operation for floating-point numbers, other unary arithmetic instructions are not directly used by the AS compiler, but can be generated by built-in functions. The following example shows the usage of i32 and f32 unary arithmetic instructions:
export function unOps(a: i32, b: f32): void { printI32(clz(a)); // i32.clz printI32(ctz(a)); // i32.ctz printI32(popcnt(a)); // i32.popcnt printF32(abs(b)); // f32.abs printF32(-b); // f32.neg printF32(sqrt(b)); // f32.sqrt printF32(floor(b)); // f32.floor printF32(trunc(b)); // f32.trunc printF32(nearest(b)); // f32.nearest } 
The compilation result is as shown below:
(func unOps (type 3) (param i32 f32 f32) (call $printI32 (i32.clz (local.get 0))) (call $printI32 (i32.ctz (local.get 0))) (call $printI32 (i32.popcnt (local.get 0))) (call $printF32 (f32.abs (local.get 1))) (call $printF32 (f32.neg (local.get 1))) (call $printF32 (f32.sqrt (local.get 1))) (call $printF32 (f32.floor (local.get 1))) (call $printF32 (f32.trunc (local.get 1))) (call $printF32 (f32.nearest (local.get 1))) ) 
The binary operators supported by AS language can be implemented with binary operation instructions. The following example shows the usage of binary operation instructions for i32 type:
export function binOps(a: i32, b: i32, c: u32, d: u32, e: f32, f: f32): void { printI32(a + b); // i32.add printI32(a - b); // i32.sub printI32(a * b); // i32.mul printI32(a / b); // i32.div_s printI32(c / d); // i32.div_u printI32(a % b); // i32.rem_s printI32(c % d); // i32.rem_u printI32(a & b); // i32.and printI32(a | b); // i32.or printI32(a ^ b); // i32.xor printI32(a << b); // i32.shl printI32(a >> b); // i32.shr_s printI32(a >>> b); // i32.shr_u printI32(rotl(a, b)); // i32.rotl printI32(rotr(a, b)); // i32.rotr } 
Since the AS language does not have a "rotate" operator, we can only generate rotate instructions through built-in functions. The following is the compilation result:
(func binOps (type 3) (param i32 i32 i32 i32 f32 f32) (call $printI32 (i32.add (local.get 0) (local.get 1))) (call $printI32 (i32.sub (local.get 0) (local.get 1))) (call $printI32 (i32.mul (local.get 0) (local.get 1))) (call $printI32 (i32.div_s (local.get 0) (local.get 1))) (call $printI32 (i32.div_s (local.get 2) (local.get 3))) (call $printI32 (i32.rem_s (local.get 0) (local.get 1))) (call $printI32 (i32.rem_s (local.get 2) (local.get 3))) (call $printI32 (i32.and (local.get 0) (local.get 1))) (call $printI32 (i32.or (local.get 0) (local.get 1))) (call $printI32 (i32.xor (local.get 0) (local.get 1))) (call $printI32 (i32.shl (local.get 0) (local.get 1))) (call $printI32 (i32.shr_s (local.get 0) (local.get 1))) (call $printI32 (i32.shr_u (local.get 0) (local.get 1))) (call $printI32 (i32.rotl (local.get 0) (local.get 1))) (call $printI32 (i32.rotr (local.get 0) (local.get 1))) ) 
The type conversion operation in the AS language can be immplemented by type conversion instructions. Here is an example:
export function cvtOps(a: i32, b: i64, c: u32, d: u64, e: f32, f: f64): void { printI32(b as i32); // i32.wrap_i64 printI32(e as i32); // i32.trunc_f32_s printI32(e as u32); // i32.trunc_f32_u printI32(f as i32); // i32.trunc_f64_s printI32(f as u32); // i32.trunc_f64_u printI64(a); // i64.extend_i32_s printI64(a as u32); // i64.extend_i32_u printI64(e as i64); // i64.trunc_f32_s printI64(e as u64); // i64.trunc_f32_u printI64(f as i64); // i64.trunc_f64_s printI64(f as u64); // i64.trunc_f64_u printF32(a as f32); // f32.convert_i32_s printF32(c as f32); // f32.convert_i32_u printF32(b as f32); // f32.convert_i64_s printF32(d as f32); // f32.convert_i64_u printF32(f as f32); // f32.demote_f64 printF64(a as f64); // f64.convert_i32_s printF64(c as f64); // f64.convert_i32_u printF64(b as f64); // f64.convert_i64_s printF64(d as f64); // f64.convert_i64_u printF64(e); // f64.promote_f32 printI32(reinterpret(e)); // i32.reinterpret_f32 printI64(reinterpret(f)); // i64.reinterpret_f64 printF32(reinterpret(a)); // f32.reinterpret_i32 printF64(reinterpret(b)); // f64.reinterpret_i64 } 
The compilation result is shown as below:
(func cvtOps (type 4) (param i32 i64 i32 i64 f32 f64) (call $printI32 (i32.wrap_i64 (local.get 1))) (call $printI32 (i32.trunc_f32_s (local.get 4))) (call $printI32 (i32.trunc_f32_u (local.get 4))) (call $printI32 (i32.trunc_f64_s (local.get 5))) (call $printI32 (i32.trunc_f64_u (local.get 5))) (call $printI64 (i64.extend_i32_s (local.get 0))) (call $printI64 (i64.extend_i32_u (local.get 0))) (call $printI64 (i64.trunc_f32_s (local.get 4))) (call $printI64 (i64.trunc_f32_u (local.get 4))) (call $printI64 (i64.trunc_f64_s (local.get 5))) (call $printI64 (i64.trunc_f64_u (local.get 5))) (call $printF32 (f32.convert_i32_s (local.get 0))) (call $printF32 (f32.convert_i32_u (local.get 2))) (call $printF32 (f32.convert_i64_s (local.get 1))) (call $printF32 (f32.convert_i64_u (local.get 3))) (call $printF32 (f32.demote_f64 (local.get 5))) (call $printF64 (f64.convert_i32_s (local.get 0))) (call $printF64 (f64.convert_i32_u (local.get 2))) (call $printF64 (f64.convert_i64_s (local.get 1))) (call $printF64 (f64.convert_i64_u (local.get 3))) (call $printF64 (f64.promote_f32 (local.get 4))) (call $printI32 (i32.reinterpret_f32 (local.get 4))) (call $printI64 (i64.reinterpret_f64 (local.get 5))) (call $printF32 (f32.reinterpret_i32 (local.get 0))) (call $printF64 (f64.reinterpret_i64 (local.get 1))) ) 


In this article we discussed how the AS compiler implements AS syntax elements through various Wasm instructions. In simple terms: various control structures are implemented through control instructions, local variables and global variables are read and written through variable instructions, memory operations are performed through memory instructions, and operators and type conversions are implemented through numerical instructions. In the following articles, we will discuss in depth how AS implements object-oriented programming and automatic memory management.
submitted by coinexchain to u/coinexchain [link] [comments]

Groestlcoin June 2020 Release Notes!

Groestlcoin June 2020 Release

As 2020 continues to unravel with people worried about their health, livelihoods, jobs and general way of life, one thing at least can remain constant - Groestlcoin's release schedule. We at the core Groestlcoin team really hope everyone is doing well and coping with what 2020 is throwing at us all. For anything to change in this world, major and seemingly dramatic change and chaos unfortunately needs to first ensue but rest assured everyone will come out of 2020 much stronger people! The Groestlcoin team have been working on a vast amount of new technology during these uncertain periods which we would like to share with you today.
Groestlcoin Core 19.1
The full list of changes in Groestlcoin Core 19.1 are too long to list here so we won't bore those who do not want to see every slight change here. For that, please go to https://github.com/Groestlcoin/groestlcoin/blob/2.19.1/doc/release-notes/release-notes-2.19.1.md. Instead we will list a general list of changes here. We recommend upgrading to this version if you are running a full node yourself.

How to Upgrade?


If you are running an older version, shut it down. Wait until it has completely shut down (which might take a few minutes for older versions), then run the installer.


If you are running an older version, shut it down. Wait until it has completely shut down (which might take a few minutes for older versions), run the dmg and drag Groestlcoin Core to Applications. Users running macOS Catalina need to "right-click" and then choose "Open" to open the Groestlcoin Core .dmg.


Download the Windows Installer (64 bit) here: https://github.com/Groestlcoin/groestlcoin/releases/download/v2.19.1/groestlcoin-2.19.1-win64-setup-unsigned.exe
Download the Windows binaries (64 bit) here: https://github.com/Groestlcoin/groestlcoin/releases/download/v2.19.1/groestlcoin-2.19.1-win64.zip
Download the OSX Installer here: https://github.com/Groestlcoin/groestlcoin/releases/download/v2.19.1/groestlcoin-2.19.1-osx-unsigned.dmg
Download the OSX binaries here: https://github.com/Groestlcoin/groestlcoin/releases/download/v2.19.1/groestlcoin-2.19.1-osx64.tar.gz
Download the Linux binaries (64 bit) here: https://github.com/Groestlcoin/groestlcoin/releases/download/v2.19.1/groestlcoin-2.19.1-x86\_64-linux-gnu.tar.gz
Download the Linux binaries (32 bit) here: https://github.com/Groestlcoin/groestlcoin/releases/download/v2.19.1/groestlcoin-2.19.1-i686-pc-linux-gnu.tar.gz
Download the ARM Linux binaries (64 bit) here: https://github.com/Groestlcoin/groestlcoin/releases/download/v2.19.1/groestlcoin-2.19.1-aarch64-linux-gnu.tar.gz
Download the ARM Linux binaries (32 bit) here: https://github.com/Groestlcoin/groestlcoin/releases/download/v2.19.1/groestlcoin-2.19.1-arm-linux-gnueabihf.tar.gz
Linux Snapcraft: https://snapcraft.io/groestlcoin-core
Linux Flathub: https://flathub.org/apps/details/org.groestlcoin.groestlcoin-qt

Source code:

Zeus GRS iOS Wallet Release
Zeus GRS: A mobile Groestlcoin app for Lightning Network Daemon (LND) node operators.
To use Zeus, you must have a running Lightning Network Daemon (LND). You must provide Zeus GRS with your node's hostname, port number, and the LND macaroon you choose to use (hex format).
If you're running a Unix-based operating system (eg. macOS, Linux) you can run xxd -ps -u -c 1000 /path/to/admin.macaroon to generate your macaroon in hex format.


• Scan LNDconnect functionality
• Dark and light theme
• Option to lock app with a pin
• Open Source
• Connect to your node - Zeus GRS let's users connect to their existing Lightning node, allowing them to send, receive and manage their channels.
• Multiple Wallets - Zeus GRS allows users to create and control as many wallets as they'd like.

Download Link


Source code

HODL GRS iOS Wallet Release
HODL GRS connects directly to the Groestlcoin network using SPV mode, and doesn't rely on servers that can be hacked or disabled.
HODL GRS utilises AES hardware encryption, app sandboxing, and the latest security features to protect users from malware, browser security holes, and even physical theft. Private keys are stored only in the secure enclave of the user's phone, inaccessible to anyone other than the user.
Simplicity and ease-of-use is HODL GRS's core design principle. A simple recovery phrase (which we call a Backup Recovery Key) is all that is needed to restore the user's wallet if they ever lose or replace their device. HODL GRS is deterministic, which means the user's balance and transaction history can be recovered just from the backup recovery key.


• Simplified payment verification for fast mobile performance
• No server to get hacked or go down
• Single backup phrase that works forever
• Private keys never leave your device
• Import password protected paper wallets
• Payment protocol payee identity certification
• Apple Watch support
This application is licensed under MIT. There is no warranty and no party shall be made liable to you for damages. If you lose coins due to this app, no compensation will be given. Use this app solely at your own risk.

Download from the Apple App Store


Source code

GRS BlueWallet for iOS and Android Released
GRS Bluewallet is a thin client for Groestlcoin built with React Native and Electrum-GRS.


• Multi-currency, Supporting more than 20 FIAT currencies.
• SegWit - SegWit enabled by default
• Full encryption - On top of the phone multi-layer encryption, GRS Bluewallet can encrypt everything with an added password. Biometric security (touch ID, Face ID) is not safe, so you will have an additional password to encrypt your wallet instead.
• Plausible deniability - A custom made feature thinking about your personal security. GRS Bluewallet allows you to define a different password which will decrypt a fake wallet set up. For any situation you are forced to disclose your access or when you don't want or you can't show your real wallet.
• Open Source under the MIT License.
• Watch-only wallets - Watch-only wallets allows you to keep an eye on your cold storage without touching your private key. Easily import your address or xpub and watch it from your app without ever touching it.
• Lightning Wallets - Wallets with support for the Lightning Network Protocol. Unfairly cheap and fast transactions. You can send, receive and refill your wallets.
• Bump and Cancel transactions - Ability to bump and cancel sent transactions with "Replace-by-fee" (RBF) and ability to Bump received transactions with "Child-pays-for-parent" (CPFP) on Native Segwit wallets (bech32/BIP84).
• Plug-in your Groestlcoin Full node new - Ability to plug-in your own Groestlcoin Full node through Electrum Personal Server (EPS), ElectrumX or Electrs. Don't trust, verify for a maximum sovereignty.
This application is under MIT license. There is no warranty and no party shall be made liable to you for damages. If you lose coins due to this app, no compensation will be given. Use this app solely at your own risk.

Download from the Apple App Store


Download from the Google Play Store


Source code

GRS Lightning Wallet Released
GRS Lightning: An easy-to-use cross-platform Groestlcoin Lightning wallet
GRS lightning leverages Neutrino to give users a lightweight option to control their own funds, as opposed to running a full node or trusting a third party to play custodian.
• A User Experience for Everyone
• Fully Non-Custodial with LND
• Powered by Neutrino and Autopilot
• Open Source

Nota bene

This is still early technology and there's a risk of losing all of your funds. We recommend not putting in more money than you are willing to lose.
Using the same mnemonic seed between installations or device is not recommended.
Keep the app open till its fully synced, this will take a WHILE.

Download the OSX Wallet


Download the Linux Installer


Download the Windows Installer


Download from the Google Play Store (Android)


Source code

GRS LND for Wordpress
GRS LND for GRS is a WordPress plugin for managing & using your GRS LND node directly from your WordPress administration panel.


• Provides a fully functional wallet interface, allowing you to send and receive funds across the Lightning Network with ease.
• The user interface is responsive and will adapt to fit any web enabled desktop, tablet or mobile device.
• You can search the Lightning Network graph, manage peer connections and open & close channels with ease.
• The plugin has QR support, enabling basic encoding & decoding of QR codes.
• GRS LND For WP also adds a number of WordPress 'short codes', allowing you to embed LND functionality directly in your website pages and posts.


GRS LND For WP can be installed directly from WordPress. Simply navigate to the 'Plugins -> Add New' page and search for 'GRS LND For WP'. You can also view GRS LND For WP on the WordPress.org Plugin Directory
To install the plugin manually using source code from this repository:
Download the latest plugin release from this repository.
Browse to the 'Plugins -> Add New' page of your WordPress admin panel.
Click the 'Upload Plugin' button, select 'Browse' and choose the release .zip that you downloaded in step 1.
Press 'Install Now'.
On the next screen, press the 'Activate' button to turn on the plugin.
You're done. You should now see the 'GRS LND For WP' link on your WP admin navigation menu.

Source code

GRS Unstoppable Wallet - Android MainNet and TestNet
Unstoppable GRS is open source non-custodial fully decentralised wallet.
The engineering process behind this wallet is radically driven by libertarian principles. Exclusive control over what is yours.


• Control your crypto - Unstoppable GRS is a non-custodial wallet. The private keys never leave your phone.
• Keep your crypto safe - When you enable the lock code on your phone's operating system, no one will be able to access your wallet funds even if your phone is stolen or lost. In case of a device loss, Unstoppable GRS makes it easy to restore your wallet on another device.
• Be independently unstoppable - Unstoppable GRS was engineered to remain online and fully-functional indefinitely. Transfer Groestlcoins regardless of local government regulations. No entity can stop you from sending or receiving crypto or force Unstoppable GRS to stop working. Finally, you have a secure crypto wallet to spend Groestlcoin, and send & receive crypto.
• Stay private - With Unstoppable GRS you are connecting directly to decentralised blockchains without any restrictions or intermediaries. Only you can see your assets. There are no accounts, emails, phone numbers, identity checks, or third-party servers storing any private data.
This application is under MIT license. There is no warranty and no party shall be made liable to you for damages. If you lose coins due to this app, no compensation will be given. Use this app solely at your own risk.

Download from the Google Play Store


Download TestNet version from the Google Play Store


Source code

Groestlcoin Esplora Block Explorer Released (Mainnet and Testnet!)
Groestlcoin Esplora is an open-source Groestlcoin blockchain explorer. This JSON over RESTful API provides you with a convenient, powerful and simple way to read data from the Groestlcoin network and build your own services with it.


• Explore blocks, transactions and addresses
• Support for Segwit and Bech32 addresses
• Shows previous output and spending transaction details
• Quick-search for txid, address, block hash or height by navigating to /<query>
• Advanced view with script hex/assembly, witness data, outpoints and more
• Mobile-ready responsive design
• Translated to 17 languages
• Light and dark themes
• Noscript support
• Transaction broadcast support
• QR scanner
• API support
Groestlcoin Esplora is licensed under MIT. There is no warranty and no party shall be made liable to you for damages. If you lose coins due to Esplora, no compensation will be given. Use Groestlcoin Esplora solely at your own risk.

Groestlcoin Esplora is available via https://esplora.groestlcoin.org/

Esplora Testnet is available via https://esplora-test.groestlcoin.org/

Source code

Groestlcoin WebWallet updated to v1.5
Webwallet is a playground for Groestlcoin in javascript to experiment with. It supports multisig, OP_HODL, RBF and many more. Groestlcoin believes strongly in privacy, the live version does not collect and store IP or transaction data.

Changelog 1.5

• Custom HD key derivation added
• Added Esplora support
Live version available at https://www.groestlcoin.org/webwallet. But it is recommended to download the webwallet offline and run it on your pc. Open index.html to get started. The built-in wallet can be used with any (non) existing mail address and any password.
This application is licensed under MIT. There is no warranty and no party shall be made liable to you for damages. If you lose coins due to this app, no compensation will be given. Use this app solely at your own risk.


Remember the mail address and password you used otherwise you will lose your funds.

Download the Groestlcoin Webwallet


Live Web Wallet Version


Source code

Groestlcoin LND Updated to v0.10
The Lightning Network Daemon (LND) is a complete implementation of a Lightning Network node.
Lnd has several pluggable back-end chain services including grsd (a full-node), groestlcoind, and neutrino (a new experimental light client). The project's codebase uses the grssuite set of Groestlcoin libraries, and also exports a large set of isolated re-usable Lightning Network related libraries within it.


• Macaroon Bakery
• Multi-Path Payments
• Weakness Addressed by MPP
• Single-Shot MPP Payments by Default
• Custom Onion-Tunneled TLV Payment Metadata Records
• New Payment Type: keysend
• First-Class Rebalancing via Circular Payments to Self
• Local balance check
• Privacy Enhancement
• Validate Sorted Uncompressed Short Channel IDs
• Add payment_secret to BOLT 11 Payment Requests
• Cross-Implementation Protocol Compatibility Fixes
• Decoupled Min HTLC Settings
• Option Upfront Shutdown Support
• Sweep Small Outputs
• Autopilot External Score Trigger
• Channel Fitness Tracking
• Pathfinding Improvements
• Deeper Feature Bit Inspection
• Updates to Default gRPC Settings
• Uniform lncli Hex-Encoding
• Updates to QueryRoutes
• New RPC Calls
• Default unsafe-disconnect Setting and Deprecation
• Peer to Peer Gossip
• Invoice Handling
• Channel State Machine
• On-Chain Contract Handling
• Architectural Changes
• Multi-Path Payments Sending Support
• Payment tracking
• Lifted Invoice Limit
• PSBT Funding
• Anchor commitment format
• Watchtowers tor support

Download the OSX Version


Download the Windows Version


Download the Linux Version


Source code

Groestlcoin Eclair Updated to v
Groestlcoin Eclair (French for Lightning) is a Scala implementation of the Lightning Network. It can run with or without a GUI, and a JSON API is also available.
Groestlcoin Eclair requires Groestlcoin Core 2.17.1 or higher. If you are upgrading an existing wallet, you need to create a new address and send all your funds to that address.
Groestlcoin Eclair needs a synchronised, segwit-ready, zeromq-enabled, wallet-enabled, non-pruning, tx-indexing Groestlcoin Core node.
Groestlcoin Eclair will use any GRS it finds in the Groestlcoin Core wallet to fund any channels you choose to open. Eclair will return GRS from closed channels to this wallet.
You can configure your Groestlcoin Node to use either p2sh-segwit addresses or BECH32 addresses, Groestlcoin Eclair is compatible with both modes.


• Multipart payments
• Trampoline Routing Preview
This application is licensed under Apache. There is no warranty and no party shall be made liable to you for damages. If you lose coins due to this app, no compensation will be given. Use this app solely at your own risk.
Groestlcoin Eclair is developed in Scala, a powerful functional language that runs on the JVM, and is packaged as a JAR (Java Archive) file. We provide 2 different packages, which internally use the same core libraries:

eclair-node (headless application that you can run on servers and desktops, and control from the command line)


eclair-node-gui (JavaFX GUI):


Source code

Groestlcoin C-Lightning Updated to v0.8.2
C-lightning: A specification compliant Lightning Network implementation in C.
C-lightning is a lightweight, highly customisable and standard compliant implementation of the Lightning Network protocol.


• We now support gifting mgro to the peer when opening a channel, via push_msat, providing a brand new way to lose money!
• Preliminary support for plugins hooks which can replace the default groestlcoin-cli with other blockchain querying methods (API may change in future releases though!).
• listforwards now records the outgoing short_channel_id, even if it wasn't possible to start forwarding.
• Plugins can set additional feature bits, for more experimentation.
• More than one plugin can register for the htlc_accepted hook: others will become multi-user in future releases.
• Prevent a case where grossly unbalanced channels could become unusable.
• New config option --large-channels (also known as 'wumbo') which enables opening channels of any size. (Note that your peer must also support large channels.)
• This release includes a keysend plugin, which will enable receiving 'keysend' payments, as first introduced by Lightning Labs. Note that the included keysend plugin is receive only for this release. Nodes which do not want the hassle of spontaneous unrequested payments should add 'disable-plugin=keysend' to their config!
• We'll now announce multiple connection endpoints for a single 'type', e.g. multiple IPv4 addresses.
• Big performance improvement in the pay command (~1s speedup on average).
• c-lightning nodes can now participate in creating larger channels (with the --large-channel config option).
• We now wait until the first payment through a channel before updating the feerate; this should help with some spurious closures at channel open or re-connect that were occurring against older versions of other implementations.
• A new command getsharedsecret for getting the BOLT-compliant shared secret finding for a node and a point.
• Facilities for building rendezvous compatible onions has been added to the onion devtool.
• Plugin options will now respect the type they were given in the manifest.
• Fixes with plugin cleanups and hangs.
• Python2 has been removed as a dependence.

Install on Linux:


Install on OSX:


Source code

Groestlcoin SparkWallet Updated to v0.2.14
Groestlcoin Spark Lightning Wallet Android: A minimalistic wallet GUI for c-lightning in Android.
Groestlcoin Spark is currently oriented for technically advanced users and is not an all-in-one package, but rather a "remote control" interface for a c-lightning node that has to be managed separately.


• Fix bug with missing channel reserve
• Fix channels view
• Detect if the "base directory" is provided and default to the Groestlcoin mainnet network subdirectory within in.
• Don't display unconfirmed onchain balance
• Fix: Some QR codes not read properly in the web QR scanner
• Fix: Resolve TLS issues with NodeJS 10
• Electron: Update to v8
• Fix bug in automatic credentials generation
• Fix Android crashes caused by plugin-local-notifications
• Cordova Android: Allow connecting to server in cleartext
This application is licensed under MIT. There is no warranty and no party shall be made liable to you for damages. If you lose coins due to this app, no compensation will be given. Use this app solely at your own risk.

Download from the Google Play Store


Download for OSX


Download for Windows


Download for Windows (Portable)


Download for Linux (AppImage Installer)


Download for Linux (Snap Installer)


Download for Linux (Deb Installer)


Source code

submitted by Yokomoko_Saleen to groestlcoin [link] [comments]

GTOptions 60 Seconds Binary Options Trading GTOptions -- How to Trade One Touch Binary Options GTOptions 60 Seconds Binary Options Trading Demo gt options scam GToptions Binary Trading Demo - 90% profit return per trade - Platform Tour For Top Rated Broker GTOptions -- How to Fund and Withdrawing from your Binary Options Trading Account GTOptions Review - Binary Options Trading University GTOptions Review GToptions - Review By 6 Figure Earner GTOptions - Binary Options Virtual Tour - YouTube

7 Binary Options empfiehlt GTOptions. Eckdaten: Online seit: 2011 Gerichtsstand: Zypern Software: Spot Option Max Rendite: 90% Bonus: 100% Mindesteinzahlung: $250 Mindestanlage: $5 Maximale Anlage: $3000 Währungen: USD, EUR, GBP Mobil: Yes Länder: Alle Länder. Vorteile: – Riesiger 5000 $ Bonus – 30 s Option – Sehr gute Renditen – Kostenlose Signale – Gute Akademie für Anfänger ... GtOptions doesn't want to make you any profit, they are only interested to extract as much money as possible from your account. They have ruined my family. They says that they are The Most Trusted Binary Option Broker, but they are not to be trusted, you will just like me lose all your money! Please see the link. Stay away from them as far as you can!!!!! They lie constantly! GTOptions is a binary options broker that offers generous return rates and bonuses. Currently, new sign ups are eligible for a $100 free trading bonus, with which they can trade over 100 asset classes, such as currencies, indices, stocks, and commodities. The broker also offers a Refer-a-Friend bonus of up to $500. GTOptions is based in Cyprus which has a legal framework for regulating binary options trading. Plus, traders dealing with Cyprus’ regulated brokers like GTOptions are protected up to Euro 20,000 under an Investor Compensation Fund provided under the Cypriot Investment Services and Activities and Regulated Markets Law 144 of 2007. Founded in 2011, GTOptions has managed to attract a loyal ... GTOptions is a relatively new binary options broker, founded in 2011 by Eufal Ltd., a company based in Nicosia, Cyprus. This broker doesn’t seem to be regulated yet, but this isn’t surprising given the young age of the service. GTOptions offers several different types of binary options to trade and more than 70 assets, and while they are somewhat lacking in certain areas, they do seem to ... GTOptions is a brokerage which boasts many years of experience in binary options trading for traders across the globe. It is for this reason that the broker has won many awards for best broker, best education and best customer satisfaction. Our mission at Fair Binary Options is to create a fair trading environment for binary options traders, and this is one of the reasons why we were named ... UPDATE (21.10.2016): We have found out that GTOptions has shut down their operations. We recommend choosing one of our top binary option brokers instead: Try also Binary Option Robot if you are looking for automated binary trading. Old Review: GTOptions is a reliable international binary option trading broker which was established based on honesty, integrity and

[index] [28447] [29248] [1157] [3278] [14100] [9942] [17203] [15939] [7183] [19475]

GTOptions 60 Seconds Binary Options Trading

GTOptions -- How to Open a Binary Options Trading Account - Duration: 2:17. GTOptions 392 views. 2:17. Language: English Location: United States Restricted Mode: Off History Help ... GToptions Review - https://www.facebook.com/helpmedavid - You Can Get 3 Bonuses When You Add Me As Friends And Message Me On Facebook. See you there! GToptio... Free $100 Account: http://2by.us/gtoption GTOptions founded in 2011 is owned and managed by holding company called Funline Trading Ltd. Despite the relativel... http://bit.ly/1b2e0Ls -- In this video, One Touch options are explained including what makes them unique from traditional binary options. A One Touch Option ... Binary trading demo of GToptions featuring 60 second Binary Options and Binary Meta. For more brokers and EXCLUSIVE bonus offers visit: www.BinaryOptionsBonu... This video is unavailable. Watch Queue Queue. Watch Queue Queue This video is unavailable. Watch Queue Queue. Watch Queue Queue Are you afraid of getting scammed by a binary options broker? Go to http://www.bestbinaryoptionbroker.info to find out more about the best binary options bro... http://bit.ly/1b2e0Ls -- Take a Virtual Tour of the GTOptions binary options platform! The GTOptions platform has the most option types with more ways to tra... http://bit.ly/1b2e0Ls -- This video discusses the various methods for depositing funds into your GTOptions account, with a walk-through of how to deposit fun...